Navod k D0 simulacim v Praze



  1. Vyroba hlavniho makra
  2. Spusteni simulacniho retezce
  3. Deklarace/ulozeni vystupu na SAM
  4. Problemy a jak na ne
  5. Co delat, kdyz simulace bezi
    Proces samotneho spousteni simulaci pro D0 se sklada ze 3 fazi : ktere jsou dale podrobneji popsany.







Vyroba hlavniho makra


    Pro uspesne spusteni simulaci je nutne nejdrive ziskat informace o danem requestu, ktere jednotlive simulacni faze ke svemu behu potrebuji. Jelikoz se informace o requestu stahuji ze SAMu ve FNAL, je treba nasledujici akce provadet na lokalnim stroji, kde je instalovan SAM, tj. na sam.farm.particle.cz. Navic se zminene akce musi provadet pod uctem, ktery je zaregistrovan ve Fermilab, tedy nutno uzit nejaky osobni ucet, nikoli d0mc.
    Tyto informace a nastaveni ruznych promennych musi byt shrnuty v samostatnem souboru, hlavnim ridicim makru, ktere se ziska provedenim nasledujicich kroku :
  1. Zjistit, ktery request je na rade ke zpracovani
    • Na d0minu provest :
      • setup sam_common v5_1_0_3
      • setup sam_user_api v5_1_0_0
      • python /home/bertram/Queue.py
    • Pokud nefunguje postup uvedeny v predchozim bodu, lze cislo requestu, ktery je na rade, zjistit na WWW strance :

  2. Zjistit, zda jsou nainstalovane cardfily pozadovane verze
        Verze cardfilu pro generator eventu je uvedena v seznamu parametru daneho requestu, viz WWW stranka s vypisem vsech MC requestu. Seznam verzi cardfilu nainstalovanych na goliasi lze zjistit prohlednutim adresare /home/d0mc/mcc-dist/packages/cardfiles, nebo pomoci shell skriptu showsoft. Pokud pozadovana verze cardfilu neni na goliasi nainstalovana, je treba ji pred spustenim simulaci nainstalovat. Primarni zdroj cardfiles je D0CVS server pristupny z d0mina , tez je mozne nejake objevit v SAMU. Pri instalaci postupujte nasledujicim zpusobem :
    • Ke stazeni cardfilu je treba mit na d0minu "forwardable" ticket, tj. pokud se logujete na d0mino z clued0 klustru, pred nalogovanim na d0mino udelat "kinit -f" a uvest kerberosovske heslo.
    • Nejdrive se stahnou cardfily dane verze z d0cvs na d0mino (na samu se mi to nepovedlo), tj. na d0minu se provede :
      • setup d0cvs
      • cvs checkout -r vxx-xx-xx cardfiles     kde vxx-xx-xx je cislo pozadovane verze
      Timto se do adresare cardfiles stahnou vsechny cardfily zadane verze.
    • Vsechny cardfily, ktere se stahly do cardfiles je pak treba pretahnout na goliase do adresare /home/d0mc/mcc-dist/packages/cardfiles/vxx-xx-xx (adresar vxx-xx-xx se musi vytvorit).

  3. Vyrobit hlavni ridici makro
    getrequest - bash skript na samu v adresari /home/soustruz/mc_macros
 
  • stahne informace o requestu a vytvori hlavni macro
  • syntaxe : getrequest cislo_requestu [cislo_requestu]       napr. ./getrequest 5257
    2. parameter neni nutne uvadet, ale pokud uveden a je shodny s 1. parametrem,
    status stahovaneho requestu ve FNAL databazi zmenen na "running"
  • vystup : hlavni makro Request_cislorequestu.macro       napr. Request_5257.macro
  • skript potrebuje ke sve cinnosti soubory translate.py , macro.default a Defaults.py.

    !!! POZOR !!!    Hlavni makro je nutne jeste zkontrolovat a pripadne upravit a to v polozkach:
  • samglobal : uvest spravne Request ID !!!, FacilityName nastavit na FZU
  • pythia : nastavit pocet eventu/job
  • merger : MergeLocation musi byt pro kazdy request jine !!!
    navic musi byt jine i pro kazdou skupinu jobu stejneho requestu, jejichz thumbnaily se budou spojovat !!!
  • dale je vhodne vsude zkontrolovat verzi releasu !!!

    Priklad takoveho ridiciho makra je zde.






