[Bugs] [Bug 1378550] Moving multiple temporary files to the same destination concurrently causes ESTALE error

bugzilla at redhat.com bugzilla at redhat.com
Sat Apr 22 07:28:45 UTC 2017


https://bugzilla.redhat.com/show_bug.cgi?id=1378550



--- Comment #4 from Raghavendra G <rgowdapp at redhat.com> ---
As Pranith explained, it's a bug in dht_rename code. The fact that dht_rename
expects a lock to be successful on "dst" in "mv src dst" is not posix
compliant. 

<man 2 rename>
       ENOENT The link named by oldpath does not exist; or, a directory
component in newpath does not exist; or, oldpath or newpath is an empty string.
</man>

It should ignore ESTALE/ENOENT errors while trying to acquire lock on "dst"
inode. The issue is that "dst" exists when a lookup happened, but it got
deleted by the time a rename fop hits dht. Dht, relying on the information it
got in lookup sends a lock on "dst" which fails with ESTALE. As mentioned in
the bz, exploring using entrylk instead of inodelk is one option. I'll get back
to you on this. Sorry about the delay.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
Unsubscribe from this bug https://bugzilla.redhat.com/token.cgi?t=gvTtODS6pp&a=cc_unsubscribe


More information about the Bugs mailing list