[Bug]: sys.flags.debug is 1 whenever optimization is off
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 75/100
Direzione di ricerca
Il valore errato proviene dall'argomento debug in SysModuleBuiltins.java (intorno alla riga 697), che deriva da PythonOptions.PythonOptimizeFlag. Leggi come vengono impostati gli altri campi di sys.flags in quel punto, quindi esegui lo snippet del report per vedere sys.flags.debug e subprocess._args_from_interpreter_flags(). Il lavoro è completato quando sys.flags.debug è 0 per impostazione predefinita e non viene emesso alcun -d, mentre optimize e __debug__ restano invariati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
sys.flags.debug is 1 whenever optimization is off. In CPython it is 0 unless the interpreter was started with -d (parser debug output), regardless of -O.
sys.flags is built in SysModuleBuiltins with debug derived from the optimize option:
PInt.intValue(!language.getEngineOption(PythonOptions.PythonOptimizeFlag)), // debug
This looks like debug being conflated with __debug__.
The visible effect: subprocess._args_from_interpreter_flags() emits -d for every non-optimized run, so anything that re-executes sys.executable with the current interpreter flags passes -d. The most common case is multiprocessing with the spawn start method. An embedder whose python.Executable does not accept -d then fails to start the child, and the parent gets EOFError from Connection.recv().
Operating system
Linux
CPU architecture
x86_64
GraalPy version
25.x, embedded through the polyglot API. The line above is unchanged on current master.
JDK version
GraalVM JDK 25
Context configuration
Default options; python.PythonOptimizeFlag not set.
Steps to reproduce
import sys, subprocess
print(sys.flags.debug, sys.flags.optimize, __debug__)
print(subprocess._args_from_interpreter_flags())
Expected behavior
As on CPython 3.12 with no flags:
0 0 True
[]
Actual:
1 0 True
['-d']
(plus whatever other flags are configured).
Stack trace
None. The symptom shows up downstream, e.g. a spawned multiprocessing child exits during argument parsing and the parent raises EOFError.
Additional context
A fix would be to report debug as 0 (GraalPy has no -d equivalent), or to back it with a dedicated option if one is wanted. optimize and __debug__ are already correct.
- Lingua principale
- Python
- Stelle
- 1.7k
- Fork
- 158
- Merge medio
- 9h 12m
- PR unite (30g)
- 50
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di oracle/graalpython
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
oracle/graalpython#1105 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
oracle/graalpython#1102 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
oracle/graalpython#1217 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 54/100
oracle/graalpython#1212 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: incompatible (wrt CPython int's) processing of strings by int() constructor with spacesApertabug
Difficoltà 3/5 Mezza giornata Idoneità per principianti 50/100
oracle/graalpython#1209 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di oracle/graalpython
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
jbacalso24/mimry#291 ·
I maintainer di solito rispondono entro 1 giorno
-
good first issue
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 82/100
eli-alvarado/us-watchlist-alerts#14 ·
I maintainer di solito rispondono entro 1 giorno
-
from-review-extraction python severity:nit
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
LearningCircuit/local-deep-research#7462 ·
I maintainer di solito rispondono entro 2 giorni
-
mermaid_extract.py silently discards single-line state-diagram notes; sequence notes are keptAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
cathrynlavery/diagram-design#441 ·
I maintainer di solito rispondono entro 2 giorni
-
[Cleanup] Include the public header in work_split.cppForse già presa @blozano-tt l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
tenstorrent/tt-metal#60850 ·
I maintainer di solito rispondono entro 1 giorno