OpenBSD kernel összeomlások debugolása

Címkék

Sokan megrémülnek amikor a rendszerük elpánikol és a sírógörcs határára kerülnek. Nincs mitől megijedni, előfordulhat, hogy csak egy typo miatt pánikol a kernelük.

Hozzászólások

IMHO egy átlag felhasználó nem tud és nem is akar ilyen problémákkal foglalkozni.

Linuxra nincs valami hasonlo doksi?

Ok, akkor lássuk ezt a gyakorlatban... ;)

Ez az eset nem mesterségesen lett előidézve, hanem az összes jelenleg "támogatott" OpenBSD verziót érinti az alábbi kernel bug:



# mkdir -p /proba/bin

# mount_union /bin /proba/bin

# chroot /proba /bin/sh

/bin/sh: No controlling tty (open /dev/tty: No such file or directory)

/bin/sh: warning: won't have full job control

# ls -l

total 4

drwxr-xr-x 2 0 0 1024 Sep 17 18:02 bin

# ls -l

total 4

drwxr-xr-x 2 0 0 1024 Sep 17 18:02 bin

panic: lockmgr: pid 16941, not exclusive lock holder 24433 unlocking

Stopped at Debugger+0x4: leave

RUN AT LEAST 'trace' AND 'ps' AND INCLUDE OUTPUT WHEN REPORTING THIS PANIC!

DO NOT EVEN BOTHER REPORTING THIS WITHOUT INCLUDING THAT INFORMATION!

ddb> trace

Debugger(d2a210b0,6,6,3dd0802,d685ada4) at Debugger+0x4

panic(d04b4700,422d,5f71,0,d2a22970) at panic+0x87

lockmgr(d2a210b0,6,d2a229f0,d2a74e1c,0) at lockmgr+0x82e

ufs_unlock(d685ad90,3,d081e498,27,d08f4300) at ufs_unlock+0x2b

VOP_UNLOCK(d2a22970,0,d2a74e1c,d021e148) at VOP_UNLOCK+0x35

union_unlock(d685ae00,d685af80,0,0d2a205a0) at union_unlock+0x91

VOP_UNLOCK(d2a205a0,0,d2a74e1c,d2a74e1c,0,d2a205a0) at union_inactive+0x6b

VOP_INACTIVE(d2a205a0,d2a74e1c,d685aea0,d01edbf0,d2a74004) at VOP_INACTIVE+0x2e

vrele(d2a205a0,ffffffff,f4240,0) at vrele+0x9d

proc_zap(d2a74004,d2a74004,d685af20,d01dde92,d6859378) at proc_zap+0xaf

sys_wait4(d2a74e1c,d685af80,d685af74,55,280) at sys_wait4+0x1a7

syscall() at syscall+0x21d

--- syscall (number 7) ---

0x1c03c065:



...

Nos, akkor hol a hiba és hogyan lehet azt kijavítani? ;)

thuglife?

pedro? tedu? art? millert? theo? god?


Azért elárulom a poént is... a megoldás az OpenBSD csapat részéről az alábbi volt a currentben: disable the layer filesystems by default [www.openbsd.org].

Javítani ugyan nem javította senki sem a hibát, egyszerűbb volt a GENERIC kernelből kiszedni a nullfs/unionfs/umapfs támogatást, hogy nyugodtan mondhassák "Union filesystem is unsupported". Köszi srácok! ;)

Igen.

Linus nyílván nem használja ezért nemis tud róla és nemis fogja fixelni.

Ez egyébként nemcsak OpenBSD specifikus... SŐT!

FreeBSD freevnodes 4.x -ben már jó egy éve bugos volt, mikor currentben/5.x -ben már fixalva volt.

Szóval developerek nemizgatták magukat, amíg valaki megnem unta, és patchet készíett hozzá...

amit persze - gondolom mert beképzelt parasztok - 2-3 hónap alatt sem sikerült commitolniuk...

KJ.

Linus nyílván nem használja

Mármint Theo?

Nem tudom, hogy használja-e, de ő volt az, aki a szokásos rövid nyers válaszában kijelentette, hogy "union filesystem is unsupported". Kérdem én, akkor mi az ami supported? Mert az unionfs/nullfs a jelenleg "szupportált" releasekben jelen van...