Bug 1184762

Summary: fuse test deadlocks on Rawhide
Product: [Community] Virtualization Tools Reporter: Richard W.M. Jones <rjones>
Component: libguestfsAssignee: Richard W.M. Jones <rjones>
Status: CLOSED INSUFFICIENT_DATA QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: mbooth, ptoscano, rbalakri
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-05-12 10:41:53 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Richard W.M. Jones 2015-01-22 09:07:07 UTC
Description of problem:

$ cd fuse/
$ ../run ./test-fuse
[...]
12: checking truncate
libguestfs: error: lstatns: /truncated: No such file or directory
13: checking utimes
libguestfs: error: lstatns: /timestamp: No such file or directory
14: checking utimens
15: checking writes
libguestfs: error: lstatns: /new.txt: No such file or directory
16: checking POSIX ACL read operation
17: checking extended attribute (xattr) read operation
<--- hangs forever here

With debugging enabled:

$ LIBGUESTFS_DEBUG=1 LIBGUESTFS_TRACE=1 ../run test-fuse
[...]
17: checking extended attribute (xattr) read operation
libguestfs: /tmp/testfuse42lUzr: mount_local_getattr (/user_xattr, 0x7fffab9ba500)
libguestfs: trace: lstatns "/user_xattr"
guestfsd: main_loop: new request, len 0x38
guestfsd: main_loop: proc 422 (lstatns) took 0.00 seconds
libguestfs: trace: lstatns = <struct guestfs_statns *>
libguestfs: /tmp/testfuse42lUzr: mount_local_getxattr (/user_xattr, user.test, 0x1d99250, 128)
libguestfs: trace: lgetxattrs "/user_xattr"
guestfsd: main_loop: new request, len 0x38
guestfsd: main_loop: proc 142 (lgetxattrs) took 0.00 seconds
libguestfs: trace: lgetxattrs = <struct guestfs_xattr_list *>
libguestfs: /tmp/testfuse42lUzr: mount_local_getattr (/, 0x7fffab9ba4d0)
libguestfs: trace: lstatns "/"
guestfsd: main_loop: new request, len 0x30
guestfsd: main_loop: proc 422 (lstatns) took 0.00 seconds
libguestfs: trace: lstatns = <struct guestfs_statns *>
<--- hangs forever here

Version-Release number of selected component (if applicable):

libguestfs 1.29.22
fuse-2.9.3-4.fc22.x86_64

How reproducible:

100%

Steps to Reproduce:
1. See commands above.

Comment 1 Richard W.M. Jones 2015-01-22 10:15:47 UTC
Since this doesn't deadlock on Fedora 21 which has
an identical version of fuse, it might be a kernel
problem.

Failing kernel is: 3.19.0-0.rc4.git4.1.fc22.x86_64

Works on: 3.17.4-302.fc21.x86_64

Comment 2 Richard W.M. Jones 2015-01-22 10:43:47 UTC
It turns out the problem is /sbin/fuser which is hanging
(don't confuse fuse and fuser!)

I have asked upstream to see if they have seen anything like this.

It appears to be a kernel problem, because using an older kernel,
but identical psmisc + fuse, no problem.

Comment 3 Richard W.M. Jones 2015-05-12 10:41:53 UTC
For whatever reason, this bug has "fixed itself" in latest Rawhide,
so closing.