Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Case sensitivity issues with size magnitudes (KB vs kb)

Aperta
#83 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
45/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Ferma
Stack tecnologico
python
Ambito
devops

Direzione di ricerca

Riproduci il malfunzionamento con gli esempi qsub usando 4194304KB, quindi confrontalo con la forma funzionante in minuscolo. Inizia da hpc/autoscale/hpctypes.py, nelle vicinanze di value_of e _value_of, e segui il parsing attraverso pbspro/resource.py; il lavoro è terminato quando le grandezze di dimensione in maiuscolo vengono accettate senza l’eccezione di autoscaling.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Therse seems to be a bug in CycleCloud PBS my customer was complaining about (CC version 8.7.1-3364 .... with pbspro):

Any user can make autoscaling stop working, i.e. no further jobs handled if a memory size is specified in capitalized units. For example:

$ echo sleep 300 | qsub -l select=1:ncpus=120:mem=4194304KB:mpiprocs=120 or echo 300 | qsub -l nodes=1:ppn=120 -l mem=4194304KB

OpenPBS handles this just fine, but /opt/cycle/pbspro/autoscale.log will have python exceptions - and autoscaling will never proceed for the entire cluster.

Workaround is a manual like this:
$ qalter -l select=1:ncpus=120:mem=4194304kb:mpiprocs=120 JOBID


Traceback (most recent call last):

  File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/pbspro/resource.py", line 154, in parse

    return HPCSize.value_of(expr)

  File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/hpc/autoscale/hpctypes.py", line 106, in value_of

    return Size._value_of(Size, value)

  File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/hpc/autoscale/hpctypes.py", line 142, in _value_of

    ).format(mag, mag)

RuntimeError: Unknown SizeMagnitude 'KB'. To register custom magnitudes, call hpc.autoscale.hpctypes.add_magnitude_conversion('KB', N), where N is the number of bytes.
 
During handling of the above exception, another exception occurred:
 
Traceback (most recent call last):

  File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/hpc/autoscale/clilib.py", line 1892, in main

    args.func(**kwargs)

  File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/hpc/autoscale/clilib.py", line 436, in autoscale

    output_columns = output_columns or self._get_default_output_columns(config)

  File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/hpc/autoscale/clilib.py", line 1077, in _get_default_output_columns

    default_cmd = self._default_output_columns(config, cmd_name)

  File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/pbspro/cli.py", line 76, in _default_output_columns

    env = self._pbs_env(driver)

  File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/pbspro/cli.py", line 110, 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 594, 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 747, in parse_jobs

    rdict = parser.convert_resource_list(res_list)

  File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/pbspro/parser.py", line 38, in convert_resource_list

    ret["select"] = self.parse_select(str(raw_dict["select"]))

  File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/pbspro/parser.py", line 101, in parse_select

    value = self.resource_definitions[key].type.parse(value)

  File "/opt/cycle/pbspro/venv/lib/python3.6/site-packages/pbspro/resource.py", line 157, in parse

    "Could not parse '{}' as type size (e.g. 1mb)".format(expr)

pbspro.resource.ResourceParsingError: Could not parse '4194304KB' as type size (e.g. 1mb)
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

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Azure/cyclecloud-pbspro

Tutte le issue di Azure/cyclecloud-pbspro

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.