[zeromq-dev] segmentation fault with czmq

Shishir Pandey shishir.py at outlook.com
Tue Oct 8 03:01:20 CEST 2019


Hi

I am using the Ubuntu on windows subsystem for linux.

These are the libraries that I have installed:

libzmq3-dev/bionic-updates,bionic-security,now 4.2.5-1ubuntu0.2 amd64 [installed]
libzmq5/bionic-updates,bionic-security,now 4.2.5-1ubuntu0.2 amd64 [installed,automatic]


libczmq-dev/bionic,now 4.1.0-2 amd64 [installed]
libczmq4/bionic,now 4.1.0-2 amd64 [installed]


Thanks
--
sp


Date: Fri, 27 Sep 2019 11:54:34 +0200
From: Arnaud Loonstra <arnaud at sphaero.org>
To: zeromq-dev at lists.zeromq.org
Subject: Re: [zeromq-dev] segmentation fault with czmq
Message-ID: <69735669-5da6-5bce-ad2d-32e9d57ccc6e at sphaero.org>
Content-Type: text/plain; charset=windows-1252; format=flowed

What platform are you on and what versions of the libs are you using?

On 27-09-2019 01:22, Shishir Pandey wrote:
> Hi
> 
> I was trying to run the lpclient.c (lazie pirate, chapter 4,
> https://nam02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fzguid
> e.zeromq.org%2Fpage%3Aall%23Client-Side-Reliability-Lazy-Pirate-Patter
> n&data=02%7C01%7C%7Cc4def6b10ead43eba31408d7433180bc%7C84df9e7fe9f
> 640afb435aaaaaaaaaaaa%7C1%7C0%7C637051752197523692&sdata=dqN9M3y1k
> NVd6AtJgTMMu70jFYvEGcd6tRNAlGvxEs4%3D&reserved=0)
>  ??program from the guide. The program uses the old czmq API and does 
> not work. I was trying to run with the latest czmq library and change 
> the program to the following program :
> 
> #include<czmq.h>
> 
> #defineREQUEST_TIMEOUT2500//?msecs,?(>1000!)
> 
> #defineREQUEST_RETRIES3//?Before?we?abandon
> 
> #defineSERVER_ENDPOINT"tcp://localhost:5555"
> 
> intmain()
> 
> {
> 
> zsock_t?*client?= zsock_new_req(SERVER_ENDPOINT);
> 
> printf("I:?Connecting?to?server...\n");
> 
> assert(client);
> 
> int?sequence?= 0;
> 
> int?retries_left?=?REQUEST_RETRIES;
> 
> printf("Entering?while?loop...\n");
> 
> while(retries_left) //?interrupt?needs?to?be?handled
> 
>  ????{
> 
> //?We?send?a?request,?then?we?get?a?reply
> 
> charrequest[10];
> 
> sprintf(request, "%d",?++sequence);
> 
> zstr_send(client,?request);
> 
> int?expect_reply?= 1;
> 
> while(expect_reply)
> 
>  ????????{
> 
> printf("Expecting?reply....\n");
> 
> zmq_pollitem_t?items []?=?{{client, 0,?ZMQ_POLLIN, 0}};
> 
> printf("After?polling\n");
> 
> int?rc?= zmq_poll(items, 1,?REQUEST_TIMEOUT?*?ZMQ_POLL_MSEC);
> 
> printf("Polling?Done.. \n");
> 
> if?(rc?==?-1)
> 
> break; //?Interrupted
> 
> //?Here?we?process?a?server?reply?and?exit?our?loop?if?the
> 
> //?reply?is?valid.?If?we?didn't?get?a?reply?we?close?the
> 
> //?client?socket,?open?it?again?and?resend?the?request.?We
> 
> //?try?a?number?times?before?finally?abandoning:
> 
> if?(items[0].revents?&?ZMQ_POLLIN)
> 
>  ????????????{
> 
> //?We?got?a?reply?from?the?server,?must?match?sequence
> 
> char?*reply?= zstr_recv(client);
> 
> if(!reply)
> 
> break; //?interrupted
> 
> if?(atoi(reply)?==?sequence)
> 
>  ????????????????{
> 
> printf("I:?server?replied?OK?(%s)\n",?reply);
> 
>  ????????????????????retries_left=REQUEST_RETRIES;
> 
>  ????????????????????expect_reply?= 0;
> 
>  ????????????????}
> 
> else
> 
>  ????????????????{
> 
> printf("E:?malformed?reply?from?server:?%s\n",?reply);
> 
>  ????????????????}
> 
> free(reply);
> 
>  ????????????}
> 
> else
> 
>  ????????????{
> 
> if(--retries_left?== 0)
> 
>  ????????????????{
> 
> printf("E:?Server?seems?to?be?offline,?abandoning\n");
> 
> break;
> 
>  ????????????????}
> 
> else
> 
>  ????????????????{
> 
> printf("W:?no?response?from?server,?retrying...\n");
> 
> zsock_destroy(&client);
> 
> printf("I:?reconnecting?to?server...\n");
> 
>  ????????????????????client?= zsock_new_req(SERVER_ENDPOINT);
> 
> zstr_send(client,?request);
> 
>  ????????????????}
> 
>  ????????????}
> 
>  ????????}
> 
> zsock_destroy(&client);
> 
> return0;
> 
>  ????}
> 
> }
> 
> I get a segmentation fault on line ? ? int rc = zmq_poll(item?.? 
> Wasn?t able to fix it, could some one help me with this?
> 
> Thanks.
> 
> --
> 
> sp




More information about the zeromq-dev mailing list