Kde se bere SIGKILL?
Jan Kasprzak
kas na fi.muni.cz
Čtvrtek Září 23 09:49:44 CEST 2021
Zdravim,
TL;DR: jak zjistim, kdo memu procesu zasila SIGKILL?
Podrobneji:
CentOS 7, Apache, mod_perl a /usr/bin/zip ktery komprimuje lokalni podstrom
a posila na vystup do roury do Apache, ktery to pak bali do TLS a posila
klientovi.
Kdyz to testuju na velkem stromu a lokalni siti, tak to funguje.
Pri vzdalenem pristupu po nekolika desitkach minut (ano, spatne se to testuje)
dostane /usr/bin/zip signal SIGKILL a skonci. A ted je otazka, kde se ten
SIGKILL bere. Pomoci bpftrace je videt, ze ten proces postupne prochazi pres
retint_signal -> do_notify_resume -> do_signal -> get_signal_to_deliver
->do_exit
Ale na kprobe:do_send_sig_info neni videt, ze by ten SIGKILL nekdo zasilal.
Cili to musi byt jedno z nemaleho poctu mist, kde se SIGKILL generuje interne
v kernelu. Nektere ty pripady jde vyloucit rovnou, protoze je kolem nich
nejaky printk(), a ja v dmesg nic podezreleho nevidim.
Mate nejaky tip kde hledat, aniz bych musel projit vsechny vyskyty
slova SIGKILL ve zdrojich kernelu?
Diky,
-Y.
--
| Jan "Yenya" Kasprzak <kas at {fi.muni.cz - work | yenya.net - private}> |
| http://www.fi.muni.cz/~kas/ GPG: 4096R/A45477D5 |
We all agree on the necessity of compromise. We just can't agree on
when it's necessary to compromise. --Larry Wall
Další informace o konferenci Linux