Segmentation fault ( Pycall [BUG] Segmentation fault at 0x0000000000000010 )
- Vorherrschende Sprache
- Julia
- Sterne
- 1.5k
- Forks
- 186
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
there is problem in the method import_module of file "pycall-1.5.2/lib/pycall.rb"
def import_module(name)
LibPython::Helpers.import_module(name)
end
it calls a c method in this file "ext/pycall/pycall.c"
# c language method
static VALUE
pycall_libpython_helpers_m_import_module(int argc, VALUE *argv, VALUE mod)
{
VALUE name, globals, locals, fromlist, level;
char const *name_cstr;
rb_scan_args(argc, argv, "14", &name, &globals, &locals, &fromlist, &level);
if (RB_TYPE_P(name, T_SYMBOL)) {
name = rb_sym_to_s(name);
}
name_cstr = StringValueCStr(name);
if (argc == 1) {
return pycall_import_module(name_cstr);
}
if (argc == 5) {
level = rb_check_to_integer(level, "to_int");
}
else {
/* TODO: set the default level to 0 */
}
return pycall_import_module_level(name_cstr, globals, locals, fromlist, NUM2INT(level));
}
which again calls the previous method and the process continues in an infinite loop, hence segmentation fault occurs
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Lies pycall-1.5.2/lib/pycall.rb und die entsprechende Importimplementierung in ext/pycall/pycall.c. Beginne damit, den Aufruf von import_module zu reproduzieren und den nativen Aufrufpfad nachzuverfolgen; abgeschlossen ist die Aufgabe, wenn der segmentation fault und die behauptete Rekursion erklärt sind und ein Regressionstest das Verhalten abdeckt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- c, julia, python
- Bereich
- backend
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100