[Gluster-devel] glusterfs-3.3.2 client3_1_setattr_cbk EOVERFLOW
Vijay Bellur
vbellur at redhat.com
Wed Jul 17 19:30:49 UTC 2013
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 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?
>
>
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
More information about the Gluster-devel
mailing list