Forum » Programiranje » Docker core dump brez spreminjanja nastavitev gostitelja
Docker core dump brez spreminjanja nastavitev gostitelja
i33a ::
Pozdravljeni,
v Dockerju poganjam aplikacijo za katero bi rad (ko se sesuje) dobil core dump. Stvar je taka, da na hostu nočem (oz. ne morem) spreminjati kam kernel - corre_pattern-a + ta Docker image lahko laufa na več različnih hostih.
Pozna kdo kak pameten način? Recimo, da bi ustvaril volume in pisal core dump tja? Ga skopiral tja preden se Docker ustavi?
Lep pozdrav in hvala za pomoč
v Dockerju poganjam aplikacijo za katero bi rad (ko se sesuje) dobil core dump. Stvar je taka, da na hostu nočem (oz. ne morem) spreminjati kam kernel - corre_pattern-a + ta Docker image lahko laufa na več različnih hostih.
Pozna kdo kak pameten način? Recimo, da bi ustvaril volume in pisal core dump tja? Ga skopiral tja preden se Docker ustavi?
Lep pozdrav in hvala za pomoč
googleg1 ::
Zanimiv problem. Kaj pa ce ulovis signale za crash in potem z gcore generiras coredump in potem exitas ? Ce uporabljas neko zunanjo aplikacijo je to slaba resitev sicer.
Randomness ::
Pač aplikacijo poženeš kot child proces enega pazikuža procesa. Ko se aplikacija sesuje, narediš s core dumpom, kar želiš. Skopiraš na poljubno lokacijo, pošlješ na oddaljeno lokacijo, ...
i33a ::
@googleg1
Hmm.. zanimiv predlog. Bom probal implementirati, vendar mislim da to ni najboljša rešitev. (Aplikacija se mora compileati za Windows, Linux, OSX,...)
@randomness
Odlična ideja! :)
Aplikacijo seveda znam pognati kot child nekega procesa..
Me pa zanima potem kako v tem child procesu ugotoviti kje je core dump (to je odvisno od hosta) in kam ga skopirati?
Hmm.. zanimiv predlog. Bom probal implementirati, vendar mislim da to ni najboljša rešitev. (Aplikacija se mora compileati za Windows, Linux, OSX,...)
@randomness
Odlična ideja! :)
Aplikacijo seveda znam pognati kot child nekega procesa..
Me pa zanima potem kako v tem child procesu ugotoviti kje je core dump (to je odvisno od hosta) in kam ga skopirati?
Randomness ::
Če o hostu ne veš nič (in kontejnerja ne zaganjaš sam), bo malo težje. Lahko se ti tudi zgodi, da je host nastavljen tako, da sploh ne generira core dumpov. Ne poznam natančno dockerja, ampak če iz kontejnerja ne moreš dostopati do lokacije coredump datotek, potem tole ne bo šlo. Drugače pač prilagodiš logiko glede na to, na kakem hostu si.
Kam skopirati coredump? Odvisno. Če imaš mrežno povezavo - kar verjetno imaš -, lahko pošlješ po mreži.
Kam skopirati coredump? Odvisno. Če imaš mrežno povezavo - kar verjetno imaš -, lahko pošlješ po mreži.
googleg1 ::
@googleg1Docker in core dump je aktualen samo na Linux. Ni lazjega kot dodati #ifdef bloke za linux v kodo.
Hmm.. zanimiv predlog. Bom probal implementirati, vendar mislim da to ni najboljša rešitev. (Aplikacija se mora compileati za Windows, Linux, OSX,...)
Zgodovina sprememb…
- spremenil: googleg1 ()
techfreak :) ::
Glede na nastavitve host OSa ti zna dumpniti tudi kar v container: https://github.com/moby/moby/issues/117...
Imas opcijo pognat privileged container? Potem lahko spremenis te nastavitve.
Imas opcijo pognat privileged container? Potem lahko spremenis te nastavitve.
Randomness ::
Podobno kot ti je svetoval googleg1, le da ne rabiš spreminjati aplikacije. Aplikacijo startaj tako:
Ko se bo aplikacija sesula, bo coredump nastal v trenutnem direktoriju. Ukaze za gdb lahko seveda prilagodiš po svoje, odvisno od potreb.
gdb -ex r -ex gcore -q --batch --args ./a.out
Ko se bo aplikacija sesula, bo coredump nastal v trenutnem direktoriju. Ukaze za gdb lahko seveda prilagodiš po svoje, odvisno od potreb.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
⊘ | SQL in No-SQL v Dockerju (strani: 1 2 )Oddelek: Programiranje | 8031 (7356) | Mavrik |
» | MSSQL na LinuxuOddelek: Programska oprema | 796 (574) | Iluvatar |
» | Deployanje baze podatkov na več računalnikovOddelek: Programska oprema | 1050 (796) | Lonsarg |
» | [docker] Poganjanje celotne virtual machine v dockerjuOddelek: Operacijski sistemi | 4733 (4157) | c3p0 |
» | Windows Server 2016 je tu z Docker EngineOddelek: Novice / Operacijski sistemi | 16291 (12690) | krneki0001 |