[Bug]: sys.flags.debug is 1 whenever optimization is off
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 75/100
Piste de recherche
La mauvaise valeur provient de l'argument debug dans SysModuleBuiltins.java (vers la ligne 697), qui est dérivé de PythonOptions.PythonOptimizeFlag. Lisez comment les autres champs de sys.flags y sont définis, puis exécutez l'extrait du rapport pour observer sys.flags.debug et subprocess._args_from_interpreter_flags(). C'est terminé lorsque sys.flags.debug vaut 0 par défaut et qu'aucun -d n'est émis, tandis que optimize et __debug__ restent inchangés.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- Python
- Étoiles
- 1.7k
- Forks
- 158
- Merge moyen
- 8 h 31 min
- PR mergées (30 j)
- 55
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de oracle/graalpython
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
oracle/graalpython#1105 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
oracle/graalpython#1102 ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 4/5 3-5 jours Accessibilité débutants 54/100
oracle/graalpython#1212 ·
Les mainteneurs répondent en général sous 1 jour
-
[Bug]: incompatible (wrt CPython int's) processing of strings by int() constructor with spacesOuvertebug
Difficulté 3/5 Une demi-journée Accessibilité débutants 50/100
oracle/graalpython#1209 ·
Les mainteneurs répondent en général sous 1 jour
-
[Bug]: JVM crash (SIGSEGV in Py_REFCNT) on numpy.frombuffer(memoryview(java.nio.ByteBuffer))Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 44/100
oracle/graalpython#1198 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de oracle/graalpython
Issues similaires
-
`LazyFrameRemote` and `ExecuteRemote` sinks do not accept `Path`, like `LazyFrame` sinks do.Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
WingedGuardian/GENesis-AGI#3375 ·
Les mainteneurs répondent en général sous 1 jour
-
curriculum documentation quality
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
githubnext/gh-aw-workshop#4601 ·
Les mainteneurs répondent en général sous 1 jour
-
approved Good First Issue scope: docs
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
hiero-ledger/hiero-sdk-python#2730 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour