ZFS freeze/livelock

Borja Marcos borjam at sarenet.es
Wed Oct 13 11:40:20 UTC 2010


On Oct 10, 2010, at 5:34 PM, Willem Jan Withagen wrote:

> Hi,
> 
> Just had my FreeBSD freeze on me with what I would think is sort of an livelock....
> 
> While I was receiving zfs snapshots on my data pool.
> 
> Top and systat just kept running,
> but anything getting near a shell (and perhaps disk-io) ended up in:
> 
> root at zfs.digiware.nl# gpart create -s gpt da6
> load: 0.00  cmd: csh 12393 [zfsvfs->z_teardown_inactive_lock] 26.12r 0.00u 0.00s 0% 2480k
> load: 0.10  cmd: csh 12393 [zfsvfs->z_teardown_inactive_lock] 96.01r 0.00u 0.00s 0% 2480k
> 
> Trying to execute to execute shutdown -r now had no effect what so ever.
> Neither did the three-finger salute.
> (Well at least not in 60 sec I was willing to wait.)
> 
> Only way out of this situation was hard-reset. And I do have to admit I like ZFS for the speed it recovers after unexpected reboot.
> 
> To bad there was no alt-ctrl-backspace escape to debugger compiled in. I'll do that with the next kernel, just in case.


There is an (as far as I know) unsolved deadlock situation when receiving a snapshot while you read the target dataset.

I found it  in a redundant server configuration. I replicate some datasets periodically doing an incremental send-receive. It works perfectly but it can deadlock if I have a process reading the destination dataset on the secondary server. And those things can happen if you have, for example, one of the nightly periodic tasks running. 

Were you doing a siimilar thing? Or are you sure there was no reading activity on the destination dataset?





Borja.



More information about the freebsd-fs mailing list