Spusteni simulacniho retezce

    Pokud jiz mame hlavni ridici makro pro zadany request, je treba ho ze samu prenest na goliase, do direktorie /home/d0mc/mc_macros. Potom jiz muzeme zacit s vlastnimi simulacemi, tok dat v simulacich je znazornen na tomto schematu.

    Pozor !!!   Pred spustenim jobu je treba :
  • rozmyslet si, kolik jobu spustit a v kolika sadach,
    toto je treba skloubit s poctem jobu, jejichz vystup se bude spojovat dohromady.
  • Iain Bertram doporucil spojovat zhruba 10 souboru a
    nespojovat vice nez 20-30 souboru kvuli naslednym potizim s metadaty.
  • zkontrolovat, zda promenne indir a outdir jsou ve skriptu jobstatus nastaveny stejne jako v hlavnim makru (kontrolovano ve skriptu mc_submitmain).



    Samotne spusteni a beh simulaci ridi sada shell skriptu, jejichz prehled s naznacenim vzajemne komunikace je zobrazen na nasledujicim obrazku.



    Simulacni retezec se spousti ve 2 krocich :

  1. Vytvoreni kopii hlavniho makra pro kazdou sadu jobu

        preparerequest - bash skript na goliasi v adresari /home/d0mc/mc_macros

    • zkontroluje a pripadne opravi nektere polozky v hlavnim makru jako Request ID,
      FacilityName, CurrentDir, DestinationDir, nebo MergeLocation, pak vyrobi potrebny
      pocet kopii makra a vytvori mergelocation direktorie pro kazdou sadu jobu
    • syntaxe : preparerequest    cislo_requestu    pocet_sad_jobu   [test]
      • napr. preparerequest 8809 10, nebo   preparerequest 8950 10 test
      • pokud byl zadan 3. parameter a jeho hodnota je "test", CurrentDir, DestinationDir a
        MergeLocation se nastavi na testovaci adresare



  2. Vlasni spusteni simulaci

        mc_submitmain - bash skript na goliasi v adresari /home/d0mc/mc_macros

    • spusti vsechny sady jobu a kontroluje jejich beh
    • syntaxe : mc_submitmain    cislo_requestu    pocet_sad_jobu    pocet_jobu_na_sadu > outputfile.out 2>&1 &
      • napr. ./mc_submitmain 8809 20 10 > request8809.out 2>&1 &






Popis skriptu

mc_submitmain - hlavni skript ridici beh simulaci

Vstupni parametery
  1. cislo requestu
  2. pocet sad jobu
  3. pocet jobu na sadu
  4. [resubmit] - nepovinny parametr, viz popis
