Bug 890794 - reproducible fuse deadlock
Summary: reproducible fuse deadlock
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: fuse
Version: 18
Hardware: x86_64
OS: Linux
unspecified
unspecified
Target Milestone: ---
Assignee: Peter Lemenkov
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-12-30 05:04 UTC by Andrei Gaponenko
Modified: 2014-02-05 14:15 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-02-05 14:15:54 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Andrei Gaponenko 2012-12-30 05:04:27 UTC
Hello,

A userspace program triggers what seems to be a fuse deadlock: the
process goes into an interruptible sleep, and the fuse filesystem it
mounts can not be unmounted with the usual "fusermount -u".  At the
end of this message I pasted a kernel backtrace, which is printed out
on a system suspend attempt in this state.

This is with Linux 3.6.10-2.fc16.x86_64 and fuse-2.8.7-2.fc16.x86_64.

The steps to reproduce the problem

1) Install the tup build tool - that's the application that uses fuse.
(http://gittup.org/tup/). This only takes a few minutes
One needs the specific version shown below:

git clone git://github.com/gittup/tup.git 
cd tup
git checkout 904dee985a2a4f7e8db1721bf71af0a6ac1f33f9
./bootstrap.sh

Add the tup directory to your PATH

2) Create a malformed project and run tup:

cd /somewhere
mkdir newdir
cd newdir
echo ': foreach foo.c |> gcc -c %f -o %o |> %o' > Tupfile
touch foo.c
tup init
tup upd

The last command hangs.

There is a thread about this at
https://groups.google.com/forum/?fromgroups#!forum/tup-users

Andrei

================================================================

kernel: [ 3393.523720] PM: Syncing filesystems ... done.
kernel: [ 3393.599522] Freezing user space processes ... 
kernel: [ 3413.563965] Freezing of tasks failed after 20.00 seconds (1 tasks refusing to freeze, wq_busy=0):
kernel: [ 3413.563994] tup             D ffffffff81808a60     0  4701      1 0x00000086
kernel: [ 3413.563998]  ffff8800369d1b48 0000000000000046 ffff8800ca436860 ffff8800ca436940
kernel: [ 3413.564002]  ffff88020e19ae40 ffff8800369d1fd8 ffff8800369d1fd8 ffff8800369d1fd8
kernel: [ 3413.564004]  ffff8802129e8000 ffff88020e19ae40 ffff88020e19ae40 ffff8800ca436860
kernel: [ 3413.564007] Call Trace:
kernel: [ 3413.564014]  [<ffffffff81618f79>] schedule+0x29/0x70
kernel: [ 3413.564020]  [<ffffffffa06fb685>] fuse_request_send+0xe5/0x2b0 [fuse]
kernel: [ 3413.564024]  [<ffffffff81080af0>] ? remove_wait_queue+0x50/0x50
kernel: [ 3413.564027]  [<ffffffffa07039c4>] fuse_flush+0xf4/0x130 [fuse]
kernel: [ 3413.564031]  [<ffffffff8118c1cf>] filp_close+0x3f/0x90
kernel: [ 3413.564035]  [<ffffffff81061eea>] put_files_struct+0x8a/0xf0
kernel: [ 3413.564037]  [<ffffffff81061ffb>] exit_files+0x4b/0x60
kernel: [ 3413.564040]  [<ffffffff810624c0>] do_exit+0x180/0x8d0
kernel: [ 3413.564042]  [<ffffffff81062f62>] do_group_exit+0x42/0xa0
kernel: [ 3413.564046]  [<ffffffff81071c33>] get_signal_to_deliver+0x233/0x620
kernel: [ 3413.564050]  [<ffffffff8101428c>] do_signal+0x3c/0x620
kernel: [ 3413.564053]  [<ffffffff8161de9a>] ? do_page_fault+0x4ea/0x4f0
kernel: [ 3413.564057]  [<ffffffff8160f8e0>] ? printk+0x61/0x63
kernel: [ 3413.564060]  [<ffffffff8119e0a1>] ? user_path_at+0x11/0x20
kernel: [ 3413.564063]  [<ffffffff81192bca>] ? vfs_fstatat+0x3a/0x70
kernel: [ 3413.564065]  [<ffffffff81014920>] do_notify_resume+0x90/0xd0
kernel: [ 3413.564068]  [<ffffffff8161a42c>] retint_signal+0x48/0x8c
kernel: [ 3413.564074] 

================================================================

Comment 1 Tom "spot" Callaway 2012-12-30 05:42:53 UTC
Hm. You really ought to file this upstream with fuse. I'd be happy to apply any patches they generate for this issue (although, Fedora 16 probably won't get it), but I'm not qualified to go digging into the fuse kernel code.

Comment 2 Andrei Gaponenko 2012-12-31 01:07:54 UTC
Hi,

The same recipe as in the original posting also deadlocks Fedora 18 (beta).

Linux 3.6.11-3.fc18.x86_64
fuse 2.9.2-1.fc18

Note that fuse 2.9.2 should contain

commit 66956b6f7a254517332fe6e1fa3efab1676e6239
Author: Miklos Szeredi <mszeredi>
Date:   Mon Oct 1 17:55:55 2012 +0200

    Fix deadlock in libfuse

Apparently I am hitting a different problem.

I'll report this upstream.  Updating Fedora version of this bug to 18.

Andrei

Comment 3 Fedora End Of Life 2013-12-21 10:07:21 UTC
This message is a reminder that Fedora 18 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 18. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as WONTFIX if it remains open with a Fedora 
'version' of '18'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version prior to Fedora 18's end of life.

Thank you for reporting this issue and we are sorry that we may not be 
able to fix it before Fedora 18 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior to Fedora 18's end of life.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 4 Fedora End Of Life 2014-02-05 14:15:59 UTC
Fedora 18 changed to end-of-life (EOL) status on 2014-01-14. Fedora 18 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.


Note You need to log in before you can comment on or make changes to this bug.