Back to bug 1030309

Who When What Removed Added
Vivek Agarwal 2014-01-27 07:46:35 UTC Assignee rhs-bugs srangana
John Skeoch 2014-02-27 00:13:57 UTC Assignee srangana vraman
John Skeoch 2014-03-31 01:34:51 UTC Assignee vraman rwheeler
Nagaprasad Sathyanarayana 2014-06-12 05:07:19 UTC Blocks 1088231
Priority unspecified urgent
Status NEW ASSIGNED
CC nsathyan
Assignee rwheeler vsomyaju
Target Milestone --- RHS 3.0.0
Aravinda VK 2014-06-13 05:45:56 UTC Blocks 1102550
Raghavendra G 2014-06-13 08:31:07 UTC CC rgowdapp
Nagaprasad Sathyanarayana 2014-06-17 13:34:06 UTC CC ssamanta
Status ASSIGNED POST
Raghavendra G 2014-06-17 14:57:37 UTC Status POST MODIFIED
Nagaprasad Sathyanarayana 2014-06-19 05:28:44 UTC Status MODIFIED ON_QA
Fixed In Version glusterfs-3.6.0.19-1
Sudhir D 2014-06-24 03:56:34 UTC QA Contact sdharane racpatel
Rachana Patel 2014-06-27 11:06:56 UTC Doc Text Cause:
------
No layout self healing of directory for nameless lookup

Consequence:
------------
Currently in the nameless lookup code path, if at the
end of the lookup, even if it detects that layout
anamolies are there
Doc Text , layout healing will not be done as
there is no code to heal it.
So there can be race between mkdir and lookup.

Assume mkdir is going on from some other mount point,
Say
Doc Text , M1. Directories are created on some nodes but layout
is not set yet.

Now from M2, nameless lookup goes, lookup will be success
full as the directory is present on some of the nodes, but
it won't heal layout. Now if create goes after lookup fop
Doc Text ,
because layout is absent, file creation will fail.

Fix:
-----
Included the code of layout self-heal in the nameless
lookup path. At the end of lookup, layout will be computed
as it would have been in the named lookup
Doc Text , but it will be
set to those node only, where directory is present.
So after that if create fop goes, the probabiliy to get the
subvolume with proper hash-range is high now
Doc Text , so reduces
the race window.

Result:
--------
In case of the nameless lookup, if directory is present, layout will be healed for existing directories. So file creation inside those directories will be successful.
Status ON_QA ASSIGNED
Raghavendra G 2014-07-01 06:10:25 UTC CC racpatel
Flags needinfo?(racpatel)
Nagaprasad Sathyanarayana 2014-07-02 05:06:25 UTC Target Milestone RHS 3.0.0 RHS 3.0.1
Nagaprasad Sathyanarayana 2014-07-02 09:05:48 UTC Blocks 1087818
Satish Mohan 2014-07-29 17:33:31 UTC CC smohan
Vikhyat Umrao 2014-08-04 09:25:37 UTC Blocks 1126358
Nagaprasad Sathyanarayana 2014-09-12 06:17:47 UTC Target Milestone RHS 3.0.1 RHS 3.0.2
Raghavendra G 2014-09-22 10:38:11 UTC Doc Text Cause:
------
No layout self healing of directory for nameless lookup

Consequence:
------------
Currently in the nameless lookup code path, if at the
end of the lookup, even if it detects that layout
anamolies are there, layout healing will not be done as
there is no code to heal it.
So there can be race between mkdir and lookup.

Assume mkdir is going on from some other mount point,
Say, M1. Directories are created on some nodes but layout
is not set yet.

Now from M2, nameless lookup goes, lookup will be success
full as the directory is present on some of the nodes, but
it won't heal layout. Now if create goes after lookup fop,
because layout is absent, file creation will fail.

Fix:
-----
Included the code of layout self-heal in the nameless
lookup path. At the end of lookup, layout will be computed
as it would have been in the named lookup, but it will be
set to those node only, where directory is present.
So after that if create fop goes, the probabiliy to get the
subvolume with proper hash-range is high now, so reduces
the race window.

Result:
--------
In case of the nameless lookup, if directory is present, layout will be healed for existing directories. So file creation inside those directories will be successful.
Cause:
------
During directory creations attempted by geo-replication, though an mkdir fails with EEXIST, the directory might not have a complete layout for sometime. This can happen if there is a parallel mkdir attempt on the same name. Till the other mkdir completes, layout is not set on the directory. Without a layout, entry creations within that directory can fail.

Consequence:
------------
A new directory creation fails with "Directory exists". However, creations within that directory can fail.

Fix:
-----
Set the layout on those subvolumes where directory is already created by the parallel mkdir before failing the current mkdir with EEXIST.

Result:
--------
This is not a complete fix as the other mkdir might not have created directories on all subvolumes. However, on those subvolumes, where directory is already created, the layout is set. Any files/directory names which hash to these subvolumes on which layout is set, can be c
an be created successfully.
Vivek Agarwal 2015-01-29 10:37:27 UTC Component glusterfs gluster-dht
Assignee vsomyaju nbalacha
John Skeoch 2015-04-20 00:23:54 UTC CC mzywusko
John Skeoch 2015-04-20 00:25:03 UTC CC racpatel
John Skeoch 2015-04-20 00:25:46 UTC QA Contact racpatel mzywusko
Rejy M Cyriac 2015-05-13 17:37:16 UTC Target Milestone RHS 3.0.2 ---
John Skeoch 2015-06-11 01:09:50 UTC CC ssamanta
Susant Kumar Palai 2015-11-27 12:30:32 UTC Status ASSIGNED CLOSED
CC spalai
Resolution --- DEFERRED
Last Closed 2015-11-27 07:30:32 UTC
Susant Kumar Palai 2015-11-27 12:31:16 UTC Blocks 1286208
Susant Kumar Palai 2015-11-30 09:44:45 UTC Blocks 1286584
Sweta Anandpara 2018-01-16 06:35:34 UTC CC sanandpa
Flags needinfo?(racpatel)

Back to bug 1030309