Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Segmentation fault ( Pycall [BUG] Segmentation fault at 0x0000000000000010 )

Ouverte
#1,082 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
25/100
Type d'issue
Bug
Clarté
À clarifier
Activité
À l'abandon
Stack technique
c, julia, python
Domaine
backend

Piste de recherche

Lisez pycall-1.5.2/lib/pycall.rb ainsi que l’implémentation d’importation correspondante dans ext/pycall/pycall.c. Commencez par reproduire l’appel à import_module et suivre le chemin d’appel natif ; le travail est terminé lorsque le segmentation fault et la récursion supposée sont expliqués et qu’un test de régression couvre le comportement.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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

Langage dominant
Julia
Étoiles
1.5k
Forks
186
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de JuliaPy/PyCall.jl

Toutes les issues de JuliaPy/PyCall.jl

Issues similaires

Plus d'issues Julia

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.