[Gluster-devel] glusterfs-3.3.2 client3_1_setattr_cbk EOVERFLOW

Heiko L. heikol at fh-lausitz.de
Tue Jul 16 20:03:19 UTC 2013


Hallo

I have a problem to understand following error:

[2013-07-16 15:36:05.056955] D [afr-lk-common.c:403:transaction_lk_op] 0-gv0-replicate-0: lk op is for a transaction
[2013-07-16 15:36:05.057367] D [afr-transaction.c:1027:afr_post_nonblocking_inodelk_cbk] 0-gv0-replicate-0: Non blocking
inodelks done. Proceeding to FOP
[2013-07-16 15:36:05.057640] D [client3_1-fops.c:2810:client_fdctx_destroy] 0-gv0-client-0: sending release on fd
[2013-07-16 15:36:05.057687] D [client3_1-fops.c:2810:client_fdctx_destroy] 0-gv0-client-1: sending release on fd
[2013-07-16 15:36:05.058460] W [client3_1-fops.c:2009:client3_1_setattr_cbk] 0-gv0-client-0: remote operation failed: Value too
large for defined data type
[2013-07-16 15:36:05.058515] W [client3_1-fops.c:2009:client3_1_setattr_cbk] 0-gv0-client-1: remote operation failed: Value too
large for defined data


# grep "EOVERFLOW " ./libglusterfs/src/compat-errno.c
/*      EOVERFLOW 79    / * value too large to be stored in data type */
        /*      EOVERFLOW       84              / * Value too large to be stored in data type */
        /*      EOVERFLOW       84              / * Value too large to be stored in data type */


root at osol4:/tmp/glusterfs-3.3.2# vi ./xlators/protocol/client/src/client3_1-fops.c

   1983         if (-1 == req->rpc_status) {
   1984                 rsp.op_ret   = -1;
   1985                 rsp.op_errno = ENOTCONN;
   1986                 goto out;
   1987         }
   1988
   1989         ret = xdr_to_generic (*iov, &rsp, (xdrproc_t)xdr_gfs3_setattr_rsp);
   1990         if (ret < 0) {
   1991                 gf_log (this->name, GF_LOG_ERROR, "XDR decoding failed");
   1992                 rsp.op_ret   = -1;
   1993                 rsp.op_errno = EINVAL;
   1994                 goto out;
   1995         }
   1996
   1997         if (-1 != rsp.op_ret) {
   1998                 gf_stat_to_iatt (&rsp.statpre, &prestat);
   1999                 gf_stat_to_iatt (&rsp.statpost, &poststat);
   2000         }
   2001
   2002         GF_PROTOCOL_DICT_UNSERIALIZE (this, xdata, (rsp.xdata.xdata_val),
   2003                                       (rsp.xdata.xdata_len), ret,
   2004                                       rsp.op_errno, out);
   2005
   2006 out:
   2007         if (rsp.op_ret == -1) {
   2008                 gf_log (this->name, GF_LOG_WARNING, "remote operation failed: %s",
   2009                         strerror (gf_error_to_errno (rsp.op_errno)));
   2010         }

my suggestion:
- l2009 gf_log printed: remote operation failed: Value too large for defined data type
- according to [1]: The symbolic name for this error is EOVERFLOW, errno=79
- l2006 out: can jumping from 1986,1994 (ENOTCONN,EINVAL)
  I do not see EOVERFLOW.


where EOVERFLOW setting?



Background:
- first copy failed with error (second copy work successful):

# gluster volume set $vol diagnostics.client-log-level DEBUG

# (date;time cp $src $dir/testfile_32m.`date +\%M`)
Tue Jul 16 17:36:05 CEST 2013
cp: cannot create regular file `/mnt/gv0/test2cp/testfile_32m.36': I/O error

real    0m0.027s
user    0m0.002s
sys     0m0.011s


==========================================================
[1] http://docs.oracle.com/cd/E19455-01/806-1075/msgs-2215/index.html
   Solaris Common Messages and Troubleshooting Guide
   Value too large for defined data type
   The symbolic name for this error is EOVERFLOW, errno=79.




regards Heiko






More information about the Gluster-devel mailing list