Tâche #33016
Scénario #32539: Intégrer l'éxécution du script 24-ad-dc-ou dans l'EAD3
Erreur salt API toujours visible dans les logs
100%
Description
Comme le proposait Ludwig dans #32950#note-3, j'ai lancé journalctl -xfe en parallèle de l'action et je me suis aperçu que l'erreur normalement corrigée par #32213 était toujours présente alors que j'ai bien le paquet ewt-portal 2.8.1-1 ...
[ ... ] août 20 16:29:35 scribe salt-minion-ead3[40717]: dn: CN=c32e6,CN=Users,DC=domscribe,DC=ac-test,DC=fr août 20 16:29:35 scribe salt-minion-ead3[40666]: * Aucun ordinateur à classer août 20 16:29:35 scribe salt-minion-ead3[40666]: * Classification OU: 'MesOrdis' août 20 16:29:42 scribe imapd[34350]: Connection, ip=[::ffff:192.168.0.26] août 20 16:29:42 scribe imapd[34350]: Disconnected, ip=[::ffff:192.168.0.26], time=0 août 20 16:29:50 scribe salt-api-ead3[34604]: [ERROR ] Uncaught exception POST / (127.0.0.1) août 20 16:29:50 scribe salt-api-ead3[34604]: HTTPServerRequest(protocol='http', host='127.0.0.1', method='POST', uri='/', version='HTTP/1.0', remote_ip='127.0.0.1', headers={'Host': '127.0.0.1', 'X-Real-Ip': '10.100.1.2', 'X-Forwarded-For': '10.100.1.2, 10.100.1.2', 'Connection': 'close', 'Content-Length': '66', 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:82.0) Gecko/20100101 Firefox/82.0', 'Accept': '*/*', 'Accept-Language': 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3', 'Accept-Encoding': 'gzip, deflate, br', 'Referer': 'https://scribe.ac-test.fr/ead/run_action.html?action=sortclient', 'Content-Type': 'application/json', 'X-Auth-Token': '4e804582020c2c0619c47b5666bf5e7705905bd4e7070f4d18a2a39eeb0b44ed', 'Origin': 'https://scribe.ac-test.fr', 'Cookie': 'ead2style=main1.css; TWISTED_SECURE_SESSION=40fc43d5fb1e54ecf6bc09bbd59a5be5f6119dd1f92b2b21aa033e27911e5aac; TWISTED_SESSION=fe77be1af4d24552e8c136d6f5b6ac5c; EoleSSOServer=TGC-scribeac-testfr-af9c85841fb171b090d387c9ee30d536785fb4652bde4ddc85358df8; roundcube_sessid=g15ctifgrm3647i9a1evofg1o7; session_id=4e804582020c2c0619c47b5666bf5e7705905bd4e7070f4d18a2a39eeb0b44ed; bareos=d172u7r2m4jtmnh2kg1ep27022; user_cas_enforce_authentication=0; user_cas_redirect_url=%252Fnextcloud%252F; nineboard=88ive775ggm9ib5bfbb0rnkgee; ninegate=4i8l8ig3qivbeka37jqk4imt2p; nineschool=uhc035iqk2t70i0o38g6htf0fm; eoe_session=eoe:b83dd418-3d50-4d6b-b893-9847ecb4f5fc!tz4qDJGgJ64flf/LI7Ymy5I5Aos=; eolegenconfig_session=eolegenconfig:cbb6f245-8ae7-4c14-98c7-45b603125918!wGK/cPDmAP+40g3S63Hj3f5D1gg=', 'X-Forwarded-Proto': 'https', 'X-Forwarded-Host': 'scribe.ac-test.fr', 'X-Forwarded-Server': 'domscribe.ac-test.fr'}) août 20 16:29:50 scribe salt-api-ead3[34604]: Traceback (most recent call last): août 20 16:29:50 scribe salt-api-ead3[34604]: File "/usr/lib/python3/dist-packages/salt/ext/tornado/web.py", line 1469, in _stack_context_handle_exception août 20 16:29:50 scribe salt-api-ead3[34604]: raise_exc_info((type, value, traceback)) août 20 16:29:50 scribe salt-api-ead3[34604]: File "<string>", line 4, in raise_exc_info août 20 16:29:50 scribe salt-api-ead3[34604]: File "/usr/lib/python3/dist-packages/salt/ext/tornado/stack_context.py", line 317, in wrapped août 20 16:29:50 scribe salt-api-ead3[34604]: ret = fn(*args, **kwargs) août 20 16:29:50 scribe salt-api-ead3[34604]: File "/usr/lib/python3/dist-packages/salt/ext/tornado/gen.py", line 952, in <lambda> août 20 16:29:50 scribe salt-api-ead3[34604]: IOLoop.current().call_later(duration, lambda: f.set_result(None)) août 20 16:29:50 scribe salt-api-ead3[34604]: File "/usr/lib/python3/dist-packages/salt/ext/tornado/concurrent.py", line 290, in set_result août 20 16:29:50 scribe salt-api-ead3[34604]: self._set_done() août 20 16:29:50 scribe salt-api-ead3[34604]: File "/usr/lib/python3/dist-packages/salt/ext/tornado/concurrent.py", line 333, in _set_done août 20 16:29:50 scribe salt-api-ead3[34604]: for cb in self._callbacks: août 20 16:29:50 scribe salt-api-ead3[34604]: TypeError: 'NoneType' object is not iterable août 20 16:29:50 scribe salt-api[34604]: 2021-08-20 16:29:50,188 [tornado.application:1591][ERROR ][34604] Uncaught exception POST / (127.0.0.1) HTTPServerRequest(protocol='http', host='127.0.0.1', method='POST', uri='/', version='HTTP/1.0', remote_ip='127.0.0.1', headers={'Host': '127.0.0.1', 'X-Real-Ip': '10.100.1.2', 'X-Forwarded-For': '10.100.1.2, 10.100.1.2', 'Connection': 'close', 'Content-Length': '66', 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:82.0) Gecko/20100101 Firefox/82.0', 'Accept': '*/*', 'Accept-Language': 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3', 'Accept-Encoding': 'gzip, deflate, br', 'Referer': 'https://scribe.ac-test.fr/ead/run_action.html?action=sortclient', 'Content-Type': 'application/json', 'X-Auth-Token': '4e804582020c2c0619c47b5666bf5e7705905bd4e7070f4d18a2a39eeb0b44ed', 'Origin': 'https://scribe.ac-test.fr', 'Cookie': 'ead2style=main1.css; TWISTED_SECURE_SESSION=40fc43d5fb1e54ecf6bc09bbd59a5be5f6119dd1f92b2b21aa033e27911e5aac; TWISTED_SESSION=fe77be1af4d24552e8c136d6f5b6ac5c; EoleSSOServer=TGC-scribeac-testfr-af9c85841fb171b090d387c9ee30d536785fb4652bde4ddc85358df8; roundcube_sessid=g15ctifgrm3647i9a1evofg1o7; session_id=4e804582020c2c0619c47b5666bf5e7705905bd4e7070f4d18a2a39eeb0b44ed; bareos=d172u7r2m4jtmnh2kg1ep27022; user_cas_enforce_authentication=0; user_cas_redirect_url=%252Fnextcloud%252F; nineboard=88ive775ggm9ib5bfbb0rnkgee; ninegate=4i8l8ig3qivbeka37jqk4imt2p; nineschool=uhc035iqk2t70i0o38g6htf0fm; eoe_session=eoe:b83dd418-3d50-4d6b-b893-9847ecb4f5fc!tz4qDJGgJ64flf/LI7Ymy5I5Aos=; eolegenconfig_session=eolegenconfig:cbb6f245-8ae7-4c14-98c7-45b603125918!wGK/cPDmAP+40g3S63Hj3f5D1gg=', 'X-Forwarded-Proto': 'https', 'X-Forwarded-Host': 'scribe.ac-test.fr', 'X-Forwarded-Server': 'domscribe.ac-test.fr'}) Traceback (most recent call last): File "/usr/lib/python3/dist-packages/salt/ext/tornado/web.py", line 1469, in _stack_context_handle_exception raise_exc_info((type, value, traceback)) File "<string>", line 4, in raise_exc_info File "/usr/lib/python3/dist-packages/salt/ext/tornado/stack_context.py", line 317, in wrapped ret = fn(*args, **kwargs) File "/usr/lib/python3/dist-packages/salt/ext/tornado/gen.py", line 952, in <lambda> IOLoop.current().call_later(duration, lambda: f.set_result(None)) File "/usr/lib/python3/dist-packages/salt/ext/tornado/concurrent.py", line 290, in set_result self._set_done() File "/usr/lib/python3/dist-packages/salt/ext/tornado/concurrent.py", line 333, in _set_done for cb in self._callbacks: TypeError: 'NoneType' object is not iterable
Associated revisions
evite les erreurs EAD (ref #33016)
evite les erreurs EAD (ref #33016)
Cherry-picked from eole-saltstack:commit:cfb747db for EOLE 2.8.0
History
#1 Updated by Matthieu Lamalle about 2 years ago
- Status changed from Nouveau to En cours
#2 Updated by Matthieu Lamalle about 2 years ago
Le traceback n'est pas lié à l'action en elle-même.
Il apparaît aussi sur les autres action (ex: Reconfigurer) lorsqu'on y accède
#3 Updated by Emmanuel GARETTE about 2 years ago
- Status changed from En cours to À valider
- Assigned To set to Emmanuel GARETTE
- % Done changed from 0 to 100
C'est un bug profond entre salt-api et tornado.
Je ne sais pas bien qui en est la cause mais :
Le "Future" est exécuté dans la fonction "_disbatch_local" de /usr/lib/python3/dist-packages/salt/netapi/rest_eole/saltnado.py mais également, au bout d'un moment dans la loop principale de tornado.
Hors lors de l'exécution dans "_disbatch_local" il "termine" la tâche. Lors qu'elle est exécuter dans la loop de tornado elle est déjà exécuté et ca plante
Je ne vois pas comment résoudre ce problème proprement.
J'ai donc rajouter une liste de callbacks vide pour qu'à la seconde exécution il ne fasse rien.
#4 Updated by Emmanuel GARETTE about 2 years ago
Pour tester, démarrer un scribe aca.
Aller dans l'ead3 : https://scribe.ac-test.fr/ead/ puis sur le groupe "Tâches planifiées".
Cliquer sur la 1er action. Lors qu'elle est afficher, revenir sur le groupe. Cliquer ensuite sur la 2eme actions.
L'erreur apparait parfois 1 minutes après. Elle ne devrait plus apparaitre
#5 Updated by Ludwig Seys about 2 years ago
- Status changed from À valider to Résolu
#6 Updated by Joël Cuissinat about 2 years ago
~/git/eole-saltstack$ git branch -r --contains cfb747db origin/HEAD -> origin/master origin/dist/eole/2.8.1/master origin/master
Le contournement me semble efficace...
Pourquoi pas le rétro-porter ?
- je viens de tester en 2.7.2, on ne voit pas de traceback dans les logs ;)c
- par contre en 2.8.0, on a le même traceback !
#7 Updated by Joël Cuissinat about 2 years ago
- Status changed from Résolu to Fermé
- Remaining (hours) set to 0.0
Semble OK avec le paquet eole-ead3-saltstack (2.8.0-6)