[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