[zeromq-dev] is pgm transport working in alpha3?

Pavol Malosek malosek at fastmq.com
Thu Nov 5 22:34:59 CET 2009


This bug was solved few weeks ago (commit 39d915de)
Here is the patch against alpha3

--- zeromq-2.0-alpha3-orig/src/pgm_receiver.cpp 2009-09-23 11:44:50.000000000 +0200
+++ zeromq-2.0-alpha3/src/pgm_receiver.cpp      2009-11-05 23:18:36.000000000 +0100
@@ -153,7 +153,6 @@
         // information (sizeof uint16_t).
         raw_data +=  sizeof (uint16_t);
         nbytes -= sizeof (uint16_t);
-        zmq_assert (apdu_offset <= nbytes);

         //  New peer.
         if (it == peers.end ()) {
@@ -174,6 +173,7 @@
         //  Now is the possibility to join the stream.
         if (!it->second.joined) {

+            zmq_assert (apdu_offset <= nbytes);
             zmq_assert (it->second.decoder == NULL);

             //  We have to move data to the begining of the first message.

Thanks for the report anyway!


  ----- Original Message ----- 
  From: Yuri Finkelstein 
  To: Pavol Malosek 
  Sent: Thursday, November 05, 2009 8:40 PM
  Subject: Re: [zeromq-dev] is pgm transport working in alpha3?

  Another issue. This works:

  -bash-3.2$ ./perf/c/local_thr "udp://;" 1024 10
  message size: 1024 [B]
  message count: 10
  mean throughput: 1250000 [msg/s]
  mean throughput: 10240.000 [Mb/s]

  But this doesn't:
  -bash-3.2$ ./perf/c/local_thr "udp://;" 1024 100
  Assertion failed: apdu_offset <= nbytes (pgm_receiver.cpp:156)

  On Thu, Nov 5, 2009 at 11:07 AM, Yuri Finkelstein <yurif2005 at gmail.com> wrote:

    Thanks! Indeed, if I lower the message size and count the setup below works. 
    I'm not sure what role does this pgm bug/feature play in it, but one thing looks fairly sure to me: in perf samples, the pgm_rate has to be derived from the message size and count supplied on the command line rather then being set to a constant. 

    Also, printing a meaningful error text on stderr in case of r c!= 0 would be a very good idea :)


    On Thu, Nov 5, 2009 at 2:52 AM, Pavol Malosek <malosek at fastmq.com> wrote:

      Hello Yuri,

      There was a bug/feature in OpenPGM rate limiter which could cause the problem you are describing.

      Since 0MQ II default rate for PGM is 100kb/s try to increase it
      add in your remote/local_thr.cpp
      //  Add your socket options here. 
      //  For example ZMQ_RATE, ZMQ_RECOVERY_IVL and ZMQ_MCAST_LOOP for PGM.
      uint64_t pgm_rate = 50000; // 50Mb/s
      int rc = zmq_setsockopt (s, ZMQ_RATE, &pgm_rate, sizeof (pgm_rate));
      assert (rc == 0);


      Yes you are right, in 0MQ II there is no zmq_server at all.


        ----- Original Message ----- 
        From: Yuri Finkelstein 
        To: zeromq-dev at lists.zeromq.org 
        Sent: Wednesday, November 04, 2009 11:26 PM
        Subject: [zeromq-dev] is pgm transport working in alpha3?

        I'm trying to run the perf test using openpgm multicast and can't get it to work:

        machine 1: 

         sudo ./perf/cpp/local_thr "udp://eth0;" 1024 100000

        machine 2
         sudo ./perf/cpp/remote_thr "udp://eth0;" 1024 100000

        the remote_thr process exits silently after few seconds.

        Some time after that tje local_thr process reports:
        ** (process:32674): WARNING **: peer expired, tsi

        No evidence ot packets sent or received. The same works with TCP as expected.

        I tried pgm:// with the same result.

        I do see both processes joining multicast group on their boxes using netstat -g.

        Documentation for 1.0 version says that zmq_server needs to be running in the background for multicast to work. But in 2.0 alpha there is no such process needed anymore. Right?

        What's wrong here?



        zeromq-dev mailing list
        zeromq-dev at lists.zeromq.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20091105/f5626024/attachment.htm>

More information about the zeromq-dev mailing list