Advisory lock crashes.

Alfred Perlstein alfred at ixsystems.com
Tue Feb 19 07:08:36 UTC 2013


Hello Konstantin & Doug,

We're getting a few crashes in what looks to be kern_lockf.c:

fault address here is 0x360 which appears to mean that the "sx" owner 
thread is NULL

db>  bt
Tracing pid 5099 tid 101614 td 0xfffffe005d54e8c0
_sx_xlock_hard() at _sx_xlock_hard+0xb3
lf_advlockasync() at lf_advlockasync+0x5d7
lf_advlock() at lf_advlock+0x47
vop_stdadvlock() at vop_stdadvlock+0xb3
VOP_ADVLOCK_APV() at VOP_ADVLOCK_APV+0x4a
closef() at closef+0x352
kern_close() at kern_close+0x172
amd64_syscall() at amd64_syscall+0x58a
Xfast_syscall() at Xfast_syscall+0xf7
--- syscall (6, FreeBSD ELF64, sys_close), rip = 0x8011651fc, rsp = 0x7fffffbfdd58, rbp = 0x807c3d6c0 ---

(kgdb) list *(_sx_xlock_hard+0xb3)
0xffffffff806242c3 is in _sx_xlock_hard 
(/usr/home/jpaetzel/9.0.6-RELEASE-p1/FreeBSD/src/sys/kern/kern_sx.c:514).
509                     x = sx->sx_lock;
510                     if ((sx->lock_object.lo_flags & SX_NOADAPTIVE) 
== 0) {
511                             if ((x & SX_LOCK_SHARED) == 0) {
512                                     x = SX_OWNER(x);
513                                     owner = (struct thread *)x;
514                                     if (TD_IS_RUNNING(owner)) {
515                                             if 
(LOCK_LOG_TEST(&sx->lock_object, 0))
516 CTR3(KTR_LOCK,
517                                                 "%s: spinning on %p 
held by %p",
518 __func__, sx, owner);


Another panic here, which we have less information is attached as an image.

We're looking at using some INVARIANTS and WITNESS kernels, but was 
wondering if y'all had any other suggestions to use please?

thank you,
-Alfred


More information about the freebsd-fs mailing list