Libelektra: cmerge: segfault

Créé le 15 nov. 2019  ·  7Commentaires  ·  Source: ElektraInitiative/libelektra

Étapes pour reproduire le problème

Configurez et créez libelektra.

make run all

résultat attendu

Tous les tests réussissent.

Résultat actuel

The following tests FAILED:
    210 - testshell_markdown_cmerge (Failed)
    225 - test_cmerge (SEGFAULT)
 valgrind ./bin/test_cmerge
==200629== Memcheck, a memory error detector
==200629== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==200629== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==200629== Command: ./bin/test_cmerge
==200629== 
CMERGE       TESTS
==================

Executing testValuesWithGivenLength with size 59
==200629== Jump to the invalid address stated on the next line
==200629==    at 0x0: ???
==200629==    by 0xF: ???
==200629==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==200629== 
==200629== 
==200629== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==200629==  Bad permissions for mapped region at address 0x0
==200629==    at 0x0: ???
==200629==    by 0xF: ???
==200629== 
==200629== HEAP SUMMARY:
==200629==     in use at exit: 4,388 bytes in 64 blocks
==200629==   total heap usage: 169 allocs, 105 frees, 81,447 bytes allocated
==200629== 
==200629== LEAK SUMMARY:
==200629==    definitely lost: 0 bytes in 0 blocks
==200629==    indirectly lost: 0 bytes in 0 blocks
==200629==      possibly lost: 0 bytes in 0 blocks
==200629==    still reachable: 4,388 bytes in 64 blocks
==200629==         suppressed: 0 bytes in 0 blocks
==200629== Rerun with --leak-check=full to see details of leaked memory
==200629== 
==200629== For lists of detected and suppressed errors, rerun with: -s
==200629== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
[1]    200629 segmentation fault (core dumped)  valgrind ./bin/test_cmerge

Information système

  • Version Elektra: maître
  • Fedora 31

Autres fichiers journaux et sortie

cmerge.txt

bug

Commentaire le plus utile

@ Chemin1 merci de l'avoir réparé si vite. Je peux confirmer que cela fonctionne pour moi maintenant.

Tous les 7 commentaires

J'ai libgit2 0.28.3 sur Linux et cela ne fonctionne pas. La suppression de la vérification CMERGE_ON_LINUX dans le code corrige le segfault.
https://github.com/ElektraInitiative/libelektra/blob/4ee9617186fe053107530624b27ff2825478f257/src/libs/merge/kdbmerge.c#L991

Merci d'avoir signalé ce problème!

Nous devrions définitivement résoudre ce problème avant la version 0.9.1. Peut-être en désactivant simplement libgit2 dans ce cas.

@mpranj pouvez-vous également publier la sortie gdb, la sortie valgrind n'est pas si utile.

Je parie que c'est à propos de LibGit. La bibliothèque doit être initialisée avec git_libgit2_init () selon leur documentation.

Lorsque vous n'initialisez publié mon premier Stackoverflow à ce sujet.

Espérons que le # 3221 corrige ce problème.

La sortie Gdb n'est pas non plus très utile. Je ne sais pas pourquoi, j'ai les symboles de débogage des bibliothèques et c'est une version Debug d'elektra.

GNU gdb (GDB) Fedora 8.3.50.20190824-24.fc31
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./bin/test_cmerge...
(gdb) r
Starting program: /home/mpranj/workspace/libelektra/build/bin/test_cmerge 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
CMERGE       TESTS
==================

Executing testValuesWithGivenLength with size 59

Program received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) q

J'ai vérifié que #ifndef CMERGE_ON_LINUX est la cause première de mon système, mais je n'ai pas eu le temps de créer un correctif portable pour cela.

@ Chemin1 merci d'avoir travaillé dessus!

@ Chemin1 merci de l'avoir réparé si vite. Je peux confirmer que cela fonctionne pour moi maintenant.

Merci de l'avoir testé, @mpranj !

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

markus2330 picture markus2330  ·  4Commentaires

markus2330 picture markus2330  ·  3Commentaires

mpranj picture mpranj  ·  3Commentaires

markus2330 picture markus2330  ·  3Commentaires

markus2330 picture markus2330  ·  4Commentaires