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