Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

extend job errors (Stderr -> warning) #236

Open
odinuv opened this issue Jan 29, 2018 · 13 comments
Open

extend job errors (Stderr -> warning) #236

odinuv opened this issue Jan 29, 2018 · 13 comments

Comments

@odinuv
Copy link
Member

odinuv commented Jan 29, 2018

Pokud dneska komponenta vyprodukuje neco na stderr, posle se to do storage eventu jako error, nicmene job skonci jako success a nikoho to nezajima.
Tzn. navrhuju, ze pokud se pri behu komponenty vyprodukuje neprazdny stderr (ale soucasne ma porad exit kod 0), da se to do resultu jobu a ten job skonci se stavem warning.
Ten potom ma sanci probublat do orchestraci a pripadne hodit notifikace

@ondrejhlavacek
Copy link
Member

Jakej je use case? K čemu to má sloužit, co to bude řídit, co to bude konzumovat?

@odinuv
Copy link
Member Author

odinuv commented Jan 29, 2018

use case je, ze kdyz dneska zacne neco produkovat pri behu chyby (ale soucasne se to dokonci se success 0), tak nemas sanci se to nikdo dozvedet. Pokud to bude koncit warningem, da se s tim neco delat.

@ondrejhlavacek
Copy link
Member

Co to je třeba za chyby? Podobnou situaci jsme řešili s @kacurez, kde jsem argumentoval, že komponenta má nějakou konfiguraci, co má provést. Buďto to provede vcelku, nebo ne. Žádnej mezistav "provedl jsem kus", ten mi přijde špatnej, z toho se nevyhrabeš (třeba v případě extraktorů), a importovat necelý data je imho špatně jak z byznysovýho (integrita) tak z technologickýho (návaznost na state/inkrementy) hlediska.

@odinuv
Copy link
Member Author

odinuv commented Jan 30, 2018

vsak to neni mezistav, komponenta se provede cela, skonci exitem 0, vsechno se naimportuje, ale soucasne vyblila cosi na stderr, z jakyhokoliv duvodu. Takze pokud udela nekdo extractor, kterej furt vypisuje neco na stderr, tak to bude vsem psat warningy a budou nadavat autorovi, at to spravi. Ale pokud se nekde objevi nejakej vystup na stderr - tak se v soucasnym stavu totalne stopi (protoze eventy u success component nikdo neprohlizi) - a pri tom warningu by se uz nestopil.

@ondrejhlavacek
Copy link
Member

A co to tam bleje a proč? Můžem říct, že cokoliv na stderr a exit kód 0 vyvolá aplikační chybu?

@odinuv
Copy link
Member Author

odinuv commented Jan 30, 2018

V rkovejch vecech mismatch v instalovanych packages, type coercion, nebo treba tohle https://github.com/keboola/generic-extractor/search?q=warning&type=Code&utf8=✓
nebo tohle
image

nebo tohle

image

nebo tohle

image

proste to je vec autora komponenty co tam bleje a proc
kazdopadne pokud udelame ze neprazdnej stderr = chyba komponenty tak popada asi pulka jobu, navic je to starost autora komponenty aby vratila spravnej exit kod - takze pokud si je autor komponenty jistej, ze probehla spravne, tak proc my bysme meli rikat, ze failnula?

@ondrejhlavacek
Copy link
Member

takze pokud si je autor komponenty jistej, ze probehla spravne, tak proc my bysme meli rikat, ze failnula

Tak ať pak neposílá nic na stderr.

Ten generic dává smysl! Dík.

@ondrejhlavacek
Copy link
Member

Hele, ale bojim se, že to bude děsnej vomrd zavést novej stav jobu. Na hromadě míst se to checkuje, nemluvě o možnejch externích integracích.

@odinuv
Copy link
Member Author

odinuv commented Jan 30, 2018

Dyt o tom furt mluvim :)

@MiroCillik
Copy link
Member

MiroCillik commented Oct 3, 2018

Navazujem na diskusiu o warningoch z offsitu :)
Zaver debaty bol, ze zavedieme novy vystupny subor results.json kam sa tie errory a warningy mozu vygrcat (spolu s dalsimi vecami ako usage, statistiky a pod).
Stav jobu sa potom v UI urci nasledovne:

if errors/warnings v results.json && exit code = 0 -> job status := warning

Tu je raw prepis Najlosovych poznamiek:

  • vymyslet mechanismus, jak sebrat errory z komponenty (/data/out/errors?)
    kam to ukládat?
  • errors.json podobně jako usage.json
  • nový stav jobu není potřeba, UI to může detekovat z výsledku jobu
  • zadefinujeme, kde přesně bude uložený flag, který způsobí graceful chování, bude v configu na úrovni parameters/storage
  • errors.json -> warnings.json
  • začít nejdřív dokumentací
  • warnings.json -> results.json, minimálně 1 úrověň definovaná od nás, docker runner by tam mohl injectnout output mappingy, usage, statistiky
  • if errors/warnings v results.json && exit code = 0 -> job status := warning

@odinuv
Copy link
Member Author

odinuv commented Oct 3, 2018

jeste prihodim link https://www.wunderlist.com/#/tasks/4102568562

@odinuv odinuv changed the title Stderr -> warning extend job errors (Stderr -> warning) Jan 21, 2019
@odinuv
Copy link
Member Author

odinuv commented Jan 21, 2019

zahrnout do toho i lepsi zobrazeni chyb om/im https://github.com/keboola/output-mapping/pull/32#discussion_r249357288

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants