» »

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č

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?

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.

googleg1 ::

i33a je izjavil:

@googleg1
Hmm.. zanimiv predlog. Bom probal implementirati, vendar mislim da to ni najboljša rešitev. (Aplikacija se mora compileati za Windows, Linux, OSX,...)
Docker in core dump je aktualen samo na Linux. Ni lazjega kot dodati #ifdef bloke za linux v kodo.

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. >:D

Randomness ::

Podobno kot ti je svetoval googleg1, le da ne rabiš spreminjati aplikacije. Aplikacijo startaj tako:
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 ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo

SQL in No-SQL v Dockerju (strani: 1 2 )

Oddelek: Programiranje
538030 (7355) Mavrik
»

MSSQL na Linuxu

Oddelek: Programska oprema
5796 (574) Iluvatar
»

Deployanje baze podatkov na več računalnikov

Oddelek: Programska oprema
91050 (796) Lonsarg
»

[docker] Poganjanje celotne virtual machine v dockerju

Oddelek: Operacijski sistemi
194733 (4157) c3p0
»

Windows Server 2016 je tu z Docker Engine

Oddelek: Novice / Operacijski sistemi
3416291 (12690) krneki0001

Več podobnih tem