Re: glusterfs-3.3.2 client3_1_setattr_cbk EOVERFLOW

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 07/17/2013 01:33 AM, Heiko L. wrote:

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@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?



rsp.op_errno would be ENOTCONN or EINVAL if your client received an error from the rpc layer or if decoding of the rpc payload failed. This situation mostly indicates that the brick set rsp.op_errno to EOVERFLOW. Have you checked the brick log file to determine if a corresponding error log message is present there?

-Vijay




[Index of Archives]     [Gluster Users]     [Ceph Users]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux