Open lecault opened 1 year ago
J'ai déjà parlé de ce problème rencontré avec gunicorn. De mon côté je constate qu'il ne démarre pas en raison de git qui est encore en train d'écrire.
Plusieurs restart permettent de démarrer le service prod.
C'est documenté ici :
Il manque peut être des options au script du service gunicorn pour un stop / restart propre. A voir selon la doc gunicorn (@spelhate si tu as une idée ?)
Peut être qu'il faut stopper le process git avant de restart ?
Sinon en adaptant le service avec ce type de paramétrage :
[Unit]
Description=Your Daemon Name
StartLimitIntervalSec=60
StartLimitBurst=5
[Service]
ExecStart=/path/to/executable
Restart=on-failure
RestartSec=10s
[Install]
WantedBy=multi-user.target
On va regarder avec @pierrejego, merci pour les suggestions @spelhate
Alors suite à un redémarrage infructueux, j'ai l'erreur ci-dessous. En redémarrant plusieurs fois, ça passe.
Le log en question :
[2023-06-22 15:02:18 +0200] [18381] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/mnt/ext/var/geobretagne/dev/mviewerstudio/srv/python/.venv/lib/python3.9/site-packages/gunicorn/arbiter.py", line 589, in spawn_worker
worker.init_process()
File "/mnt/ext/var/geobretagne/dev/mviewerstudio/srv/python/.venv/lib/python3.9/site-packages/gunicorn/workers/base.py", line 134, in init_process
self.load_wsgi()
File "/mnt/ext/var/geobretagne/dev/mviewerstudio/srv/python/.venv/lib/python3.9/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi
self.wsgi = self.app.wsgi()
File "/mnt/ext/var/geobretagne/dev/mviewerstudio/srv/python/.venv/lib/python3.9/site-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/mnt/ext/var/geobretagne/dev/mviewerstudio/srv/python/.venv/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
return self.load_wsgiapp()
File "/mnt/ext/var/geobretagne/dev/mviewerstudio/srv/python/.venv/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
return util.import_app(self.app_uri)
File "/mnt/ext/var/geobretagne/dev/mviewerstudio/srv/python/.venv/lib/python3.9/site-packages/gunicorn/util.py", line 359, in import_app
mod = importlib.import_module(module)
File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 850, in exec_module
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "/mnt/ext/var/geobretagne/dev/mviewerstudio/srv/python/mviewerstudio_backend/app.py", line 8, in <module>
app.register.create_register_from_file_system()
File "/mnt/ext/var/geobretagne/dev/mviewerstudio/srv/python/mviewerstudio_backend/utils/register_utils.py", line 61, in create_register_from_file_system
self._configs_files_to_register()
File "/mnt/ext/var/geobretagne/dev/mviewerstudio/srv/python/mviewerstudio_backend/utils/register_utils.py", line 98, in _configs_files_to_register
self.update(config.as_dict())
File "/mnt/ext/var/geobretagne/dev/mviewerstudio/srv/python/mviewerstudio_backend/utils/register_utils.py", line 151, in update
self.delete(config_dict["id"])
File "/mnt/ext/var/geobretagne/dev/mviewerstudio/srv/python/mviewerstudio_backend/utils/register_utils.py", line 160, in delete
register_json = json.load(register_file)
File "/usr/local/lib/python3.9/json/__init__.py", line 293, in load
return loads(fp.read(),
File "/usr/local/lib/python3.9/json/__init__.py", line 346, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python3.9/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/local/lib/python3.9/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Un retour d'expérience sur ce sujet. Sur la version installée sur GéoBretagne, je n'arrivais pas à redémarrer le service avec les données existantes (4,5 organismes avec plusieurs applications). Pour que ça marche :
ça semble fonctionner.
J'ai des soucis pour redémarrer mon service. J'y arrive au bout d'un moment.
A spécifier...