cp from NFS to ZFS hung in "fifoor"

Rick Macklem rmacklem at uoguelph.ca
Sat Nov 28 23:11:00 UTC 2015


Jilles Tjoelker wrote:
> On Sat, Nov 28, 2015 at 10:42:28AM -0500, Mikhail T. wrote:
> > I was copying /home from an old server (narawntapu) to a new one
> > (aldan). The narawntapu:/home is mounted on aldan as /mnt with flags
> > ro,intr. On narawntapu /home was simply located on an SSD, but on aldan
> > I created a ZFS filesystem for it.
> 
> > The copying was started thus:
> 
> >     root at aldan:/home (435) cp -Rpn /mnt/* .
> 
> > for a while this was proceeding at a decent clip with cp making
> > newnfsreq-uests:
> 
> >     load: 0.78  cmd: cp 38711 [newnfsreq] 802.84r 1.57u 140.63s 20% 10768k
> >     /mnt/mi/.kde/share/apps/kmail/dimap/.42838394.directory/sent/cur/1219621413.32392.hd8cl:2,S
> >     ->
> >     ./mi/.kde/share/apps/kmail/dimap/.42838394.directory/sent/cur/1219621413.32392.hd8cl:2,S
> >     100%
> >     load: 1.23  cmd: cp 38711 [newnfsreq] 874.19r 1.66u 154.74s 17% 4576k
> >     /mnt/mi/.kde/share/apps/kmail/dimap/.42838394.directory/ML/cur/1219595347.32392.rMDFf:2,S
> >     ->
> >     ./mi/.kde/share/apps/kmail/dimap/.42838394.directory/ML/cur/1219595347.32392.rMDFf:2,S
> >     100%
> 
> > ZFS on the destination compressing and writing stuff out and the traffic
> > between the two ranging from 30 to 50Mb/s (according to systat), but
> > then something happened and the cp-process is now hung:
> 
> >     load: 0.55  cmd: cp 38711 [fifoor] 1107.67r 2.09u 194.12s 0% 3300k
> >     load: 0.50  cmd: cp 38711 [fifoor] 1112.66r 2.09u 194.12s 0% 3300k
> >     load: 0.22  cmd: cp 38711 [fifoor] 1642.37r 2.09u 194.12s 0% 3300k
> 
> This normally means that the process is opening a fifo for reading and
> is waiting for a writer. Although cp -R will normally copy a fifo by
> calling mkfifo at the destination, it may open one if a regular file is
> replaced with a fifo between the time it reads the directory and it
> copies that file. This is not that unlikely if large directory trees are
> copied during that time.
> 
Oops, thanks. I didn't know that [fifoor] in these lines meant that was what
the WCHAN is. Obviously, you should now ignore everything I said;-)

rick

> On the other hand, cp without -R/-r/-l/-s will always open a fifo.
> 
> You can make cp continue by opening the fifo (which you'll need to find
> first, for example by checking what has been copied already) for
> writing, like : >/path/to/some/fifo. It will be replaced with an empty
> file at the destination.
> 
> --
> Jilles Tjoelker
> _______________________________________________
> freebsd-stable at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
> 


More information about the freebsd-stable mailing list