Popis
  • Ulozi RequestID do "current.request", pocet sad jobu do "njobsets*.dat" a pocet jobu na sadu do "njobsperset*.dat", kde "*" znaci cislo requestu, tyto udaje pak pouzivaji ostatni skripty.
  • Pro kazdou sadu jobu spusti skript mc_submitseq, ktery danou sadu jobu spusti.
  • Pravidelne kontroluje beh sad jobu dokud pocet uspesne dokoncenych jobu neni roven pozadovane hodnote, tj. pocet sad jobu * pocet jobu na sadu. Pri kontrole se provadi :
    • test, zda neexistuji joby se stejnym timestamp (identifikacni cislo jobu), pokud ano, tak zastavi (kill -9) beh skriptu mc_submitseq pro danou sadu, a odstrani joby se stejnym timestamp z PBS (qdel).
    • kontrola, zda bezi skript mc_submitseq pro kazdou sadu, pokud ne, tak se spocte, pomoci skriptu jobstatus, pocet uspesne dokoncenych jobu v dane sade. Pokud je toto cislo mensi nez pozadovany pocet jobu na sadu, zjisti stav posledniho jobu (skript jobstatus) a pokud job skoncil chybou, pokusi se ho opravit spustenim skriptu repairjob. Po dobehnuti skriptu repairjob znovu otestuje stav opravovaneho jobu (skript jobstatus) a pokud se oprava nezdarila, dany job smaze pomoci skriptu deletejob. Znovu spocte pocet uspesne dokoncenych jobu v dane sade (skript jobstatus) a pokud je mensi nez pozadovany pocet a dana sadu opravdu nebezi, znovu spusti skript mc_submitseq pro danou sadu.
    • likviduje procesy (d0gstar) neviditelne v qstat (killdog)
  • Ulozi informace o vsech uspesne dokoncenych jobech, s uzitim skriptu jobstatus, do souboru pro snadny prenos dat ze samu do FNAL.
  • Spusti skript jobs2mysql, ktery z udaju o jednotlivych jobech vytvori soubor snadno pouzitelny v MySQL.
  • Pokud zadano "resubmit" jako 4. parametr, nezapisuje se pocet zadanych sad a jobu na sadu, ale zkontroluje se, za zadane hodnoty souhlasi s temi, ktere jsou v souborech njobsets*.dat a njopsperset*.dat, kde "*" je cislo requestu. Pokud ne, skript skonci. Rovnez se pak nespousti sady jobu, tj. nespousti se skript mc_submitseq. Zacnou se provadet az kontroly, zda bezi sady jobu. Lze vyhodne pouzit na znovuspusteni simulaci po padu, nebo nucenem zastaveni tohoto skriptu.



mc_submitseq - skript ridici beh 1 sady jobu

Vstupni parametry
  1. jmeno hlavniho makra pro danou sadu
  2. pocet jobu v sade
  3. cislo sady
  4. nepovinny parametr : pokud uveden, beh skriptu se v pripade, ze mergelocation pro danou sadu NENI prazdna, NEukonci; pouziva se pri znovuspusteni skriptu v ramci skriptu mc_submitmain
Popis
  • Provede setup releasu a dalsich potrebnych veci (python ...).
  • Spusti mc_runjob, cimz vytvori 1 job, vcetne jeho direktorie a timestamp.
  • Otestuje, zda nove vytvorene timestamp jiz neexistuje, pokud ano, vymaze ho ze souboru gen-merge.registry v mergelocation dane sady a znovu spusti mc_runjob.
  • Zapise timestamp jobu do lots (list of timestamps) souboru dane sady a requestu.
  • Spusti 1 vytvoreny job do PBS.
  • Zapise udaje o jobu (cislo requestu, timestamp jobu, PBS ID jobu a pocet generovanych eventu) do souboru jobparams.dat.
  • Kontroluje, zda v PBS bezi job dane sady. Pokud ano, zkontroluje, zda ve fazi d0gstar nedoslo k zacykleni kvuli chybe v trasovani castice a v tom pripade job v PBS zrusi (qdel). Pokud jiz zadny job dane sady v PBS neni, zjisti stav posledniho spusteneho jobu pomoci skriptu jobstatus. Jestlize job dobehl v poradku, vytvori job dalsi (spustenim mc_runjob) a posle ho do PBS. Pokud job skoncil s chybou, ukonci svuj beh.



jobstatus - skript, ktery zjistuje stav jobu

Vstupni parametry
  1. timestamp jobu
  2. nepovinny parametr, pokud uveden, jobstatus vypise detailni popis stavu jobu
Popis
  • Podiva se, zda job nebezi jako PBS job. Pokud ano, zjisti, zda ceka ve fronte, nebo jiz bezi, pripadne zda nejde o opravny job.
  • Kdyz job neni na vypisu PBS procesu, podiva se, zda job vytvoril ve vystupni direktorii, v podadresari copyd0om, metadata soubor import*.py s timestamp jobu. Pokud import*.py metadata soubor existuje, otestuje, zda je spravne vyplnen (dokoncen), tj. zda jsou vyplneny udaje o poctu eventu, cas spusteni a dokonceni jobu a velikost souboru. Jestlize je import*.py metadata soubor spravne vyplnen, podiva se, zda existuji import*.py metadata soubory (1 pro d0reco raw data a 1 pro tmb) i ve vystupni direktorii pro d0reco fazi. Pokud ano, job je oznacen jako dokonceny a v poradku. Jestlize ale import*.py metadata soubor(y) pro d0reco fazi chybi, ale existuje import*.py metadata soubor pro copyd0om, je job oznacen jako chybny (ERROR). Pokud vsak neexistuje import*.py metadata soubor pro copyd0om, nebo neni dokonceno jeho vyplneni, je stav jobu nastaven na FATAL ERROR. Stav jobu je oznacen jako FATAL ERROR i v pripade, ze ve fazi copyd0om nebyl vytvoren logfile, nebo v logfilu (v direktorii jobu) neni zminka o otevreni vystupniho souboru copyd0om faze pro zapis.
  • Pokud byl zadan i druhy parametr, vypise detailni informace o stavu jobu, vcetne timestamp, PBS ID jobu a pripadne i simulacni faze, kde nastala chyba. Vypise pripadne vicekrat pouzite timestamp a informace o existenci vystupnich data a metadata souboru kazde faze.
Mozne stavy jobu jsou :
  • 1 : QUEUED
  • 2 : RUNNING
  • 3 : DONE OK
  • 4 : ERROR
  • 5, 6 : FATAL ERROR
  • 7 : IN REPAIR



repairjob - skript zajistujici opravu jobu

Vstupni parametry
  1. timestamp jobu
  2. stav jobu
  3. cislo sady jobu
Popis
  • Zjisti, zda se zadane timestamp nevyskytuje v souboru jobparams.dat vice nez 1x (multiple timestamp). Pokud ano, tak zavola skript deletejob a job smaze.
  • Prohledne vystupni direktorie vsech simulacnich fazi (generator, d0gstar, d0sim, d0reco, copyd0om), zda v nich existuje logfile. Pokud logfile neexistuje, nebo v nem neni zminka o ulozeni eventu do vystupniho souboru, pak prvni faze, ktera splnuje nekterou z uvedenych podminek je oznacena jako faze, ve ktere doslo k chybe.
  • Pokud chyba nastala ve fazi d0sim, d0reco, nebo copyd0om, pokusi se job opravit. Nejdrive smaze vystupni datove soubory v chybove fazi, jestlize stav jobu je 4 (ERROR), smaze i vystupni soubory jobu z faze copyd0om. Pote vymaze zminky o jobu ze souboru gen-merge.registry a gen-merge.finished (v mergelocation direktorii). Vytvori shell skript obsahujici prikazy ke spusteni vsech potrebnych simulacnich fazi a spusti ho do PBS.



deletejob - skript na mazani jobu

Vstupni parametry
  1. timestamp jobu
Popis
  • Smaze vystupni soubory jobu z PBS.
  • Vymaze zminku o jobu ze souboru lots (list of timestamps) a jobparams.dat.
  • Smaze direktorii jobu.
  • Smaze vystup z jobu (vystupni direktorie).
  • Smaze soubory vytvorene jobem v merge location adresari a vymaze zminky o jobu ze souboru gen-merge.registry a gen-merge.finished.



jobs2mysql - skript vytvarejici info soubor o jobech pro MySQL

Vstupni parametry
  1. cislo requestu
Popis
  • Nacte informace o jobu ze souboru jobparams.dat a prida k nim stav jobu, po zavolani skriptu jobstatus a informace o stavu prenosu na SAM (vzdy jen "NONE").
  • Veskere informace pak ulozi do souboru jobs2mysql*.dat, kde "*" oznacuje cislo requestu.



preparerequest - skript na pripravu spusteni simulaci

Vstupni parametry
  1. cislo requestu
  2. pocet sad jobu
  3. nepovinny parametr :     pokud uveden a roven "test", direktorie pro vstup a vystup jobu nastaveny na testovaci adresar
Popis
  • Zkontroluje spravne vyplneni nekterych polozek v hlavnim makru, jako :
    • FacilityName - neco jako nazev farmy, melo by byt fzu
    • RequestID - cislo requestu
    • JobName - jmeno jobu, soucast nazvu direktorie jobu !!!
    • MergeLocation - jmeno adresare pro "merge location", direktorie, kde jsou soubory potrebne pro rozhodovani o spojovani vystupu jobu
    • CurrentDir - jmeno direktorie, kde se vytvareji adresare jednotlivych jobu
    • DestinationDir - jmeno direktorie, kam se uklada vystup z jobu
    a pokud jsou tyto polozky spatne vyplneny, opravi je.
  • Vytvori kopii hlavniho makra pro kazdou sadu jobu s unikatnim "JobName" a "MergeLocation".
  • Vytvori potrebnou adresarovou strukturu v MergeLocation.





Kontrola kvality a monitorovani jobu

Stav jobu a kvalitu jejich vystupu lze kontrolovat nekolika zpusoby, jez se lisi mnozstvim poskytovanych informaci :

rucne pomoci skriptu jobstatus
pomoci monitorovaciho PHP skriptu jobsmonitor.php
pomoci skriptu fastcount.sh


  1. Skript jobstatus vypise stav jobu (1 cislo), pri uvedeni 2. parametru (viz popis skriptu zde) vrati detailni popis stavu jobu.

  2. K on-line monitorovani stavu vsech jobu (najednou) slouzi PHP skript jobsmonitor.php na adrese http://golias.farm.particle.cz:8080/~d0mc/jobsmonitor.php. Pro kazdy job se zobrazuje jeho jmeno, identifikacni cislo (timestamp) a aktualni stav v odpovidajici barve. Pokud job skoncil s chybou, po kliknuti na jmeno jobu se zobrazi detailni popis jeho stavu. PHP skript pouziva ke zjistovani stavu jobu shell skript jobstatus.
  3. Skript fastcount.sh slouzi k rychlemu ziskani prehledu o poctech cekajicich, bezicich a hotovych jobu. Obzvlaste uzitecny je pri velkem poctu jobu, kdy zobrazeni informace pomoci monitorovaciho PHP skriptu jobsmonitor.php trva nekolik minut. Avsak neni presny, pocet uspesne dokoncenych jobu nelze brat za bernou minci, nebot mezi nimi jsou zapocitany i joby jez dobehly se statusem "ERROR". Hlavni funkci tohoto skriptu je rychlost.

fastcount.sh - skript zobrazujici pocty cekajicich, bezicich o dokoncenych jobech

Vstupni parametry
  1. cislo requestu
Popis
  • Skript zjistuje status, tj. spousti skript jobstatus, pouze poslednich jobu v kazde sade.
  • Pocet uspesne dokoncenych jobu se spocte jako soucet poctu zaznamu ve vsech souborech lots"requestID"-"cislo_sady".dat. Od teto hodnoty se odectou posledni joby v kazde sade, ktere maji status jiny nez "DONE OK". Rovnez pocty cekajicich a bezicich jobu se pocitaji jen z poslednich jobu v jednotlivych sadach.





