panic "Sleeping thread owns a non-sleepable lock" via
cv_timedwait_signal, was "rsync over NFS"
John Baldwin
jhb at freebsd.org
Tue Oct 2 21:23:03 UTC 2012
On Tuesday, October 02, 2012 2:19:35 pm Norbert Aschendorff wrote:
> Well...
>
> Here the results for a kernel without WITNESS_SKIPSPIN (I'll compile one
> including that tomorrow, but until then...)
>
> Good news is: The kernel crashed with activated WITNESS.
> Bad news is: I have to turn power off after the crash with WITNESS. The
> crash dump is _not_ written to disk :(
>
> Good news II is: It wrote something to the syslog. Actually, it wrote
> very much to the syslog, some megabytes in total. Most of it is the
> same, here the latest messages logfile:
> http://lbo.spheniscida.de/Files/nfs-crash.log (94K)
>
> It specifies the file, line and zone. Maybe it's useful...
That does help. It tells us that the lock being held is a vnode interlock
that was last acquired in vinactive().
I don't see how though, unless the lock was recursively acquired elsewhere.
You could try adding a different WITNESS check (using WITNESS_WARN) to see
which NFS proc returns with a lock held so you can catch this when it first
occurs rather than much later after the fact. Do you have the start of the
log messages?
--
John Baldwin
More information about the freebsd-stable
mailing list