Bug 802710

Summary: [6a8fcff3fb6955162dc4eeaeaa627bb31311627e] bonnie++ exits when quick-read is enabled
Product: [Community] GlusterFS Reporter: Anush Shetty <ashetty>
Component: fuseAssignee: Raghavendra G <rgowdapp>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: mainlineCC: gluster-bugs, rgowdapp
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: glusterfs-3.4.0 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-07-24 17:26:51 UTC Type: ---
Regression: --- Mount Type: fuse
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 817967    

Description Anush Shetty 2012-03-13 10:34:17 UTC
Description of problem: When quick-read is enabled using volume set operation while bonnie++ is in process, bonnie++ exits with an EBADF


Version-Release number of selected component (if applicable): upstream


How reproducible: Consistently


Steps to Reproduce:
1. bonnie++ -u root -d /mnt/gluster
2. gluster volume set test2 performance.quick-read on
3.
  
Actual results:

write(3, "r", 1)                        = 1
write(3, "s", 1)                        = 1
write(3, "t", 1)                        = 1
write(3, "u", 1)                        = 1
write(3, "v", 1)                        = -1 EEXIST (File exists)
write(2, "Can't write() - disk full?\n", 27Can't write() - disk full?
) = 27
fsync(3)                                = -1 EEXIST (File exists)
write(2, "Can't sync file.\n", 17Can't sync file.
)      = 17
close(3)                                = 0
unlink("./Bonnie.10235")                = 0
close(4294967295)                       = -1 EBADF (Bad file descriptor)
close(4294967295)                       = -1 EBADF (Bad file descriptor)
close(4294967295)                       = -1 EBADF (Bad file descriptor)
close(4294967295)                       = -1 EBADF (Bad file descriptor)
exit_group(1)                           = ?



Expected results:


Additional info:

Client log-

[2012-03-13 15:40:20.935987] I [fuse-bridge.c:4095:fuse_graph_setup] 0-fuse: switched to graph 19
[2012-03-13 15:40:20.936093] D [client-handshake.c:429:client_set_lk_version_cbk] 19-test2-client-0: Server lk version = 1
[2012-03-13 15:40:20.957035] W [client3_1-fops.c:375:client3_1_open_cbk] 19-test2-client-0: remote operation failed: File exists. Path: 
[2012-03-13 15:40:20.957078] W [fuse-bridge.c:3590:fuse_migrate_fd] 0-glusterfs-fuse: open on gfid (73cdb941-78e8-4870-8904-27d565dee599) failed (File exists)
[2012-03-13 15:40:20.957134] I [client.c:2092:notify] 18-test2-client-0: current graph is no longer active, destroying rpc_client 
[2012-03-13 15:40:20.957255] D [socket.c:193:__socket_rwv] 18-test2-client-0: EOF from peer 127.0.1.1:24009
[2012-03-13 15:40:20.957274] D [socket.c:1521:__socket_proto_state_machine] 18-test2-client-0: reading from socket failed. Error (Transport endpoint is not connected), peer (127.0.1.1:24009)
[2012-03-13 15:40:20.957289] D [socket.c:1807:socket_event_handler] 18-transport: disconnecting now
[2012-03-13 15:40:20.957346] W [client.c:2016:client_rpc_notify] 18-test2-client-0: Registering a grace timer
[2012-03-13 15:40:20.957362] I [client.c:2031:client_rpc_notify] 18-test2-client-0: disconnected
[2012-03-13 15:40:20.957376] D [fuse-bridge.c:4113:notify] 0-fuse: got event 6 on graph 18
[2012-03-13 15:40:20.957427] W [client3_1-fops.c:375:client3_1_open_cbk] 19-test2-client-0: remote operation failed: File exists. Path: 
[2012-03-13 15:40:20.957445] W [quick-read.c:1364:qr_writev_helper] 19-test2-quick-read: open failed on path () (Invalid argument), unwinding write call
[2012-03-13 15:40:20.957462] W [fuse-bridge.c:1997:fuse_writev_cbk] 0-glusterfs-fuse: 2216560: WRITE => -1 (File exists)
[2012-03-13 15:40:20.957916] W [client3_1-fops.c:375:client3_1_open_cbk] 19-test2-client-0: remote operation failed: File exists. Path: 
[2012-03-13 15:40:20.957938] W [quick-read.c:2603:qr_fsync_helper] 19-test2-quick-read: open failed on path () (File exists), unwinding fsync call
[2012-03-13 15:40:20.957954] W [fuse-bridge.c:945:fuse_err_cbk] 0-glusterfs-fuse: 2216561: FSYNC() ERR => -1 (File exists)
[2012-03-13 15:40:21.925900] W [client.c:112:client_grace_timeout] 17-test2-client-0: client grace timer expired, updating the lk-version to 2
[2012-03-13 15:40:31.926973] W [client.c:112:client_grace_timeout] 18-test2-client-0: client grace timer expired, updating the lk-version to 2

Comment 1 Anand Avati 2012-03-18 07:34:30 UTC
CHANGE: http://review.gluster.com/2943 (mount/fuse-bridge: don't pass flags O_CREAT | O_EXCL during open as part of fd-migration during graph-switch) merged in master by Anand Avati (avati)

Comment 2 Anush Shetty 2012-03-19 08:41:29 UTC
Verified with 3.3.0qa29