JuliaPy / JuliaPy/PythonCall.jl

juliacall segfaults when loading a package that uses PythonCall

Offen
#211 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Julia
Sterne
1.1k
Forks
86
Ø Merge
1 T. 22 Std.
Gemergte PRs (30 T.)
3

Beschreibung

juliacall always segfaults on me when I try to load a package that uses PythonCall.

This should reproduce the error:

```python
import juliapkg

juliapkg.add("BATPythonCall", "dc6699a0-bee0-4ed4-84d6-ad34e0e2513f", rev = "loaddebug", url = "https://github.com/bat/BATPythonCall.jl.git")

juliapkg.resolve()
juliapkg.status()

from juliacall import Main as jl

jl.seval("using BATPythonCall")
```

results in

```
free(): invalid pointer

signal (6): Aborted
in expression starting at none:1
gsignal at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
abort at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
```

BATPythonCall.jl (on branch "loaddebug") is basically an empty package that only does `using PythonCall`. Removing `using PythonCall` makes the segfault disappear.

CC @philippeller

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Start by running the Python reproduction with juliacall, juliapkg, and BATPythonCall on its loaddebug branch, then compare it with the case where using PythonCall is removed. Trace the package-loading entry point involved in `jl.seval("using BATPythonCall")`; done means the package loads without the invalid-pointer abort.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
julia, python
Bereich
backend
Issue-Typ
Bug
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.