Deklarace/ulozeni vystupu na SAM

   Vystup z bezchybne probehlych jobu je treba bud deklarovat, nebo primo ulozit na SAM. Pri deklaraci vystupu se manipuluje pouze s metadata souborem (python skript), ktery se zaregistruje (nebo i ulozi ?) v SAM databazi, zatimco pri ukladani se na SAM presune vlastni datovy soubor.
   Jak deklaraci tak samotne ukladani vystupu na SAM nutno provadet ze stroje, kde je nainstalovan SAM, tj. ze stroje sam.farm.particle.cz a to pod Fermilabu znamym uctem (osobni ucet), ucet d0mc uzit nelze.

   Prenos nasimulovanych dat na SAM ve FNAL lze v zasade provest 2 zpusoby :

   V prvnim pripade uzivatel pouze spusti skript moverequest2sam, ktery zajisti prenos vsech dat na SAM. V druhem pripade se postupuje sadu po sade, kde pro kazdou sadu uzivatel spusti skript movejobsets2sam rucne. Tento postup zajistuje lepsi kontrolu, ale vyzaduje zase vice prace.



moverequest2sam - skript na prenos dat na SAM

Vstupni parametry
  1. cislo requestu
  2. pocet sad jobu, ktere se maji prenest na SAM
Popis
  • Nejdrive je treba, pro kazdou sadu jobu, jejiz vystup se ma prenest na SAM, prenest z goliase na sam soubor lots"RequestID"-"cislo_sady"-doneok.dat. Tento soubor obsahuje seznam timestampu vsech uspesne dokoncenych jobu, jejichz vystup se ma prenest na SAM ve FNAL.
  • Pro kazdou sadu jobu (sady c.1 - hodnota 2. parametru) se spusti skript movejobset2sam, ktery prenese vystup jobu dane sady na SAM.
  • Pokud presun vsech sad jobu probehl uspesne, nastavi status requestu ve FNAL SAM databazi na "finished".

movejobset2sam - skript na prenos dat z 1 sady jobu na SAM

Vstupni parametry
  1. cislo requestu
  2. cislo sady jobu
Popis
  • Na zacatku skript zkontroluje, zda v pracovnim adresari existuje soubor se seznamem timestampu vsech uspesne dokoncenych jobu lots"RequestID"-"cislo_sady"-doneok.dat. Pokud ne, ukonci se.
  • Pokud dana sada jeste nebyla presunuta na SAM (podiva se do souboru movedjobsets"RequestID".dat), pak pro kazde timestamp v souboru lots"RequestID"-"cislo_sady"-doneok.dat, spusti skript move2sam-v1, ktery prenese vystup z 1 jobu na SAM.
  • V pripade uspechu zapise cislo prenesene sady do souboru movedjobsets"RequestID".dat.

move2sam-v1 - skript na prenos dat z 1 jobu na SAM

Vstupni parametry
  1. timestamp jobu
  2. copyd0om prepinac (=1 copyd0om se ulozi na SAM, <>1 - copyd0om se nepresune)
Popis
  • Zkontroluje zda existuji vsechny soubory, jez se budou deklarovat/ukladat na SAM. Pokud nejaky chybi, skript se ukonci.
  • Skript pote deklaruje, nebo ulozi vsechny soubory, 1 jobu se zadanym timestamp, k tomu urcene na SAM ve FNAL.






Problemy a jak na ne

    Zde jsou uvedeny ruzne problemy, s kterymi se lze setkat pri behu D0 MC simulaci s navody, jak tyto situace resit.

Bezi vice jobu jedne sady najednou
Vzdy smi bezet pouze 1 job v kazde sade, proto pokud jich soucasne bezi vice, je treba vsechny pozdeji spustene joby zrusit a veskere zaznamy o nich smazat.
Neni treba zastavovat beh sady jobu (script mc_submitseq), postaci zrusit nechtene joby v PBS (qdel PBSID_jobu) a smazat o nem veskere zaznamy. Uklidovou praci za nas provede skript deletejob, jeho popis a syntaxi naleznete zde.
Vsechny joby padaji a maji status "FATAL ERROR"
Obecne nelze rici, co je pricinou potizi.
Ale v takovemto pripade lze postupovat nasledovne :
  • prohlednout vystupni soubor ze skriptu mc_submitmain, zda neobsahuje nejake chybove hlasky
  • zkontrolovat vystupni soubory ze skriptu mc_submitseq (vystup pro danou sadu jobu v souborech nohup"RequestID"-"cislo-sady"*.out), zda neobsahuje chybove hlasky
  • zkontrolovat funkcnost skriptu jobstatus
Spadl skript mc_submitmain a tim se cele simulace postupne zastavuji
Pokud spadl hlavni skript mc_submitmain pak lze bud pockat az vsechny dosud bezici joby dobehnou, nebo bezici joby stopnout a znovu spustit skript mc_submitmain s resubmit jako 4. parametrem, vize syntaxe zde.
Nektere sady se "zasekly" a vyrazne zaostavaji v poctu hotovych jobu za ostatnimi
Pokud si nejste jisty, ze se skutecne jedna o patologicky stav, lze zkontrolovat, kolikrat se dana sada znovu spoustela, tj. kolik existuje vystupnich souboru skriptu mc_submitseq pro danou sadu (nohup"RequestID"-"cislo sady"*.dat). Nadmerne vysoky pocet techto souboru a hlavne vyssi stari souboru se zaznamem o poslednim uspesne dokoncenem jobu ukazuje na abnormalni stav sady, ktery vyzaduje zasah.
Nejdrive samozrejme prohledneme prislusne vystupni soubory ze skriptu mc_submitseq pro danou sadu (nohup"RequestID"-"cislo sady"*.dat), jestli se tam nevyskytuji nejake chybove hlasky. Dale zjistime, kde k potizim dochazi, tj. v jake fazi simulacniho retezce. Prohledneme tedy vystupy z jednotlivych simulacnich fazi jobu, tj. soubor "direktorie_jobu/faze/*/task-stdout-stderr.log" (predtim nutno direktorii spadleho jobu prejmenovat, aby se nesmazala). Velmi pravdepodobne jde o chybu pri pripojovani vystupu z daneho jobu k vystupu z predchozich jobu, coz by se melo projevit hlaskou "CheckMerge : Job not finished", ci necim podobnym ve fazi merger.
V takovem pripade se podivame do merge location dane sady a zkontrolujeme, zda se lisi soubory gen-merge.registry a gen-merge.finished. Pokud ano (a posledni job dane sady hlasi stav "FATAL ERROR"), pak onu radku, ktera v souboru gen-merge.registry prebyva, smazeme. To by melo potize s touto sadou odstranit.






Co delat, kdyz simulace bezi

    Spustenim simulacniho retezce, tedy spustenim skriptu mc_submitmain prace administratora simulaci nekonci, naopak prakticky zacina. Nyni je treba kontrolovat beh simulaci a dohlizet na jejich hladky beh a resit pripadne nastale potize. Ihned po spusteni simulaci je treba se ujistit, ze vse bezi v poradku, konkretne se musi zkontrolovat :
  • vystupni soubor ze skriptu mc_submitmain, zda neobsahuje nejake chybove hlasky
  • zda na vypisu z monitorovaciho skriptu jobsmonitor.php maji joby spravny status
  • soubory s vystupem ze skriptu mc_submitseq, zda se prislusne joby bez problemu spustily

    Pokud se joby uspesne rozbehly, mel by se jejich stav pravidelne kontrolovat. Kontroly by se mely provadet alespon 1x za 1-2 hodiny, aby nedochazelo ke zbytecnym zdrzenim. Behem kontrol by se melo delat nasledujici :



    Last update : Karel Soustruznik, 21st April 2004