Wednesday February 2, 2011

[Time] NameMessage
[08:54] efhache Hi everybody, just one question about zmq vs 2.0.7, it's possible there is a sort of memory leak? I use a simple "broker" that received message from a zmq socket and redispatch by an other zmq socket the message to the appropriate receiver
[08:56] efhache there is nothing else in this piece of soft that the zmq library... but memory consumption do not stop to increase...
[08:56] efhache I work under a linux with 2.4 kernel
[08:59] sustrik efhache: it's an outdated version, so yes, it's possible there's a memory leak there that have been fixed in the meantime
[08:59] sustrik check ChangeLog
[09:00] sustrik the other possibility is that publisher(s) are simply publishing faster then consumer(s) consume
[09:01] efhache sustrik : I see in changelog that there was a memory leak problem with REQ socket, but I don't use REQ
[09:01] efhache sustrik : there is a possibility to "view" the total message in queue ?
[09:02] efhache sustrik : to be sure that the publisher don't publish faster than consumer ?
[09:02] sustrik nope
[09:02] sustrik you can limit the queue size
[09:02] sustrik use ZMQ_HWM option
[09:04] efhache ok I will see the man page
[09:04] efhache thanks sustrik
[09:08] efhache sustrik : have you a example to use ZMQ_HWM with a REP/PUB socket ?
[09:08] sustrik man setsockopt
[09:28] suzan_shakya socket(zmq.PUB) can bind to multiple ipc sockets. Is this a feature or a bug ?
[09:30] mikko suzan_shakya: feature
[09:31] suzan_shakya mikko: can multiple publisher and multiple subscriber can be implemented using this feature ?
[09:32] mikko suzan_shakya: what do you mean? a single publisher that publishes using multiple endpoints?
[09:34] suzan_shakya mikko: i need to implement multiple publisher and multiple subscriber. Multiple subscriber can simply be implemented. In addition to multi sub, i need multi pub, so that all subscriber gets the message of all the publishers
[09:35] sustrik you can either connect each sub to each pub, or more sanely, use a forwarder device in the middle
[09:35] mikko suzan_shakya: you can a) have subscriber connect to all publishers b) have a device that connects to ..
[09:35] mikko martin answered it already
[09:35] sustrik :)
[09:36] suzan_shakya mikko: I want to implement that without any device
[09:36] mikko suzan_shakya: a device in zeromq is just a lightweight process, not a hardware device
[09:36] suzan_shakya mikko: ya i know
[09:37] mikko in that case you can just connect all subscribers to all publishers
[09:37] suzan_shakya mikko: that device is a separate process, right ?
[09:37] mikko it can be
[09:40] suzan_shakya mikko: i got it, thanks :)
[09:41] efhache In the future, a pdf version or a book version of the 0MQ Guide will be available ??
[09:42] sustrik efhache: try asking on the mailing list
[09:42] sustrik pieter may know a way to convert it into a pdf
[09:45] efhache sustrik : ok... I recome with another question about setsockopt() function... It's possible to assing more than just one option? may be with two, three or more line with setsockopt() ???
[09:45] sustrik sure
[09:45] sustrik you can set all settable options
[09:45] sustrik no problem
[09:46] efhache ok thanks
[10:56] CIA-21 zeromq2: 03Martin Sustrik 07sub-forward * re156f09 10/ src/trie.cpp :
[10:56] CIA-21 zeromq2: trie_t::rm returns true only if it actually removes the subscription
[10:56] CIA-21 zeromq2: Signed-off-by: Martin Sustrik <> -
[13:03] noj hello. I'm seeing a crash in ZeroMQ 2.0.10 compiled under Win32 with zmq::poll(). it crashes on notify_fd = app_thread->get_signaler ()->get_fd (); the signaler seems corrupt. what am I doing wrong?
[13:05] noj nevermind. I supplied the address of the socket in my pollitem_t structure
[16:54] mikko howdy
[17:31] stockMQ Hi .. anyone any experience with R6010 - abort() has been called on VC++
[17:32] stockMQ It is a multi threaded app
[17:32] stockMQ There are two threads say A and B receiving from two sockets
[17:33] stockMQ then A and B both has a publisher bound to a TCP end point and a PGM end point
[17:33] stockMQ I get this only if the combination is a TCP and PGM
[17:33] stockMQ no problem with two TCPs
[17:34] mikko sounds like hitting an assertion
[17:34] mikko i would assume abort() gets invoked after assertion failure
[17:34] mikko never used PGM with windows
[17:35] stockMQ yeahh.. seems like something involving openPGM
[17:36] stockMQ checking now with combination of PGM and PGM
[17:36] stockMQ i mean epgm and epgm
[17:37] stockMQ the error
[17:37] mikko ->
[17:41] stockMQ I meant i got the same abort
[17:43] stockMQ After much testing the pattern i see is that i get this error if there are more than one epgm within the same process but each in a distinct thread
[17:43] stockMQ or more than one epgm in the same thread
[17:48] stockMQ Will it be better if on receiving data in thread A and B ,i send it through a common PUB instead of one PUB for each thread
[17:49] cremes stockMQ: no, don't share the same pub socket between 1+ threads
[17:49] cremes the rule is 1 socket per thread
[17:50] stockMQ ok
[17:52] stockMQ right now the two threads are sharing the same context
[17:55] cremes that should be okay; 99% of programs will only ever need a single context
[23:37] mikko Steve-o: hi
[23:37] mikko got my email?
[23:39] mikko i see you did
[23:39] Steve-o :P
[23:41] Steve-o I think I noticed it was debug build before
[23:41] mikko i replied to your email
[23:41] mikko not sure how to check that with .libs
[23:41] mikko but dependency walker shows it on dlls
[23:42] Steve-o I guess I should look at DLL again sometime
[23:43] Steve-o CMake is broken on executables and dlls for some reason
[23:43] Steve-o as I wanted to include purinrecv.exe and purinsend.exe in the package
[23:45] Steve-o still working on ticket spinlocks which will help Windows a bit
[23:46] Steve-o idea being to avoid API calls that include context switches to the kernel
[23:46] Steve-o critical sections don't, but regular Windows mutexes do
[23:46] Steve-o rw locks are vista+ only
[23:47] mikko
[23:47] mikko building now
[23:48] mikko there is now the WithOpenPGM target in the MSVC build which you can easily use to create "With OpenPGM release builds". It expects to find OpenPGM in ..\OpenPGM (one dir up from zeromq dir)
[23:49] mikko i think i had another question for you as well regarding the openpgm autoconf builds. what was the reason for LT_PREREQ([2.2]) in
[23:50] Steve-o just to match the versions on ubuntu 10.10
[23:50] Steve-o then I ran os OSX 10.6.5/6 and lowered the numbers for it working there
[23:51] Steve-o I had to fix the autoconf 11 parts for silent building
[23:51] Steve-o are there platforms it fails on?
[23:51] mikko debian stable
[23:51] mikko libtool 1.5
[23:52] mikko probably rhel as well
[23:52] Steve-o ok
[23:52] Steve-o if you change the version to 1.5 or remove the line does it build correctly?
[23:53] mikko i remved the line and added AC_PROG_LIBTOOL invocation
[23:53] mikko not sure if that is mandatory
[23:53] mikko but yes, builds properly
[23:53] Steve-o I need to update CMakeLists.txt and to remove the hard coded version numbers
[23:53] mikko just reading about how to statically link libtool archive
[23:54] mikko
[23:54] Steve-o I cannot use a on stock Windows without Cygwin
[23:54] mikko there we go, seems to be fully functional release dll
[23:54] Steve-o nice, good job
[23:54] mikko version.bat ?
[23:54] mikko :)
[23:54] Steve-o well I was thinking of using perl or python
[23:55] mikko ill remove the earlier snapshots as they are varying quality and build configurations
[23:55] Steve-o after I have detected they exist
[23:57] Steve-o the libtool/autoconf/automake documentation changes a lot on its recommendations
[23:57] Steve-o I tried to go with the latest spec
[23:57] Steve-o I think 0mq is a bit behind
[23:58] mikko it's possible because we target for as wide as possible audience
[23:59] mikko or at least try to
[23:59] Steve-o its perverse because you can go with the latest version in repo as long as you ship all the configure scripts in release