summaryrefslogtreecommitdiffstats
path: root/xlators/features/bit-rot/src/stub/bit-rot-stub.c
diff options
context:
space:
mode:
authorRaghavendra G <rgowdapp@redhat.com>2016-01-05 22:16:31 +0530
committerRaghavendra G <rgowdapp@redhat.com>2016-01-06 21:59:52 -0800
commitea42ffa13c00263a574226626d30749b6b0f3776 (patch)
tree57f318acac7a5ec80ba07b44bded5433d73e3a3b /xlators/features/bit-rot/src/stub/bit-rot-stub.c
parentcae9a5b3a1868a8bae25cd1ba9ebb41d698f39e5 (diff)
performance/write-behind: maintain correct transit size in case of
short writes. 1. Imagine a write when cache is filled with failed syncs. 2. This write won't be unwound since cache size has exceeded configured limit. 3. With trickling-writes on by default, the last write request wont be considered for winding when there is non zero in-transit size. 4. There was a bug in accounting of in-transit size when winds resulted in short writes. Due to this bug, in-transit size used to be non-zero even when there are no syncs in progress. 5. Due to 3 and 4, current write request won't be wound till there is another write or fsync or flush from application. But application can't do any other fop till current write request is unwound. This resulted in deadlock and hence application would be hung in 'D' state. This patch fixes bug in accounting of in-transit size during short writes. Change-Id: I04ce8bb510efaaed7623cac38d69b32dbc3730ce Signed-off-by: Raghavendra G <rgowdapp@redhat.com> BUG: 1279730 Reviewed-on: http://review.gluster.org/13177 Tested-by: Gluster Build System <jenkins@build.gluster.com>
Diffstat (limited to 'xlators/features/bit-rot/src/stub/bit-rot-stub.c')
0 files changed, 0 insertions, 0 deletions