Bugzilla will be upgraded to version 5.0. The upgrade date is tentatively scheduled for 2 December 2018, pending final testing and feedback.
Bug 1286092 - Duplicate files seen on mount point while trying to create files which are greater than the brick size
Duplicate files seen on mount point while trying to create files which are gr...
Status: CLOSED ERRATA
Product: Red Hat Gluster Storage
Classification: Red Hat
Component: distribute (Show other bugs)
3.1
Unspecified Unspecified
medium Severity urgent
: ---
: RHGS 3.4.0
Assigned To: Raghavendra G
Prasad Desala
dht-brick-full, dht-qe-3.2, dht-3.2.0...
: ZStream
Depends On: 990909 1464350 1471366
Blocks: 1286095 1286134 RHGS-3.4-GSS-proposed-tracker 1503134
  Show dependency treegraph
 
Reported: 2015-11-27 05:45 EST by Susant Kumar Palai
Modified: 2018-09-06 03:29 EDT (History)
13 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 990909
Environment:
Last Closed: 2018-09-04 02:26:58 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2018:2607 None None None 2018-09-04 02:29 EDT

  None (edit)
Comment 2 Raghavendra G 2016-07-01 06:38:26 EDT
RCA:

1. Posix_mknod succeeds even though linkto xattr is not set because of no space. However the dentry/file is created. Hence this is a file with only T bit set, but without any linkto xattr.
2. Since mknod succeeds, dht proceeds to create data file on a subvol with enough space (min-free disk scenario).
3. Now we've two files and both are data files (because of lack of linkto xattr on hashed-subvol).

Also, since the file on hashed-subvol has only T bit set, all calls to IS_DHT_MIGRATION_PHASE2 succeed. This results in fops like dht_writev_cbk, dht_stat_cbk etc (fops handling migration) to falsely assume that a migration is going on and invoke dht_migration_complete_check task, which fails because of lack of linkto xattr. This error is propagated back to application in these calls (write, stat etc).

Fix:

Two possible fixes.
1. make posix_mknod atomic with respect to file creation and xattr setting. It should succeed only if both succeed. When xattr setting fails, it should cleanup the file.
2. dht_linkfile_create_cbk should double check whether the file created is indeed a linkto file (by asking for linkto xattr and iatt in cbk). If it finds that file created is not a linkto file, it'll cleanup the file and fails the create call with appropriate error (ENOSPC in this case).

regards,
Raghavendra
Comment 4 Raghavendra G 2017-12-22 02:31:40 EST
With patch [1], this bug will go away. Note that [1] is already part of 3.4.0 branch

https://code.engineering.redhat.com/gerrit/124629
Comment 10 Prasad Desala 2018-05-09 05:08:28 EDT
Verified this BZ on glusterfs version 3.12.2-8.
Created files till we get "No Space left on device" on the mount point, didn't see any duplicate files(Linkto files).

Hence, moving this BZ to Verified.
Comment 12 errata-xmlrpc 2018-09-04 02:26:58 EDT
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2018:2607

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