[Gluster-devel] question on quota

Emmanuel Dreyfus manu at netbsd.org
Sun Sep 21 17:39:11 UTC 2014


Hi

I am trying to get tests/basic/quota.t working on NetBSD and I notice an oddity:
before betting EDQUOT, I get EIO. The backtrace leading there is below. Note the
comments at frame 12. Shall I assume it is the expected behavior to get EIO for
an over quota write?

#0  0xbb491dc7 in _lwp_kill () from /lib/libc.so.12
#1  0xbb491d68 in raise () from /lib/libc.so.12
#2  0xbb491982 in abort () from /lib/libc.so.12
#3  0xba5a68bb in fuse_writev_cbk (frame=0xb99b7670, cookie=0xb98b5e28, 
    this=0xbb287018, op_ret=-1, op_errno=5, stbuf=0xbf7fe1e0, 
    postbuf=0xbf7fe1e0, xdata=0x0) at fuse-bridge.c:2271
#4  0xb9ba0d48 in io_stats_writev_cbk (frame=0xb98b5e28, cookie=0xb98b5eb8, 
    this=0xbb2d9018, op_ret=-1, op_errno=5, prebuf=0xbf7fe1e0, 
    postbuf=0xbf7fe1e0, xdata=0x0) at io-stats.c:1402
#5  0xb9bbb504 in mdc_writev_cbk (frame=0xb98b5eb8, cookie=0xb98b5fd8, 
    this=0xbb2d7018, op_ret=-1, op_errno=5, prebuf=0xbf7fe1e0, 
    postbuf=0xbf7fe1e0, xdata=0x0) at md-cache.c:1509
#6  0xbb768d7c in default_writev_cbk (frame=0xb98b5fd8, cookie=0xb98b6068, 
    this=0xbb2d6018, op_ret=-1, op_errno=5, prebuf=0xbf7fe1e0, 
    postbuf=0xbf7fe1e0, xdata=0x0) at defaults.c:1019
#7  0xbb768d7c in default_writev_cbk (frame=0xb98b6068, cookie=0xb98b6338, 
    this=0xbb2d5018, op_ret=-1, op_errno=5, prebuf=0xbf7fe1e0, 
    postbuf=0xbf7fe1e0, xdata=0x0) at defaults.c:1019
#8  0xb9be372d in ioc_writev_cbk (frame=0xb98b6338, cookie=0xb98b6458, 
    this=0xbb2d4018, op_ret=-1, op_errno=5, prebuf=0xbf7fe1e0, 
    postbuf=0xbf7fe1e0, xdata=0x0) at io-cache.c:1225
#9  0xb9bf421f in ra_writev_cbk (frame=0xb98b6458, cookie=0xb98b64e8, 
    this=0xbb2d3018, op_ret=-1, op_errno=5, prebuf=0xbf7fe1e0, 
    postbuf=0xbf7fe1e0, xdata=0x0) at read-ahead.c:654
#10 0xbb3068c4 in wb_do_unwinds (wb_inode=0xbb2403a8, lies=0xbf7fe288)
    at write-behind.c:921
#11 0xbb30724c in wb_process_queue (wb_inode=0xbb2403a8) at write-behind.c:1209
#12 0xbb305ec0 in wb_fulfill_cbk (frame=0xb98e9e70, cookie=0xb98b5be8, 
    this=0xbb2d2018, op_ret=81920, op_errno=0, prebuf=0xb98de3fc, 
    postbuf=0xb98de464, xdata=0xb98bbaa8) at write-behind.c:758

Here we have this code:
742             if (op_ret == -1) {
743                     wb_fulfill_err (head, op_errno);
744             } else if (op_ret < head->total_size) {
745                     /*
746                      * We've encountered a short write, for whatever reason.
747                      * Set an EIO error for the next fop. This should be
748                      * valid for writev or flush (close).
749                      *
750                      * TODO: Retry the write so we can potentially capture
751                      * a real error condition (i.e., ENOSPC).
752                      */
753                     wb_fulfill_err (head, EIO);
754             }

#13 0xb9c3fed8 in dht_writev_cbk (frame=0xb98b5be8, cookie=0xb98b5c78, 
    this=0xbb2d1018, op_ret=81920, op_errno=0, prebuf=0xb98de3fc, 
    postbuf=0xb98de464, xdata=0xb98bbaa8) at dht-inode-write.c:84
#14 0xb9c7e97d in afr_writev_unwind (frame=0xb98b5c78, this=0xbb2cf018)
    at afr-inode-write.c:188
#15 0xb9c7ed43 in afr_writev_wind_cbk (frame=0xb99b6e70, cookie=0x1, 
    this=0xbb2cf018, op_ret=81920, op_errno=0, prebuf=0xbf7fe438, 
    postbuf=0xbf7fe3d0, xdata=0xb98bbaa8) at afr-inode-write.c:313
#16 0xb9cdd30d in client3_3_writev_cbk (req=0xb9ad4428, iov=0xb9ad4448, 
    count=1, myframe=0xb98b5918) at client-rpc-fops.c:855
#17 0xbb7330c2 in rpc_clnt_handle_reply (clnt=0xbb2af508, pollin=0xb98a6fc8)
    at rpc-clnt.c:766
#18 0xbb7333ba in rpc_clnt_notify (trans=0xb99a2018, mydata=0xbb2af528, 
    event=RPC_TRANSPORT_MSG_RECEIVED, data=0xb98a6fc8) at rpc-clnt.c:894
#19 0xbb72fab5 in rpc_transport_notify (this=0xb99a2018, 
    event=RPC_TRANSPORT_MSG_RECEIVED, data=0xb98a6fc8) at rpc-transport.c:516
#20 0xb9d6d832 in socket_event_poll_in (this=0xb99a2018) at socket.c:2153
#21 0xb9d6dce7 in socket_event_handler (fd=15, idx=5, data=0xb99a2018, 
    poll_in=1, poll_out=0, poll_err=0) at socket.c:2266
#22 0xbb7be78f in event_dispatch_poll_handler (event_pool=0xbb242098, 
    ufds=0xbb2856b8, i=5) at event-poll.c:357
#23 0xbb7be9f6 in event_dispatch_poll (event_pool=0xbb242098)
    at event-poll.c:436
#24 0xbb791571 in event_dispatch (event_pool=0xbb242098) at event.c:113
#25 0x080503e0 in main (argc=8, argv=0xbf7febd8) at glusterfsd.c:2043

-- 
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
manu at netbsd.org


More information about the Gluster-devel mailing list