autoscaler not handling well bad formatted JSON qstat output
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 30/100
Direzione di ricerca
Inizia da pbspro/pbscmd.py, in particolare da qstat_json e _check_output, quindi segui la chiamata a parse_jobs in pbspro/driver.py e a pbspro/environment.py a partire dal traceback. Riproduci qstat JSON contenente variabili d'ambiente complesse e verifica che un job malformato non interrompa più l'autoscaling e non impedisca l'aggiunta di nuovi nodi.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
cyclecloud-pbspro version 2.0.10
With OpenPBS 19.1.1 output in JSON for qstat can be bad formatted in case of complex environment variables.
For example : qstat -f <job_id> -F json | jq '.' will return an error meaning the JSON is bad formatted.
As a result this make the autoscaler to stop working, so a single bad job can hang all the whole system and no new nodes can be added.
Here the output of azpbs autoscale
File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/pbspro/environment.py", line 58, in from_driver
--- Logging error ---
Traceback (most recent call last):
File "/usr/lib64/python3.6/logging/init.py", line 996, in emit
stream.write(msg)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 47623-47628: ordinal not in range(128)
Call stack:
File "/root/bin/azpbs", line 4, in
main()
File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/pbspro/cli.py", line 284, in main
clilib.main(argv or sys.argv[1:], "pbspro", PBSCLI())
File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/hpc/autoscale/clilib.py", line 1739, in main
args.func(**kwargs)
File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/hpc/autoscale/clilib.py", line 1315, in analyze
dcalc = self._demand(config, ctx_handler=ctx_handler)
File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/hpc/autoscale/clilib.py", line 360, in _demand
dcalc, jobs = self._demand_calc(config, driver)
File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/pbspro/cli.py", line 113, in _demand_calc
pbs_env = self._pbs_env(pbs_driver)
File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/pbspro/cli.py", line 106, in _pbs_env
self.__pbs_env = environment.from_driver(pbs_driver.config, pbs_driver)
File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/pbspro/environment.py", line 58, in from_driver
jobs = pbs_driver.parse_jobs(queues, default_scheduler.resources_for_scheduling)
File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/pbspro/driver.py", line 414, in parse_jobs
self.pbscmd, self.resource_definitions, queues, resources_for_scheduling
File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/pbspro/driver.py", line 530, in parse_jobs
response: Dict = pbscmd.qstat_json("-f", "-t")
File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/pbspro/pbscmd.py", line 31, in qstat_json
response = self.qstat(*args)
File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/pbspro/pbscmd.py", line 25, in qstat
return self._check_output(cmd)
File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/pbspro/pbscmd.py", line 76, in _check_output
logger.info("Response: %s", ret)
File "/usr/lib64/python3.6/logging/init.py", line 1308, in info
self._log(INFO, msg, args, **kwargs)
File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/hpc/autoscale/hpclogging.py", line 45, in _log
**stacklevelkw
Message: 'Response: %s'
- Lingua principale
- Python
- Stelle
- 16
- Fork
- 30
- Merge medio
- 14h 20m
- PR unite (30g)
- 6
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
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 Azure/cyclecloud-pbspro
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
Azure/cyclecloud-pbspro#91 ·
-
Autoscaler is failing with KeyError: 'headnode.internal.cloudapp.net'Forse già presa @bwatrous l’ha presa 407 giorni fa. Aperta
Azure/cyclecloud-pbspro#85 · 2 assegnatari ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
Azure/cyclecloud-pbspro#83 ·
-
Consider queue level maximums when autoscalingForse di nuovo libera @ryanhamel l’ha presa 738 giorni fa e non c’è nessuna pull request aperta. Aperta
Azure/cyclecloud-pbspro#74 · 1 assegnatario ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
Azure/cyclecloud-pbspro#65 ·
Tutte le issue di Azure/cyclecloud-pbspro
Issue simili
-
infrastructure
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
NatLabRockies/H2Integrate#977 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
topoteretes/cognee#6470 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
-
area:docs priority:p2 type:docs wave:9
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 84/100
jejjohnson/radtrax#293 ·
I maintainer di solito rispondono entro 1 giorno
-
bug core plugins
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
bunkerity/bunkerweb#4121 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno