glusterfs: write operations fail when the size is equal or greater than 1 GB #1518
Labels
DocApproved
Mandatory flag to pass smoke. Provide user facing document to get approval.
SpecApproved
This is a mandatory flag for passing the smoke for feature. Provide spec of feature to get approval
Type:Bug
Description of problem:
Write APIs (eg. glfs_write(), glfs_pwrite() or *async()) with a size >= 1GB there is a strange behaviour:
Version-Release number of selected component (if applicable):
glusterfs-server-3.12.2-40.el7rhgs.x84_64
How reproducible:
100%
Steps to Reproduce:
Actual results:
TEST glfs_write - size: 512 MiB pattern: 171
glfs_write - size: 536870912 ret: 536870912
glfs_read - size: 1024 ret: 1024
PASS
TEST glfs_write - size: 1023 MiB pattern: 42
glfs_write - size: 1072693248 ret: 1072693248
glfs_read - size: 1024 ret: 1024
PASS
TEST glfs_write - size: 1024 MiB pattern: 203
glfs_write - size: 1073741824 ret: 1073741824
[2019-03-21 10:43:24.607883] E [rpc-clnt.c:346:saved_frames_unwind] (--> /lib64/libglusterfs.so.0(_gf_log_callingfn+0x131)[0x7f436bd83131] (--> /lib64/libgfrpc.so.0(+0xda01)[0x7f436bd48a01] (--> /lib64/libgfrpc.so.0(+0xdb22)[0x7f436bd48b22] (--> /lib64/libgfrpc.so.0(rpc_clnt_connection_cleanup+0x94)[0x7f436bd4a0b4] (--> /lib64/libgfrpc.so.0(+0xfc50)[0x7f436bd4ac50] ))))) 0-gv33-client-0: forced unwinding frame type(GlusterFS 3.3) op(WRITE(13)) called at 2019-03-21 10:43:24.607433 (xid=0x11)
glfs_read - size: 1024 ret: -1
glfs_read: Transport endpoint is not connected
END ret=-1
Expected results:
TEST glfs_write - size: 512 MiB pattern: 171
glfs_write - size: 536870912 ret: 536870912
glfs_read - size: 1024 ret: 1024
PASS
TEST glfs_write - size: 1023 MiB pattern: 42
glfs_write - size: 1072693248 ret: 1072693248
glfs_read - size: 1024 ret: 1024
PASS
TEST glfs_write - size: 1024 MiB pattern: 203
glfs_write - size: 1073741824 ret: 1073741824
glfs_read - size: 1024 ret: 1024
END ret=0
Additional info:
As clients, I used both RHEL8 (glusterfs-api-3.12.2-40.2.el8.x86_64) and F29 (glusterfs-api-5.5-1.fc29.x86_64)
I had the same issue also using a Fedora 29 server (glusterfs-server-5.5-1.fc29.x86_64):
TEST glfs_write - size: 1024 MiB pattern: 172
glfs_write - size: 1073741824 ret: 1073741824
[2019-03-21 10:55:08.998979] E [rpc-clnt.c:346:saved_frames_unwind] (--> /lib64/libglusterfs.so.0(_gf_log_callingfn+0x131)[0x7fbf924ec131] (--> /lib64/libgfrpc.so.0(+0xda01)[0x7fbf924b1a01] (--> /lib64/libgfrpc.so.0(+0xdb22)[0x7fbf924b1b22] (--> /lib64/libgfrpc.so.0(rpc_clnt_connection_cleanup+0x94)[0x7fbf924b30b4] (--> /lib64/libgfrpc.so.0(+0xfc50)[0x7fbf924b3c50] ))))) 0-gv0-client-0: forced unwinding frame type(GlusterFS 4.x v1) op(WRITE(13)) called at 2019-03-21 10:55:08.998126 (xid=0x11)
glfs_read - size: 1024 ret: -1
glfs_read: Transport endpoint is not connected
The text was updated successfully, but these errors were encountered: