systemd - újabb FLOSS sikertörténet
Van egy jó ötlet az OSX-ben? Koppintsuk le! (azaz innováljunk free/open software szellemben).
A végeredmény borítékolható: a fő funkciók csak hellyel/közzel működnek. Elkezd burjánzani mint a rák. Már minden faszsághoz ez kell, és ez is mindent átsző, és 99999 felesleges featureje van, de a fő funkcióit képtelen ellátni rendesen.
Leszögezem, hogy a launchd/upstart/Windows SCM vagy akár a systemd (lopott) alapkoncepciója szerintem nem rossz. Feltéve presze, hogy a kivitelezés sem lesz rossz. Ha azonban Lennart Poettering fejleszt valamit, akkor ott sok jóra nem lehet számítani.
A továbbiak elolvasásához aláfestésként javaslom a következő “klasszikus" dal elindítását:
A systemd sajnos szánalmasan megbukott. Szokásos C-ben taknyolt, alultesztelt FLOSS szar. (pedig Business Critical szolgáltatást nyújt). A C-ben fejlesztett (FLOSS) szoftverek tipikus rákfenéjét is hordozza: könnyen korruptálódik az állapot egy programozói hibától. A systemd ezután tovább fut, ahelyett, hogy fail-fast szemlélettel a minimális károkozás reményében gyorsan leállna, és újraindulna a rendszer. Persze, méghogy "kékhalál” vagy “Uncaught Exception” Linuxxon!
2015-02-22T04:57:27.480367+01:00 machine kernel: [119445.546580] systemd[1]: segfault at 40 ip 0000000000463b15 sp 00007fff44bf4420 error 4 in systemd[400000+ed000]
2015-02-22T04:57:27.700746+01:00 machine systemd[1]: Caught <SEGV>, dumped core as pid 9237.
2015-02-22T04:57:27.701457+01:00 machine systemd[1]: Freezing execution.
Mi is történt itt?
A kínaiak persze próbálnak beloginonli password authhal, ami tiltva van, de az sshd amikor fogadja a csatlakozásukat (amit elutasít), spawnol egy child processt, amit megörököl az init, majd ez a login után elhal, amit a systemd (init) dolga (lenne) eltakarítani (az exit status info kiolvasásával).
Végeredmény: belassult gép, millió zombie orphan ssh process nem eltakarítva.
# ps axj
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
[...]
1 9358 9357 9357 ? -1 Z 498 0:00 [sshd] <defunct>
1 9363 9362 9362 ? -1 Z 498 0:00 [sshd] <defunct>
1 9368 9367 9367 ? -1 Z 498 0:00 [sshd] <defunct>
1 9373 9372 9372 ? -1 Z 498 0:00 [sshd] <defunct>
1 9378 9377 9377 ? -1 Z 498 0:00 [sshd] <defunct>
1 9383 9382 9382 ? -1 Z 498 0:00 [sshd] <defunct>
1 9388 9387 9387 ? -1 Z 498 0:00 [sshd] <defunct>
1 9393 9392 9392 ? -1 Z 498 0:00 [sshd] <defunct>
1 9398 9397 9397 ? -1 Z 498 0:00 [sshd] <defunct>
[...]
#Mit csinál jómukásember? Amit a systemd-nek magától is kellett volna: rebootol egyet, fail fast szellemben… Azaz rebootolna, ha tudna, mivel azt is a systemd intézni :).
sudo /sbin/shutdown -r now
Failed to open /dev/initctl: No such device or address
Failed to talk to init daemon.Ilyenkor persze mindig kéznél van egy kis “Magic SysReq” (aminek már a neve mutatja mekkora ordas tákolás az egész, hogy ez szemelőtt van és a napi eszköztár része)
echo 1 > /proc/sys/kernel/sysrq
echo s > /proc/sysrq-triggerecho b > /proc/sysrq-triggerEnterprise. Linux. Minőség.
Oké, vannak, akik nem örülnének, ha a futó rendzser alól kidőlne a systemd, és rebootolna. Akár ez a freezes megoldás is jó lenne a korruptálódás terjedésének megállítására, ha a systemd jól lenne megírva. Kis, hibatűrű komponensekből állna. A legkritikusabbak olyan szinten tesztelve és auditálva lennének, hogy közel hibamentesnek tekinthetőek lennének, a többi pedig failfast, respawn módszerrel működne. Az oprendszer a processzek legyakásánál biztosítaná a korruptálódott állapot megszüntetését, és a processek izolációja meggátolná a hibaterjedést. De legyen monolitkus nagy böszme cucc, mert csak… Köszönjük Lennart. Sikerült olyan problémát létrehoznod, ami eddig nem létezett, és a korábban létező problémákat sem oldottad meg, hisz most egy rendes működő init implementáció sincs a rendszeren…
Ha valahol tárgyi tévedést vétettem, akkor ki lehet javítani, de a kurva anyját annak, aki a gyűlöletembe beleszól.
Notes
szalacsi reblogged this from kodfodrasz and added:linuxos gyoparok ezt tudjak igy 2015ben, remelem a google kikurja vegre a linuxot az adatkozpontokbol es akkor be is...
dissociety liked this
vrgtms liked this
kodfodrasz posted this
