deadlock with fuse_lowlevel_notify_inval_inode

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

deadlock with fuse_lowlevel_notify_inval_inode

John Salmon
I tried to invalidate the cached data associated with an inode
by calling fuse_lowlevel_notify_inval_inode while
in the read() callback for the same ino.

My fuse process appears to have deadlocked.  After kill -9, it's in a 'Zl+' <defunct>
state according to ps.

The docs (doxygen comments in 2.9.4) don't mention a deadlock possibility
for ..._inval_inode, but they do for ..._inval_entry.  Is it ok to call ..._inval_inode
from a filesystem function, or does that also risk deadlock?

Thanks
John Salmon

--
.

------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
--
fuse-devel mailing list
To unsubscribe or subscribe, visit https://lists.sourceforge.net/lists/listinfo/fuse-devel
Reply | Threaded
Open this post in threaded view
|

Re: deadlock with fuse_lowlevel_notify_inval_inode

Miklos Szeredi
On Tue, Apr 19, 2016 at 3:56 PM, John Salmon
<[hidden email]> wrote:

> I tried to invalidate the cached data associated with an inode
> by calling fuse_lowlevel_notify_inval_inode while
> in the read() callback for the same ino.
>
> My fuse process appears to have deadlocked.  After kill -9, it's in a 'Zl+'
> <defunct>
> state according to ps.
>
> The docs (doxygen comments in 2.9.4) don't mention a deadlock possibility
> for ..._inval_inode, but they do for ..._inval_entry.  Is it ok to call
> ..._inval_inode
> from a filesystem function, or does that also risk deadlock?

inval_inode from read() will deadlock on lock_page().

Thanks,
Miklos

------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
--
fuse-devel mailing list
To unsubscribe or subscribe, visit https://lists.sourceforge.net/lists/listinfo/fuse-devel
Reply | Threaded
Open this post in threaded view
|

Re: deadlock with fuse_lowlevel_notify_inval_inode

John Salmon

On 05/02/2016 06:31 AM, Miklos Szeredi wrote:

inval_inode from read() will deadlock on lock_page().

Thanks.  That's what I suspected.

I suggest putting a note in the docs, analogous to the one
in inval_entry().

John


Thanks,
Miklos

--
.

------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
--
fuse-devel mailing list
To unsubscribe or subscribe, visit https://lists.sourceforge.net/lists/listinfo/fuse-devel
Reply | Threaded
Open this post in threaded view
|

Re: deadlock with fuse_lowlevel_notify_inval_inode

Nikolaus Rath
On May 02 2016, John Salmon <[hidden email]> wrote:
6> On 05/02/2016 06:31 AM, Miklos Szeredi wrote:
>>
>> inval_inode from read() will deadlock on lock_page().
>
> Thanks.  That's what I suspected.
>
> I suggest putting a note in the docs, analogous to the one
> in inval_entry().

Could you open an issue in the tracker, or (preferredly) open a pull
request?

https://github.com/libfuse/libfuse


Thanks,
-Nikolaus

--
GPG encrypted emails preferred. Key id: 0xD113FCAC3C4E599F
Fingerprint: ED31 791B 2C5C 1613 AF38 8B8A D113 FCAC 3C4E 599F

             »Time flies like an arrow, fruit flies like a Banana.«

------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
--
fuse-devel mailing list
To unsubscribe or subscribe, visit https://lists.sourceforge.net/lists/listinfo/fuse-devel