[Gluster-devel] Issue with THIS and libgfapi

Krishnan Parthasarathi kparthas at redhat.com
Wed May 13 07:05:32 UTC 2015


> Recently with glusterfs-3.7 beta1 rpms, while create VM Image using qemu-img,
> I see the following errors :
> 
> [2015-05-08 09:04:14.358896] E [rpc-transport.c:512:rpc_transport_unref] (-->
> /lib64/libglusterfs.so.0(_gf_log_callingfn+0x186)[0x7f51f6bb6516] (-->
> /lib64/libgfrpc.so.0(rpc_transport_unref+0xa3)[0x7f51f965e493] (-->
> /lib64/libgfrpc.so.0(rpc_clnt_unref+0x5c)[0x7f51f96617dc] (-->
> /lib64/libglusterfs.so.0(+0x1edc1)[0x7f51f6bb2dc1] (-->
> /lib64/libglusterfs.so.0(+0x1ed55)[0x7f51f6bb2d55] ))))) 0-rpc_transport:
> invalid argument: this
> [2015-05-08 09:04:14.359085] E [rpc-transport.c:512:rpc_transport_unref] (-->
> /lib64/libglusterfs.so.0(_gf_log_callingfn+0x186)[0x7f51f6bb6516] (-->
> /lib64/libgfrpc.so.0(rpc_transport_unref+0xa3)[0x7f51f965e493] (-->
> /lib64/libgfrpc.so.0(rpc_clnt_unref+0x5c)[0x7f51f96617dc] (-->
> /lib64/libglusterfs.so.0(+0x1edc1)[0x7f51f6bb2dc1] (-->
> /lib64/libglusterfs.so.0(+0x1ed55)[0x7f51f6bb2d55] ))))) 0-rpc_transport:
> invalid argument: this
> [2015-05-08 09:04:14.359241] E [rpc-transport.c:512:rpc_transport_unref] (-->
> /lib64/libglusterfs.so.0(_gf_log_callingfn+0x186)[0x7f51f6bb6516] (-->
> /lib64/libgfrpc.so.0(rpc_transport_unref+0xa3)[0x7f51f965e493] (-->
> /lib64/libgfrpc.so.0(rpc_clnt_unref+0x5c)[0x7f51f96617dc] (-->
> /lib64/libglusterfs.so.0(+0x1edc1)[0x7f51f6bb2dc1] (-->
> /lib64/libglusterfs.so.0(+0x1ed55)[0x7f51f6bb2d55] ))))) 0-rpc_transport:
> invalid argument: this
> 
> Is this the consequence of the issue that you are talking about ?

The 'this' in these error logs are referring to the rpc_transport_t pointer
and not the 'THIS' which is a xlator_t pointer. In this case, we are trying
to perform an unref on a NULL'd transport. This is not the best way to solve
a use-after-free (at the rpc layer), but that's how it works at the moment.

Hope that helps,
KP


More information about the Gluster-devel mailing list