`remote_exec` hangs forever when remotely using `gevent` model only at python3
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- python
- Domaine
- distributed-systems
Piste de recherche
Reproduisez le blocage avec l’exemple Python 3 en utilisant la configuration thread-to-gevent d’execnet et les versions indiquées dans l’issue. Commencez par inspecter le mappage ExecModel dans execnet/gateway_base.py autour des lignes 112-125, puis suivez remote_exec à travers le receiver et les threads worker. C’est terminé lorsque l’appel distant renvoie 333 et que le programme atteint «everything done» sans se bloquer.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
The problem only occurs at python3.
Environment:
- OS:
Linux faa410b1f09b 4.19.121-linuxkit #1 SMP Thu Jan 21 15:36:34 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux - Python version:
Python 3.7.5
Dependencies:
- gevent version:
21.1.2 - execnet version:
1.8.0
Code:
import execnet
# hangs forever when remote is gevent
execnet.set_execmodel('thread', 'gevent')
gw = execnet.makegateway()
print(gw)
print(gw.remote_status())
print('channel.send')
print (gw.remote_exec("channel.send(333)").receive())
print('everything done')
Problem: Above code hangs forever.
Stdout:
<Gateway id='gw0' receive-live, thread model, 0 active channels>
<RInfo 'execmodel=gevent, numchannels=0, numexecuting=0'>
channel.send
Debug log:
[89653] gw0 sent <Message STATUS channel=1 lendata=0>
[89653] gw0 [receiver-thread] RECEIVERTHREAD: starting to run
[89655] creating workergateway on <execnet.gateway_base.Popen2IO object at 0x1106a5820>
[89655] gw0-worker [serve] spawning receiver thread
[89655] gw0-worker [serve] joining receiver thread
[89655] gw0-worker waiting for receiver thread to finish
[89655] gw0-worker [receiver-thread] RECEIVERTHREAD: starting to run
[89655] gw0-worker [receiver-thread] received <Message STATUS channel=1 lendata=0>
[89655] gw0-worker sent <Message CHANNEL_DATA channel=1 lendata=73>
[89653] gw0 [receiver-thread] received <Message CHANNEL_DATA channel=1 lendata=73>
[89653] gw0 [receiver-thread] received <Message CHANNEL_CLOSE channel=1 lendata=0>
[89655] gw0-worker sent <Message CHANNEL_CLOSE channel=1 lendata=0>
[89653] gw0 1 channel.__del__
[89653] gw0 sent <Message CHANNEL_EXEC channel=3 lendata=31>
[89655] gw0-worker [receiver-thread] received <Message CHANNEL_EXEC channel=3 lendata=31>
The code hangs while executing remote_exec. The problem only occurs when remote thread model is gevent.
I guess the problem occurred because while gevent is rapidly syncing with python3, execnet was not maintained :C.
Maybe related to function mapping when making ExecModel:
https://github.com/pytest-dev/execnet/blob/894533a515baf526c35ea0fe525b4866c6824ab8/execnet/gateway_base.py#L112-L125
I know this repo is unmaintained. Hoping for receiving someone's help!
- Langage dominant
- Python
- Étoiles
- 103
- Forks
- 49
- 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
- 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 pytest-dev/execnet
-
safe_terminate() leaves the abandoned termfunc thread running and reports success anywayPeut-être pris @inchang-ing l’a pris il y a 6 jours. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
pytest-dev/execnet#429 · 1 commentaire ·
-
IPv6 supportOuverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
pytest-dev/execnet#384 ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
pytest-dev/execnet#374 · 3 commentaires ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
pytest-dev/execnet#306 · 1 commentaire ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
pytest-dev/execnet#279 · 1 réaction ·
Toutes les issues de pytest-dev/execnet
Issues similaires
-
Broken links found in docsOuvertedocs pydanty:is-working
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
pydantic/pydantic-ai#9800 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
-
[Bug]: With --api-server-count > 1, gauges such as vllm:num_requests_running have no samples until the first requestPeut-être pris @roy6n23 l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
vllm-project/vllm#59988 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
pymc-devs/pymc-examples#897 ·
-
Action calls retired claude-3-5-haiku-20241022, generating failing API requests for every userOuverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 91/100