[unionfs] deadlocking a 9-STABLE machine with two unionfs mounts onto the same mountpoint

Andre Albsmeier andre at fbsd.ata.myota.org
Mon Feb 9 14:23:26 UTC 2015


Retrying here as -fs didn't show up any results...

----- Forwarded message -----

I can reliably deadlock a 9.3-STABLE by the following procedure:

Let's assume that /tmp is a standard swap-backed file system
already. First let's set up what we need:

mkdir /tmp/1 /tmp/2
mount -v -t unionfs /tmp/1 /usr/local
mount -v -t unionfs /tmp/2 /usr/local

No let's lock the system:

mkdir /tmp/2/bla
while :; do
  echo go
  tar -cC /usr/src/etc -f - . | tar -xpC /tmp/2/bla -f -
done

It survives about 3 or 4 rounds, sometimes more, sometimes
only 2. It is important to use tar to copy the stuff. If
we replace the tar line by e.g.

cp -pR /usr/src/etc/* /tmp/2/bla

things are all well.

The system doesn't lock up entirely, you can move the mouse
and ping it but no fs access is possible anymore. One can
switch to the console and enter the debugger but a reboot
with ctrl-alt-del doesn't work...

The interesting part is that all this worked pretty well on
9-STABLE until approx. 2 months ago. But nothing had been
committed to unionfs for a long time so I really have no
idea what's going on.

It also reminds us of

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=161511

but this stuff had been merged to 9-STABLE already...

Anything I can do to get this fixed?

----- End forwarded message -----


More information about the freebsd-hackers mailing list