Bug 762371 (GLUSTER-639) - Data corruption with write-behind on server side
Summary: Data corruption with write-behind on server side
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: GLUSTER-639
Product: GlusterFS
Classification: Community
Component: write-behind
Version: 3.0.2
Hardware: All
OS: Linux
low
high
Target Milestone: ---
Assignee: Raghavendra G
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-02-18 15:35 UTC by Anush Shetty
Modified: 2010-03-24 05:21 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed:
Regression: RTA
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:


Attachments (Terms of Use)

Description Anush Shetty 2010-02-18 13:04:26 UTC
Pasting the correct output of the bug:

cp /tmp/file /mnt/client/

c9ecca0f5000035fa1b06c07cbb765ba  file
10932188053aae6e8902244970e126bc  /mnt/client1/file

Comment 1 Anand Avati 2010-02-18 13:40:02 UTC
PATCH: http://patches.gluster.com/patch/2781 in master (server_writev: add proper iobuf into iobref)

Comment 2 Anand Avati 2010-02-18 13:40:22 UTC
PATCH: http://patches.gluster.com/patch/2781 in release-3.0 (server_writev: add proper iobuf into iobref)

Comment 3 Anush Shetty 2010-02-18 15:35:18 UTC
When write-behind was used on the server side, there was data corruption.


cp /tmp/file /mnt/client/
c9ecca0f5000035fa1b06c07cbb765ba  /tmp/file
c9ecca0f5000035fa1b06c07cbb765ba  /mnt/client/file

Server Volume file:

volume posix1
  type storage/posix                    
  option directory /mnt/export
end-volume


volume locks
  type features/posix-locksn         
  subvolumes posix1
end-volume

volume iot
 type performance/io-threads
 option thread-count 8
 subvolumes locks
end-volume

volume writebehind
 type performance/write-behind
 option cache-size 4MB
 subvolumes iot
end-volume

volume brick1
   type performance/read-ahead
  option page-count 4          
  option force-atime-update off 
  subvolumes writebehind
end-volume

volume server
  type protocol/server
  option transport-type tcp                     
  option transport.socket.listen-port 7777
  subvolumes brick1
  option auth.addr.brick1.allow *              
end-volume

Client vol file:

volume client1
  type protocol/client
  option transport-type tcp    
  option remote-host 127.0.0.1     
  option transport.socket.remote-port 7777
  option remote-subvolume brick1      
end-volume

volume writebehind
  type performance/write-behind
  option cache-size 4MB
  option flush-behind on  
  subvolumes client1
end-volume


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