ARPA-SIMC / arkimet

A set of tools to organize, archive and distribute data files.
Other
15 stars 5 forks source link

arki-query exits with status 0 after RuntimeError on grib scan #273

Closed brancomat closed 3 years ago

brancomat commented 3 years ago

example with grib attached:

$ arki-query --data "" /tmp/bruttogrib.grib >> out2.grib
ERROR scanner function failed
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/arkimet/scan/grib.py", line 31, in scan
    if scan(grib, md) is False:
  File "/etc/arkimet/scan/grib1.py", line 90, in scan_grib1
    raise RuntimeError("COSMO message with P1 > P2")
RuntimeError: COSMO message with P1 > P2
$ echo $?
0

bruttogrib.tar.gz

dcesari commented 3 years ago

Credo sia un problema di codifica di Cosmo per grib di analisi cumulati o max/min, l'avevo incontrato anche io, controllo meglio, comunque direi al 90% che il messaggio è da buttare perché non si inserisce nel data model, ma ciò non dovrebbe inficiare lo scanning dei messaggi sucessivi. Sull'aspetto exit code lascio gestire a voi, non saprei se sia meglio segnalarlo, o meno, in ogni caso dovrebbe stare in una categoria tipo "è inutile che ci riprovi, otterrai sempre lo stesso risultato".

spanezz commented 3 years ago

Cercando nel codice, mi sembra che arkimet abbia sempre ignorato gli errori negli script di scan, con l'idea che se gli script girano, abbiamo dati in piú, sennò qualche dato l'abbiamo comunque.

Quello che mostra è un'entry di log che logga anche l'eccezione (si vede che prima c'è un ERROR scanner function failed), e il GRIB viene scansionato comunque, solo si ritrova con metadati incompleti. Può essere che comunque siano sufficienti per essere importato, e che quindi effettivamente non ci siano errori a parte una voce di log.

Per riferimento questi sono i dati che vengono scansionati comunque:

Source: BLOB(grib,/home/enrico/lavori/arpa/arkimet/bruttogrib.grib:5653824+120)
Origin: GRIB1(080, 255, 011)
Product: GRIB1(080, 201, 023)
Level: GRIB1(001)
Timerange: Timedef(0s, 0, 1h)
Reftime: 2021-09-23T00:00:00Z
Area: GRIB(Ni=576, Nj=701, latfirst=-8500000, latlast=5500000, latp=-47000000, lonfirst=-3800000, lonlast=7700000, lonp=10000000, rot=0, type=10)
Proddef: GRIB(tod=0)
Run: MINUTE(00:00)
Note: [2021-09-27T15:06:17Z]Scanned from bruttogrib.grib:5653824+120

ERROR scanner function failed
Traceback (most recent call last):
  File "/home/enrico/lavori/arpa/arkimet/python/arkimet/scan/grib.py", line 31, in scan
    if scan(grib, md) is False:
  File "/home/enrico/lavori/arpa/arkimet/conf/scan/grib1.py", line 90, in scan_grib1
    raise RuntimeError("COSMO message with P1 > P2")
RuntimeError: COSMO message with P1 > P2
Source: BLOB(grib,/home/enrico/lavori/arpa/arkimet/bruttogrib.grib:5653944+807672)
Origin: GRIB1(080, 255, 011)
Product: GRIB1(080, 201, 025)
Level: GRIB1(001)
Reftime: 2021-09-23T00:00:00Z
Run: MINUTE(00:00)
Note: [2021-09-27T15:06:17Z]Scanned from bruttogrib.grib:5653944+807672

Source: BLOB(grib,/home/enrico/lavori/arpa/arkimet/bruttogrib.grib:6461616+807672)
Origin: GRIB1(080, 255, 011)
Product: GRIB1(080, 202, 055)
Level: GRIB1(001)
Timerange: Timedef(0s, 254, 0s)
Reftime: 2021-09-23T00:00:00Z
Area: GRIB(Ni=576, Nj=701, latfirst=-8500000, latlast=5500000, latp=-47000000, lonfirst=-3800000, lonlast=7700000, lonp=10000000, rot=0, type=10)
Proddef: GRIB(tod=0)
Run: MINUTE(00:00)
Note: [2021-09-27T15:06:17Z]Scanned from bruttogrib.grib:6461616+807672

Il precedente e il successivo hanno l'area e il timedef, quello che dà errore no, ma ha il resto. È probabile che coi filtri che abbiamo sia stato tranquillamente importato

spanezz commented 3 years ago

Se la mia analisi è corretta, forse è meglio passare quel messaggio da ERROR a WARNING

brancomat commented 3 years ago

Ok, per me possiamo mantenere l'attuale exit status a zero e declassare l'error a warning