[zeromq-dev] Possibly a memleak in zframe_new()

Mathias Hablützel habl at zhaw.ch
Thu Sep 19 15:02:30 CEST 2013


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi everyone,

ran into a situation where my code seems to leak memory but I can't
tackle it down in _my_ code. Kicked off valgrind to find this:

==2874== 56 bytes in 1 blocks are definitely lost in loss record 34 of 72
==2874==    at 0x4A08121: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==2874==    by 0x4E7A968: zframe_new (czmq_prelude.h:443)
==2874==    by 0x4E7AB48: zframe_recv (zframe.c:156)
==2874==    by 0x4E7ED84: zmsg_recv (zmsg.c:101)
==2874==    by 0x401458: _recv_message (kt_server.c:114)

_recv_message() is my function, snippet:

  zmsg_t *m = zmsg_recv(sock);
  assert(m);
  char *msgData = zframe_strdup(zmsg_pop(m));
  zmsg_destroy(&m);
  free (msgData);


So, I tracked this further down to zframe_new() which actually allocates
sizeof(zframe_t) and later passes this to zmq_msg_init(). Since I work
with a ZMQ_REP socket here, this must be in zmq::router_t::xrecv or more
precisely in fq.recvpipe. recvpipe then calls zmq::msg_t::close.

And this is where I suspect the memory leak to happen. The union-struct
u defined in msg.hpp seems not to be freed correctly. But all this is
massive speculation from my side — mostly because I'm just a
beginner/noob and I have no clue about libzmq nor about C++.

Let me know if I'm just a noob with no clue or I found something. :)

Happy Hacking
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.21 (Darwin)

iQIcBAEBAgAGBQJSOvXmAAoJEKkVOTYKXmyzs1gP/0lduRNVvjDe9Lf1H1kRZr4O
RFqHWbfFxzEB3boLhpbvOE6mEedfPvyZnNeswm4pL4ROomRDABrJksxhEFGNAZqv
nOk0lKwwouj6NwwfgiSasgprydsKfvfLAmvxSELP8yb7bJAKNg7P72Ec/lU1mIv+
kNbrMYG855awGUsJeOm1Y8c4nrJd/i7uc6U++bWu6u3yOQQDPP2gjpcdaaWIk47B
GH/vZVfMmJjjB2QCcBnvaToQ2KiTPmr0JBOjgvMz6V3A1WXDYDwxZbxqt/ZJiptF
AUCGY66gjK3fu9dyGmYEATN7P8bmLv99TzJ/ptHvQ1WDrsyyzDniumZ6yXyRhjKN
lIvDqEdHH27xBGP5ml7UHCySMmyD+PGG1dPtijSd+0/YYey5/PcY809qaRbT6CKl
XYzn3/HE5qPsKcPmriWm32Mk/1ujQfRGcdUemW0cHHL7Xa0F/R7NzVWr26hyDXt5
huyMaMURDD8aWf7qWQ+Iyz85PphO36InRShSS9FJT5jrqkOamwtrSJ5Z72as+bJ5
KbL9GowSE+tUyp2yDIIex5Ji6Rr7z8Kt8XRx9sh8+pnWcmVJwO53tkP1HqXVuoHm
tlydMrxfneJPNnIF2vUTzjei1KEOed6QyQy8nZwGKFo3NspTTToZtxkTf/JiMbtE
lNH7SzVoOJpa2+PftIBb
=3xQ5
-----END PGP SIGNATURE-----



More information about the zeromq-dev mailing list