Come disabilitare i dump di file core nel contenitore finestra mobile


13

Il mio contenitore PHP esegue il burattinaio per generare PDF. Generando un documento PDF, crea anche due file core di dump all'interno del mio contenitore. Non sono sicuro da dove vengano effettivamente.

L'host / server è CentOS 7.

Ho controllato quanto segue:

  1. Nessun registro errori dell'applicazione, Browsershot / puppeteer è in esecuzione senza errori.
  2. Nessun log degli errori (ad es. Segfault) trovato in /var/log/messages

Ho provato a disabilitare i core dump

Seguendo la sezione Disabilita core dump di https://linux-audit.com/understand-and-configure-core-dumps-work-on-linux/ , ho fatto:

  1. Aggiunta del seguente contenuto a /etc/security/limits.conf
* soft core 0
* hard core 0
  1. Creato un disable-core-dumps.sh da: echo “ulimit -c 0 > /dev/null 2>&1” > /etc/profile.d/disable-coredumps.sh

  2. Aggiunto il seguente contenuto a /etc/systemd/coredump.conf

[Coredump]

Storage=none
ProcessSizeMax=0
  1. E riavviare il server e il contenitore .

  2. Ho anche provato a sistemare ulimit -c 0all'interno del container (alpino)

Nessuno dei trucchi sopra funziona per me. Ogni volta che il burattinaio genera un PDF crea sempre due file di dump principali come di seguito:

core.131 core.52

I file core sembrano:

Contenuto del file di dump principale

Qualcuno può aiutarmi a disabilitare i core dump? Molte grazie.


Penso che devi disabilitare il core dump sul tuo Host non sul container o eseguire il tuo container come uno precedente
LinPy

@LinPy Ho già disabilitato il core dump sull'host seguendo linux-audit.com/… . Ho provato a disabilitare core dump su host e container. Nessuno di loro funziona.
Jonathan

Se desideri trovare la causa principale di questi coredump piuttosto che disabilitarli, ti suggerirei di guardare di più al burattinaio. Poiché il burattinaio usa nodejs e il coredump ha moduli / libs nodejs al suo interno, sembra che come un processo nodejs che avesse un errore. Esistono alcune opzioni di debug che possono essere utilizzate come la disabilitazione della modalità senza testa del burattinaio che consente la registrazione dettagliata. Ecco un link per maggiori informazioni: github.com/puppeteer/puppeteer#debugging-tips .
ahasbini,

prova a modificare /etc/security/limits.conf /etc/systemd/coredump.conf insitde container, ad esempio nel file Docker che descrive come costruire l'immagine
Ryabchenko Alexander

@ahasbini la cosa strana è che i PDF sono generati perfettamente. Ho abilitato il debug ma non sono riuscito a trovare nulla di utile. Solo i core dump.
Jonathan,

Risposte:


3

Devi avviare il tuo contenitore con l'opzione --ulimit core=0per disabilitare coredumps.

Riferimento: https://docs.docker.com/engine/reference/commandline/run/#set-ulimits-in-container---ulimit

Esempio

Sull'host, impostare temporaneamente il percorso coredump su /tmpper la verifica:

echo '/tmp/core.%e.%p' | sudo tee /proc/sys/kernel/core_pattern

Avviare un contenitore come al solito e forzare un dump principale:

docker run --rm -it bash
(inside the container)
# yes > /dev/null &
# kill -SIGABRT $(pidof yes)
# ls /tmp
(shows core.yes.<pid>)

Ora, con --ulimit core=0:

docker run --ulimit core=0 --rm -it bash
(inside the container)
# yes > /dev/null &
# kill -SIGABRT $(pidof yes)
# ls /tmp
(No entries)

Grazie per la risposta. Sto usando compose e ho provato ulimit config impostando soft e hard su 0. Ma ancora non funziona. La finestra mobile è eseguita —ulimit core = 0 è uguale all'impostazione dell'ulimit di compose su 0?
Jonathan

Credo che dovrebbe essere aggiunto allo entrypoint.sh, nello stesso comando che avvia l'applicazione php
ahasbini

2

ho questo problema anche sul servizio di sciame di Docker e --ulimit core = 0 non funziona nel servizio di sciame che ho usato sotto il comando e ha funzionato per me nel servizio di sciame di Docker!

sysctl -w kernel.core_pattern = / dev / null


Grazie! Anche questo è un trucco.
Jonathan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.