[zeromq-dev] memory leak or heap problem in czmq on Windows build

2014-04-02 Thread Pritesh Acharya
Hi,
zmq version: zeromq-4.0.3(build as Windows DLL)
czmq version: czmq-2.0.3(build as Windows DLL)
IDE: Visual Studio Professional 2010

I have a small progream which creates two thread and uses ZMQ_PAIR socket
over inproc to send data from one to another.
One thread sends data using zstr_send and other receives using zstr_recv.
If I don't free string received from zstr_recv , I get constant increase of
memory (via Task Manager).
If I free it using free(), i get heap corruption error on the frist free.

Here is the code


*#include iostream*
*#include czmq.h*
*#include boost/thread.hpp*

*zctx_t *zmq_ctx=NULL;*

*void normalizer() *
*{*
*void *xmitter;*
* xmitter = zsocket_new(zmq_ctx, ZMQ_PAIR);*
* zsocket_connect (xmitter, inproc://sender);*
*while(1)*
*{*
* zstr_send (xmitter, hello);*
* }*
* zsocket_destroy (zmq_ctx, xmitter);*
*}*

*void sender() *
*{*
* void *receiver = zsocket_new(zmq_ctx, ZMQ_PAIR);*
*int rc = zsocket_bind (receiver, inproc://sender);*
* boost::thread t(normalizer);*
* int counter=0;*
*while(1)*
*{*
* char *string = zstr_recv (receiver);*
* counter++;*
*if(counter%1==0)*
* {*
*std::cout  counter:   counter  std::endl;*
* }*
* //free (string); //problem is here*
* }*
* zsocket_destroy(zmq_ctx, receiver);*
*}*

*void main(void)*
*{*
* zmq_ctx = zctx_new();*
* boost::thread t(sender);*
* t.join();*
*}*
___
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev


Re: [zeromq-dev] memory leak or heap problem in czmq on Windows build

2014-04-02 Thread Pritesh Acharya
And the strange thing is, If I use static version of czmq build, everything
works fine and no error on free(string).


On Wed, Apr 2, 2014 at 11:55 AM, Pritesh Acharya
priteshacha...@gmail.comwrote:

 Hi,
 zmq version: zeromq-4.0.3(build as Windows DLL)
 czmq version: czmq-2.0.3(build as Windows DLL)
 IDE: Visual Studio Professional 2010

 I have a small progream which creates two thread and uses ZMQ_PAIR socket
 over inproc to send data from one to another.
 One thread sends data using zstr_send and other receives using zstr_recv.
 If I don't free string received from zstr_recv , I get constant increase
 of memory (via Task Manager).
 If I free it using free(), i get heap corruption error on the frist free.

 Here is the code


 *#include iostream*
 *#include czmq.h*
 *#include boost/thread.hpp*

  *zctx_t *zmq_ctx=NULL;*

 *void normalizer() *
 *{*
 *void *xmitter;*
 * xmitter = zsocket_new(zmq_ctx, ZMQ_PAIR);*
 * zsocket_connect (xmitter, inproc://sender);*
 *while(1)*
 *{*
 * zstr_send (xmitter, hello);*
 * }*
 * zsocket_destroy (zmq_ctx, xmitter);*
 *}*

 *void sender() *
 *{*
 * void *receiver = zsocket_new(zmq_ctx, ZMQ_PAIR);*
 *int rc = zsocket_bind (receiver, inproc://sender);*
 * boost::thread t(normalizer);*
 * int counter=0;*
 *while(1)*
 *{*
 * char *string = zstr_recv (receiver);*
 * counter++;*
 *if(counter%1==0)*
 * {*
 *std::cout  counter:   counter  std::endl;*
 * }*
 * //free (string); //problem is here*
 * }*
 * zsocket_destroy(zmq_ctx, receiver);*
 *}*

 *void main(void)*
 *{*
 * zmq_ctx = zctx_new();*
 * boost::thread t(sender);*
 * t.join();*
 *}*


___
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev


[zeromq-dev] zmq with ssh

2014-02-11 Thread Pritesh Acharya
Is zmq using ssh supported.I couldn't find anything such in the core
library. Is there a library to secure zmq connection using ssh encription?
-Pritesh
___
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev


[zeromq-dev] problem linking czmq on czmq_selftest on Windows machine

2014-01-21 Thread Pritesh Acharya
I am using Windows 8, Visual Studio 2010. I compiled zmq dynamically and
czmq statically, but unable to compile the czmq_selftest project.
I checked the additional library directory and added path to czmq.lib.

Error 1 error LNK2019: unresolved external symbol _zauth_test referenced in
function _main
D:\ubuntu_share\programming\C++\library\zmq\czmq\czmq-2.0.3_bak\builds\msvc\czmq_selftest.obj
czmq_selftest
Error 2 error LNK2019: unresolved external symbol _zcertstore_test
referenced in function _main
D:\ubuntu_share\programming\C++\library\zmq\czmq\czmq-2.0.3_bak\builds\msvc\czmq_selftest.obj
czmq_selftest
Error 3 error LNK2019: unresolved external symbol _zcert_test referenced in
function _main
D:\ubuntu_share\programming\C++\library\zmq\czmq\czmq-2.0.3_bak\builds\msvc\czmq_selftest.obj
czmq_selftest
Error 4 error LNK2019: unresolved external symbol _zpoller_test referenced
in function _main
D:\ubuntu_share\programming\C++\library\zmq\czmq\czmq-2.0.3_bak\builds\msvc\czmq_selftest.obj
czmq_selftest
Error 5 error LNK2019: unresolved external symbol _ztree_test referenced in
function _main
D:\ubuntu_share\programming\C++\library\zmq\czmq\czmq-2.0.3_bak\builds\msvc\czmq_selftest.obj
czmq_selftest
Error 6 error LNK2019: unresolved external symbol _zchunk_test referenced
in function _main
D:\ubuntu_share\programming\C++\library\zmq\czmq\czmq-2.0.3_bak\builds\msvc\czmq_selftest.obj
czmq_selftest
Error 7 error LNK2019: unresolved external symbol _zpoller_destroy
referenced in function _zbeacon_test
D:\ubuntu_share\programming\C++\library\zmq\czmq\czmq-2.0.3_bak\builds\msvc\zbeacon.obj
1 1 czmq_selftest
Error 8 error LNK2019: unresolved external symbol _zpoller_wait referenced
in function _zbeacon_test
D:\ubuntu_share\programming\C++\library\zmq\czmq\czmq-2.0.3_bak\builds\msvc\zbeacon.obj
1 1 czmq_selftest
Error 9 error LNK2019: unresolved external symbol _zpoller_new referenced
in function _zbeacon_test
D:\ubuntu_share\programming\C++\library\zmq\czmq\czmq-2.0.3_bak\builds\msvc\zbeacon.obj
1 1 czmq_selftest
Error 10 error LNK2019: unresolved external symbol _zdir_destroy referenced
in function _zconfig_test
D:\ubuntu_share\programming\C++\library\zmq\czmq\czmq-2.0.3_bak\builds\msvc\zconfig.obj
1 1 czmq_selftest
Error 11 error LNK2001: unresolved external symbol _zdir_destroy
D:\ubuntu_share\programming\C++\library\zmq\czmq\czmq-2.0.3_bak\builds\msvc\zfile.obj
1 1 czmq_selftest
Error 12 error LNK2019: unresolved external symbol _zdir_remove referenced
in function _zconfig_test
D:\ubuntu_share\programming\C++\library\zmq\czmq\czmq-2.0.3_bak\builds\msvc\zconfig.obj
1 1 czmq_selftest
Error 13 error LNK2001: unresolved external symbol _zdir_remove
D:\ubuntu_share\programming\C++\library\zmq\czmq\czmq-2.0.3_bak\builds\msvc\zfile.obj
1 1 czmq_selftest
Error 14 error LNK2019: unresolved external symbol _zdir_new referenced in
function _zconfig_test
D:\ubuntu_share\programming\C++\library\zmq\czmq\czmq-2.0.3_bak\builds\msvc\zconfig.obj
1 1 czmq_selftest
Error 15 error LNK2001: unresolved external symbol _zdir_new
D:\ubuntu_share\programming\C++\library\zmq\czmq\czmq-2.0.3_bak\builds\msvc\zfile.obj
1 1 czmq_selftest
Error 16 error LNK2019: unresolved external symbol _zchunk_size referenced
in function _zfile_read
D:\ubuntu_share\programming\C++\library\zmq\czmq\czmq-2.0.3_bak\builds\msvc\zfile.obj
1 1 czmq_selftest
Error 17 error LNK2019: unresolved external symbol _zchunk_read referenced
in function _zfile_read
D:\ubuntu_share\programming\C++\library\zmq\czmq\czmq-2.0.3_bak\builds\msvc\zfile.obj
1 1 czmq_selftest
Error 18 error LNK2019: unresolved external symbol _zchunk_write referenced
in function _zfile_write
D:\ubuntu_share\programming\C++\library\zmq\czmq\czmq-2.0.3_bak\builds\msvc\zfile.obj
1 1 czmq_selftest
Error 19 error LNK2019: unresolved external symbol _zdir_cursize referenced
in function _zfile_test
D:\ubuntu_share\programming\C++\library\zmq\czmq\czmq-2.0.3_bak\builds\msvc\zfile.obj
1 1 czmq_selftest
Error 20 error LNK2019: unresolved external symbol _zchunk_destroy
referenced in function _zfile_test
D:\ubuntu_share\programming\C++\library\zmq\czmq\czmq-2.0.3_bak\builds\msvc\zfile.obj
1 1 czmq_selftest
Error 21 error LNK2019: unresolved external symbol _zchunk_fill referenced
in function _zfile_test
D:\ubuntu_share\programming\C++\library\zmq\czmq\czmq-2.0.3_bak\builds\msvc\zfile.obj
1 1 czmq_selftest
Error 22 error LNK2019: unresolved external symbol _zchunk_new referenced
in function _zfile_test
D:\ubuntu_share\programming\C++\library\zmq\czmq\czmq-2.0.3_bak\builds\msvc\zfile.obj
1 1 czmq_selftest
Error 23 error LNK1120: 19 unresolved externals
D:\ubuntu_share\programming\C++\library\zmq\czmq\czmq-2.0.3_bak\builds\msvc\Win32\Debug\czmq_selftest.exe
czmq_selftest
___
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev


Re: [zeromq-dev] zeromq-dev Digest, Vol 65, Issue 4

2013-05-08 Thread Pritesh Acharya
I tried ZMQ_EVENTS, it worked but not completely. I am only able to receive
few message and then the callback never hits.
I'm calling zmq_getsockopt with ZMQ_EVENTS twice. before zmq_recv and
after. Here is the complete code snippet of callback.

static char * zmq_msg_recv_all(evutil_socket_t fd, short event, void
*receiver)
{
char *msg = NULL;

unsigned int zmq_events;
size_t   zmq_events_size  = sizeof(zmq_events);
zmq_getsockopt (receiver, ZMQ_EVENTS, zmq_events, zmq_events_size);

if (zmq_events  ZMQ_POLLIN)
{
msg=calloc(1024,sizeof(char));
int size = zmq_recv (receiver, msg, 255, ZMQ_DONTWAIT);

if (size != -1) {
#ifdef DEBUG
printf(msg = %s\n,msg);
#endif
}
else
{
free(msg);
msg=NULL;
}
zmq_getsockopt (receiver, ZMQ_EVENTS, zmq_events, zmq_events_size);
}
return msg;
}


 you need to read the man page about ZMQ_FD and ZMQ_EVENTS

 http://api.zeromq.org/3-2:zmq-getsockopt

 in short, once ZMQ_FD is readable you need to look at ZMQ_EVENTS and
 consume all messages
 until ZMQ_EVENTS is clear

 jon



 On 3 May 2013 11:01, Pritesh Acharya priteshacha...@gmail.com wrote:

  I'm writing a service in C programming using libevent and zmq. Msg is
  pushed from python code to C service using PUSH-PULL pattern.
 
  fd received from zmq socket:
 
  void *receiver = zmq_socket (base.zmq_ctx, ZMQ_PULL);
  zmq_connect (receiver, tcp://localhost:5557);int fd=0;size_t fd_len =
 sizeof(fd);
  zmq_getsockopt (receiver, ZMQ_FD, fd, fd_len);
 
   Using Libevent, event registered with fd for persistent read
 
  struct event *read_data_on_zmq =event_new(base.evbase, fd, EV_READ |
 EV_PERSIST , read_data_on_zmq_cb,receiver);
  event_add(read_data_on_zmq,NULL);
  event_base_dispatch(base.evbase);
 
   On the callback method I'm doing a non-blocking receive
 
  void read_data_on_zmq_cb(evutil_socket_t fd, short what, void *arg){
  char *msg = calloc(1024,sizeof(char));
  int size = zmq_recv (receiver, msg, 255, ZMQ_DONTWAIT);
  if (size != -1)
  {
  puts (is size is not -1);
  printf(msg = %s\n,msg);
  }}
 
  In the python code I'm continuously sending message to the socket.
 
  import zmqimport time
 
  c=zmq.Context()
  s=c.socket(zmq.PUSH)
  s.bind('tcp://127.0.0.1:5557')while(True):
  s.send(abc)
  time.sleep(2)
 
   The problem is I'm only able to receive the message once, after that the
  event callback never gets hit. If I do zmq_connect inside the
  read_data_on_zmq_cb after zmq_recv, then it works fine, but I guess that
 is
  redundant and not the correct way to do it. What is the problem here?
 
  ___
  zeromq-dev mailing list
  zeromq-dev@lists.zeromq.org
  http://lists.zeromq.org/mailman/listinfo/zeromq-dev
 
 
 -- next part --
 An HTML attachment was scrubbed...
 URL:
 http://lists.zeromq.org/pipermail/zeromq-dev/attachments/20130503/9444f03d/attachment-0001.htm

 --

___
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev


Re: [zeromq-dev] libevent kqueue doesn't work on fd returned from zmq_getsockopt()

2013-05-08 Thread Pritesh Acharya
I tried ZMQ_EVENTS, it worked but not completely. I am only able to receive
few message and then the callback never hits.
I'm calling zmq_getsockopt with ZMQ_EVENTS twice. before zmq_recv and
after. Here is the complete code snippet of event callback method.

static char * zmq_msg_recv_all(evutil_socket_t fd, short event, void
*receiver)
{
char *msg = NULL;

unsigned int zmq_events;
size_t   zmq_events_size  = sizeof(zmq_events);
zmq_getsockopt (receiver, ZMQ_EVENTS, zmq_events, zmq_events_size);

if (zmq_events  ZMQ_POLLIN)
{
msg=calloc(1024,sizeof(char));
int size = zmq_recv (receiver, msg, 255, ZMQ_DONTWAIT);

if (size != -1) {
#ifdef DEBUG
printf(msg = %s\n,msg);
#endif
}
else
{
free(msg);
msg=NULL;
}
zmq_getsockopt (receiver, ZMQ_EVENTS, zmq_events, zmq_events_size);
}
return msg;
}

 --

 Message: 3
 Date: Fri, 3 May 2013 11:07:42 +0100
 From: Jon Dyte j...@totient.co.uk
 Subject: Re: [zeromq-dev] libevent kqueue doesn't work on fd returned
 fromzmq_getsockopt()
 To: ZeroMQ development list zeromq-dev@lists.zeromq.org
 Message-ID:
 
 caggrmhom1t0ydvhakdfemo5smd6l74qc1zsvcdhhpi5typz...@mail.gmail.com
 Content-Type: text/plain; charset=iso-8859-1

 you need to read the man page about ZMQ_FD and ZMQ_EVENTS

 http://api.zeromq.org/3-2:zmq-getsockopt

 in short, once ZMQ_FD is readable you need to look at ZMQ_EVENTS and
 consume all messages
 until ZMQ_EVENTS is clear

 jon



 On 3 May 2013 11:01, Pritesh Acharya priteshacha...@gmail.com wrote:

  I'm writing a service in C programming using libevent and zmq. Msg is
  pushed from python code to C service using PUSH-PULL pattern.
 
  fd received from zmq socket:
 
  void *receiver = zmq_socket (base.zmq_ctx, ZMQ_PULL);
  zmq_connect (receiver, tcp://localhost:5557);int fd=0;size_t fd_len =
 sizeof(fd);
  zmq_getsockopt (receiver, ZMQ_FD, fd, fd_len);
 
   Using Libevent, event registered with fd for persistent read
 
  struct event *read_data_on_zmq =event_new(base.evbase, fd, EV_READ |
 EV_PERSIST , read_data_on_zmq_cb,receiver);
  event_add(read_data_on_zmq,NULL);
  event_base_dispatch(base.evbase);
 
   On the callback method I'm doing a non-blocking receive
 
  void read_data_on_zmq_cb(evutil_socket_t fd, short what, void *arg){
  char *msg = calloc(1024,sizeof(char));
  int size = zmq_recv (receiver, msg, 255, ZMQ_DONTWAIT);
  if (size != -1)
  {
  puts (is size is not -1);
  printf(msg = %s\n,msg);
  }}
 
  In the python code I'm continuously sending message to the socket.
 
  import zmqimport time
 
  c=zmq.Context()
  s=c.socket(zmq.PUSH)
  s.bind('tcp://127.0.0.1:5557')while(True):
  s.send(abc)
  time.sleep(2)
 
   The problem is I'm only able to receive the message once, after that the
  event callback never gets hit. If I do zmq_connect inside the
  read_data_on_zmq_cb after zmq_recv, then it works fine, but I guess that
 is
  redundant and not the correct way to do it. What is the problem here?
 
  ___
  zeromq-dev mailing list
  zeromq-dev@lists.zeromq.org
  http://lists.zeromq.org/mailman/listinfo/zeromq-dev
 
 
 -- next part --
 An HTML attachment was scrubbed...
 URL:
 http://lists.zeromq.org/pipermail/zeromq-dev/attachments/20130503/9444f03d/attachment-0001.htm

 --

___
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev


[zeromq-dev] libevent kqueue doesn't work on fd returned from zmq_getsockopt()

2013-05-03 Thread Pritesh Acharya
I'm writing a service in C programming using libevent and zmq. Msg is
pushed from python code to C service using PUSH-PULL pattern.

fd received from zmq socket:

void *receiver = zmq_socket (base.zmq_ctx, ZMQ_PULL);
zmq_connect (receiver, tcp://localhost:5557);int fd=0;size_t fd_len
= sizeof(fd);
zmq_getsockopt (receiver, ZMQ_FD, fd, fd_len);

Using Libevent, event registered with fd for persistent read

struct event *read_data_on_zmq =event_new(base.evbase, fd, EV_READ |
EV_PERSIST , read_data_on_zmq_cb,receiver);
event_add(read_data_on_zmq,NULL);
event_base_dispatch(base.evbase);

On the callback method I'm doing a non-blocking receive

void read_data_on_zmq_cb(evutil_socket_t fd, short what, void *arg){
char *msg = calloc(1024,sizeof(char));
int size = zmq_recv (receiver, msg, 255, ZMQ_DONTWAIT);
if (size != -1)
{
puts (is size is not -1);
printf(msg = %s\n,msg);
}}

In the python code I'm continuously sending message to the socket.

import zmqimport time

c=zmq.Context()
s=c.socket(zmq.PUSH)
s.bind('tcp://127.0.0.1:5557')while(True):
s.send(abc)
time.sleep(2)

The problem is I'm only able to receive the message once, after that the
event callback never gets hit. If I do zmq_connect inside the
read_data_on_zmq_cb after zmq_recv, then it works fine, but I guess that is
redundant and not the correct way to do it. What is the problem here?
___
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev


[zeromq-dev] ruby binding for zmq

2013-04-17 Thread Pritesh Acharya
I tried  rbzmq from https://github.com/zeromq but it doesn't install. I
think this binding is no longer support for newer zmq. When I looked around
i found ffi-rzmq is also ruby binding for zmq. I wanna know the difference
between gem zqm and ffi-zmq. Which one should I use ?
Thanks,
Pritesh
___
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev


[zeromq-dev] Confusion in the parallel pipe example

2013-04-09 Thread Pritesh Acharya
In the parallel pipe example,

zmq_bind (sender, tcp://*:5557);

zmq_connect (sink, tcp://localhost:5558);

and s_send (sink, 0);

s_send (sender, string);

how does the control continues in the first s_send and block on the second
s_send, when I haven't started sink on 5558 port.

?
___
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev


[zeromq-dev] Basic server.c example

2013-03-15 Thread Pritesh Acharya
Hi,
I'm running the first server.c example of zmq guide. Instead of using
client.c example to send message to server, I want to use some linux
command to do that.
I've tried several attempts like
1. $ echo “hello”  /dev/tcp/localhost/
2. nc localhost 
3. echo hello | socat - tcp4:localhost:

and several others. But nothing worked. If anyone could tell me if it's
possible to do that , if yes how?
Pritesh
___
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev