fuse lib forget node cores

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

fuse lib forget node cores

Rahul Shah
Hi,

I am hitting an issue similar to where the forget_node asserts on 
assert(node->nlookup >= nlookup)

I use "remember" option to 3 days. 

Was there any fix/patch for this issue? I am using 2.9.3

Thanks,
Rahul 

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
--
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
|  
Report Content as Inappropriate

Re: fuse lib forget node cores

Nikolaus Rath
On Feb 28 2017, Rahul Shah <[hidden email]> wrote:

> Hi,
>
> I am hitting an issue similar to where the forget_node asserts on
>
> assert(node->nlookup >= nlookup)
>
> https://sourceforge.net/p/fuse/mailman/message/19717137/
>
> I use "remember" option to 3 days.
>
> Was there any fix/patch for this issue? I am using 2.9.3

I don't think so, no. If you could create a testcase to reproduce the
problem and report an issue at
https://github.com/libfuse/libfuse/issues, that'd be great.

(I'm assuming this is distinct from
https://github.com/libfuse/libfuse/issues/128)

Best,
-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.«

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
--
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
|  
Report Content as Inappropriate

Re: fuse lib forget node cores

Rahul Shah
Hi Nikolaus,

Thanks for the reply. 

We bumped into this issue few days back. Unfortunately we are not able to reproduce this but we will keep trying it. I am sure its one of those timing issues.

What we are doing is create hard links /d1/a -> /d1/b  and /d1/a -> /d2/b
Read all the hard links and delete all the files and dirs (d1 and d2) which resulted in fuse seg fault inside forget_node() 
During delete phase we see the fuse credumps.

Thanks!
Rahul


On Tue, Feb 28, 2017 at 2:34 PM, Nikolaus Rath <[hidden email]> wrote:
On Feb 28 2017, Rahul Shah <[hidden email]> wrote:
> Hi,
>
> I am hitting an issue similar to where the forget_node asserts on
>
> assert(node->nlookup >= nlookup)
>
> https://sourceforge.net/p/fuse/mailman/message/19717137/
>
> I use "remember" option to 3 days.
>
> Was there any fix/patch for this issue? I am using 2.9.3

I don't think so, no. If you could create a testcase to reproduce the
problem and report an issue at
https://github.com/libfuse/libfuse/issues, that'd be great.

(I'm assuming this is distinct from
https://github.com/libfuse/libfuse/issues/128)

Best,
-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.«

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
--
fuse-devel mailing list
To unsubscribe or subscribe, visit https://lists.sourceforge.net/lists/listinfo/fuse-devel


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
--
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
|  
Report Content as Inappropriate

Re: fuse lib forget node cores

Rahul Shah
I have managed to reproduce this issue. 


mount fuse with these options "-odefault_permissions,use_ino, allow_other, nonempty, big_writes, remember=300000"

mkdir /d1/
mkdir /d2/
touch /d1/f1
ln /d1/f1 /d2/linkfile
rm -rf /d1
rm -rf /d2

This generates the core dump

Thanks

On Tue, Feb 28, 2017 at 2:48 PM, Rahul Shah <[hidden email]> wrote:
Hi Nikolaus,

Thanks for the reply. 

We bumped into this issue few days back. Unfortunately we are not able to reproduce this but we will keep trying it. I am sure its one of those timing issues.

What we are doing is create hard links /d1/a -> /d1/b  and /d1/a -> /d2/b
Read all the hard links and delete all the files and dirs (d1 and d2) which resulted in fuse seg fault inside forget_node() 
During delete phase we see the fuse credumps.

Thanks!
Rahul


On Tue, Feb 28, 2017 at 2:34 PM, Nikolaus Rath <[hidden email]> wrote:
On Feb 28 2017, Rahul Shah <[hidden email]> wrote:
> Hi,
>
> I am hitting an issue similar to where the forget_node asserts on
>
> assert(node->nlookup >= nlookup)
>
> https://sourceforge.net/p/fuse/mailman/message/19717137/
>
> I use "remember" option to 3 days.
>
> Was there any fix/patch for this issue? I am using 2.9.3

I don't think so, no. If you could create a testcase to reproduce the
problem and report an issue at
https://github.com/libfuse/libfuse/issues, that'd be great.

(I'm assuming this is distinct from
https://github.com/libfuse/libfuse/issues/128)

Best,
-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.«

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
--
fuse-devel mailing list
To unsubscribe or subscribe, visit https://lists.sourceforge.net/lists/listinfo/fuse-devel



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
--
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
|  
Report Content as Inappropriate

Re: fuse lib forget node cores

Nikolaus Rath
On Feb 28 2017, Rahul Shah <[hidden email]> wrote:

> I have managed to reproduce this issue.
>
>
> mount fuse with these options "-odefault_permissions,use_ino, allow_other,
> nonempty, big_writes, remember=300000"
>
> mkdir /d1/
> mkdir /d2/
> touch /d1/f1
> ln /d1/f1 /d2/linkfile
> rm -rf /d1
> rm -rf /d2
>
> This generates the core dump

Please file an https://github.com/libfuse/libfuse/issues, and don't
forget to mention which filesystem you used for this.

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.«

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
--
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
|  
Report Content as Inappropriate

Re: fuse lib forget node cores

Rahul Shah
Hi Nikolaus,

It looks like I have found the reason for the panic. Just wanted to confirm that FUSE is working as expected and this could be a bug in our code.

As I mentioned earlier, the issue is reproducible only when we use "remember" option. Without "remember", fuse does not core.

For the hardlink, we are returning the same nodeid to the fuse library.
Example) If fileA is hardlinked to fileB, when we receive the get_nodeid() request, since there is only one file/inode on the disk, we are returning same nodeid for both fileA and fileB. Once we delete both fileA and fileB, fuse panics on forget_node.
I believe we should return unique nodeid's?  


Thanks,
Rahul 


On Tue, Feb 28, 2017 at 4:09 PM, Nikolaus Rath <[hidden email]> wrote:
On Feb 28 2017, Rahul Shah <[hidden email]> wrote:
> I have managed to reproduce this issue.
>
>
> mount fuse with these options "-odefault_permissions,use_ino, allow_other,
> nonempty, big_writes, remember=300000"
>
> mkdir /d1/
> mkdir /d2/
> touch /d1/f1
> ln /d1/f1 /d2/linkfile
> rm -rf /d1
> rm -rf /d2
>
> This generates the core dump

Please file an https://github.com/libfuse/libfuse/issues, and don't
forget to mention which filesystem you used for this.

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.«

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
--
fuse-devel mailing list
To unsubscribe or subscribe, visit https://lists.sourceforge.net/lists/listinfo/fuse-devel


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
--
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
|  
Report Content as Inappropriate

Re: fuse lib forget node cores

Rahul Shah
Hi Nikolaus,
Can you please confirm the behavior in my previous comment. Should we pass unique nodeid to FUSE for hard links too (even though there is single inode for all hardlinks) or does the FUSE needs special handling for hardlinks?  
Thanks,
Rahul

On Wed, Mar 1, 2017 at 4:09 PM, Rahul Shah <[hidden email]> wrote:
Hi Nikolaus,

It looks like I have found the reason for the panic. Just wanted to confirm that FUSE is working as expected and this could be a bug in our code.

As I mentioned earlier, the issue is reproducible only when we use "remember" option. Without "remember", fuse does not core.

For the hardlink, we are returning the same nodeid to the fuse library.
Example) If fileA is hardlinked to fileB, when we receive the get_nodeid() request, since there is only one file/inode on the disk, we are returning same nodeid for both fileA and fileB. Once we delete both fileA and fileB, fuse panics on forget_node.
I believe we should return unique nodeid's?  


Thanks,
Rahul 


On Tue, Feb 28, 2017 at 4:09 PM, Nikolaus Rath <[hidden email]> wrote:
On Feb 28 2017, Rahul Shah <[hidden email]> wrote:
> I have managed to reproduce this issue.
>
>
> mount fuse with these options "-odefault_permissions,use_ino, allow_other,
> nonempty, big_writes, remember=300000"
>
> mkdir /d1/
> mkdir /d2/
> touch /d1/f1
> ln /d1/f1 /d2/linkfile
> rm -rf /d1
> rm -rf /d2
>
> This generates the core dump

Please file an https://github.com/libfuse/libfuse/issues, and don't
forget to mention which filesystem you used for this.

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.«

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
--
fuse-devel mailing list
To unsubscribe or subscribe, visit https://lists.sourceforge.net/lists/listinfo/fuse-devel



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
--
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
|  
Report Content as Inappropriate

Re: fuse lib forget node cores

Nikolaus Rath
On Mar 02 2017, Rahul Shah <[hidden email]> wrote:
> Hi Nikolaus,
>
> Can you please confirm the behavior in my previous comment. Should we
> pass unique nodeid to FUSE for hard links too (even though there is
> single inode for all hardlinks) or does the FUSE needs special
> handling for hardlinks?

I don't know what you mean. The fuse documentation doesn't mention
"nodeid" anywhere. If you mean inodes: you should report the same inode
for each name of the hardlink (this is what makes it a hardlink). If
this causes assertion failures, then it is a bug in libfuse and I'd ask
you to please file an issue on github.

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.«

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
--
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
|  
Report Content as Inappropriate

Re: fuse lib forget node cores

Rahul Shah
Hi Nikolaus,

I just discovered that we had modified the fuse library and introduced a new fuse operations get_nodeid(). Its our internal implementation so its the bug in our code.

Thanks for your time and please close this thread.

Thanks,
Rahul 

On Fri, Mar 3, 2017 at 3:21 PM, Nikolaus Rath <[hidden email]> wrote:
On Mar 02 2017, Rahul Shah <[hidden email]> wrote:
> Hi Nikolaus,
>
> Can you please confirm the behavior in my previous comment. Should we
> pass unique nodeid to FUSE for hard links too (even though there is
> single inode for all hardlinks) or does the FUSE needs special
> handling for hardlinks?

I don't know what you mean. The fuse documentation doesn't mention
"nodeid" anywhere. If you mean inodes: you should report the same inode
for each name of the hardlink (this is what makes it a hardlink). If
this causes assertion failures, then it is a bug in libfuse and I'd ask
you to please file an issue on github.

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.«

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
--
fuse-devel mailing list
To unsubscribe or subscribe, visit https://lists.sourceforge.net/lists/listinfo/fuse-devel


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
--
fuse-devel mailing list
To unsubscribe or subscribe, visit https://lists.sourceforge.net/lists/listinfo/fuse-devel
Loading...