[Time] Name | Message |
[00:09] un-saad
|
hi folks. quick question: does zeromq support an offline mode?
|
[00:10] un-saad
|
root question: can it be used to support mostly connected kiosks?
|
[00:11] un-saad
|
frigg request a CTCP version. they still do that? :)
|
[04:40] jurgen
|
hello, my name is Jurgen and i have some questions regarding 0mq
|
[04:41] jurgen
|
who could help me to answer some questions related to 0mq sockets
|
[04:44] jurgen
|
i have joined using xchat
|
[04:45] jurgen
|
anyone here to help me a bit on 0mq sockets ?
|
[05:16] andrewvc
|
yo
|
[05:16] andrewvc
|
i might be able to help
|
[05:16] jurgen
|
hi andrew
|
[05:17] jurgen
|
thanks man, i maybe in a unique time zone here, so i was thinking everyone is asleep
|
[05:17] jurgen
|
i'm in Shanghai - China
|
[05:17] jurgen
|
I have a question on how 0MQ is managing it's connections
|
[05:17] andrewvc
|
oh wow, hehe
|
[05:17] andrewvc
|
sure
|
[05:18] jurgen
|
i can explain a bit on the scenario so that you might tell me how 0MQ should be used
|
[05:18] andrewvc
|
sure
|
[05:19] jurgen
|
I have implemented a (Symphony) P2P topology using TCP/IP directly
|
[05:19] jurgen
|
the topology consists of nodes
|
[05:19] delaney
|
btw, thanks andrewvc for the other day, i grok the general workflow now
|
[05:19] andrewvc
|
oh sweet
|
[05:19] jurgen
|
every node has a maximum of around 10 connections
|
[05:20] andrewvc
|
I'm not familiar with Symphony I should say
|
[05:20] jurgen
|
and one requirement is that i know which nodes are connecting and disconnecting
|
[05:20] andrewvc
|
ah
|
[05:21] andrewvc
|
I see, so you need to really track the state of all nodes, and you don't want ZMQ to delegate requests
|
[05:21] jurgen
|
with 0MQ i do not seem to find if it can tell which connections cannot be established or have been terminated
|
[05:21] jurgen
|
i could do it with alive messages
|
[05:21] andrewvc
|
that's what you'll actually have to do
|
[05:21] jurgen
|
but that would add traffic
|
[05:21] andrewvc
|
yep
|
[05:21] jurgen
|
:-(
|
[05:22] jurgen
|
bummer
|
[05:22] andrewvc
|
well
|
[05:22] andrewvc
|
hmmm
|
[05:22] andrewvc
|
so, have you looked into the section on routers for xreq/xrep
|
[05:22] jurgen
|
at what moment does 0MQ actually connect?
|
[05:22] andrewvc
|
well, in the TCP sense I assume
|
[05:22] jurgen
|
yes
|
[05:23] andrewvc
|
as far as I know it connects when you call connect
|
[05:23] andrewvc
|
but it can reconnect transparently if there's network troubles
|
[05:23] guido_g
|
hi
|
[05:23] andrewvc
|
additionally, even if there's nothing to bind to, connect will succeed, and it'll keep retrying to connect till what it's trying to connect to comes up
|
[05:23] jurgen
|
hmmm, so if in some way 0mq could tell me the status of the connection
|
[05:23] guido_g
|
connect will return before the connection is established
|
[05:24] jurgen
|
yes, it is as far as i know a delayed connect
|
[05:24] guido_g
|
exactly
|
[05:24] jurgen
|
thanks guido
|
[05:24] guido_g
|
you don't know if and when ømq tries to do the actual connect
|
[05:24] jurgen
|
and that brings me to the other point is, that there is no 'disconnect'
|
[05:24] guido_g
|
same for close/shutdown
|
[05:25] guido_g
|
you've to close the whole ømq socket
|
[05:25] delaney
|
no, they expect you'll hanlde it at the app layer basically from what i've seen
|
[05:25] andrewvc
|
yes
|
[05:25] jurgen
|
personally i really love the setup of 0mq
|
[05:25] delaney
|
there is a high water mark per socket connection so if you hit that then it drops
|
[05:26] jurgen
|
i think i will dive into it and see how to add disconnect and a status retrieval
|
[05:26] guido_g
|
delaney__: or blocks, depends on socket type
|
[05:26] delaney
|
right, i meant with xrep
|
[05:26] guido_g
|
jurgen_: if you will get this through, i owe you a beer or three :)
|
[05:26] delaney
|
jurgen_ i've been asking the same questions for my project
|
[05:27] jurgen
|
hey guido, where are you located ?
|
[05:27] jurgen
|
Belgium ?
|
[05:27] guido_g
|
nope
|
[05:27] guido_g
|
hamburg
|
[05:27] guido_g
|
germany
|
[05:27] jurgen
|
Ah, german beer
|
[05:27] jurgen
|
sounds good
|
[05:27] andrewvc
|
btw, jurgen__, have you read the guide section on routers/dealers?
|
[05:27] jurgen
|
yes, i have read it yesterday and this morning
|
[05:27] andrewvc
|
ah, cool
|
[05:28] jurgen
|
i wouldn't say i completely see the light
|
[05:29] guido_g
|
it takes a while to adjust to the ømq way of thinking
|
[05:29] jurgen
|
but i get a sense of what it does
|
[05:29] guido_g
|
problem is, if you've done networkprogramming before, it's in the way a bit
|
[05:29] jurgen
|
the thing is that my topology is dynamic, nodes come and go
|
[05:29] jurgen
|
i have done network programming now for 4 weeks :-)
|
[05:30] guido_g
|
this is a known limitation of ømq, you don't know which node is connected to a socket
|
[05:30] jurgen
|
but i am in the Game Industry for 11 years
|
[05:30] guido_g
|
gaming
|
[05:30] guido_g
|
here is another guy doing gaming with ømq
|
[05:31] jurgen
|
yeah, C++ software engineer
|
[05:31] guido_g
|
i mean here in the channel
|
[05:31] delaney
|
well i'm a game guy
|
[05:31] jurgen
|
i am trying to create a P2P topology
|
[05:31] andrewvc
|
correct me if I'm wrong, but isn't the router/dealer topology there for situations where you need explicit routing control and knowledge of the aliveness of connected stuff
|
[05:31] guido_g
|
i'd p2p is not the best use-case for ømq
|
[05:31] guido_g
|
*i'd say
|
[05:31] jurgen
|
to andrewvc: yes, the router/dealer is for a known topology
|
[05:31] delaney
|
yep... we already have a xreq/xrep setup working andrewvc with c++ clients and python backend
|
[05:32] jurgen
|
to andrewvc: as far as i understand it
|
[05:32] guido_g
|
andrewvc: no, because you don't know if a node is connected to a socket at the moment or not
|
[05:32] delaney
|
actually jurgen_ router/dealer is working for our game
|
[05:32] andrewvc
|
well, yes, but you can build that on top I meant
|
[05:32] delaney
|
cause its bi-directional and we already have timeout for sockets that don't send a message in a given time
|
[05:32] guido_g
|
sure, but it'll be clumsy
|
[05:32] andrewvc
|
and then only route to stuff you know exists. But then you're kinda reimplementing a lot of TCP stuff (keep alive for instance)
|
[05:33] guido_g
|
right
|
[05:33] jurgen
|
for the p2p topology i need a messaging layer + a seed/leech layer (heavy upload/download traffic, using UDT library)
|
[05:33] guido_g
|
but if enough people request this feature it might appear in the future
|
[05:33] delaney
|
heh, was asking about UDP yesterday :P
|
[05:34] jurgen
|
0mq is offering so much more, inter-process, multi theading etc... it is hard to not use it
|
[05:34] guido_g
|
delaney__: unicast-udp?
|
[05:34] guido_g
|
delaney__: may i ask what your use-case is?
|
[05:34] jurgen
|
UDT = http://udt.sourceforge.net/
|
[05:34] delaney
|
its wasn't my use case, its was an rts
|
[05:35] guido_g
|
ahh i see
|
[05:35] jurgen
|
This is what i have build with simple TCP/IP: http://ast-deim.urv.cat/wiki/Symphony
|
[05:35] delaney
|
ours is a turn based that looks real time, so its tcp was hopefully 1000s of games going on a single box (but zeromq makes scaling a probabilty to multiple machines)
|
[05:36] delaney
|
well jurgen_ before you get UDT zmq needs to do UDP it looks like
|
[05:37] jurgen
|
not really
|
[05:37] jurgen
|
the p2p topology can be done with simple messaging
|
[05:38] jurgen
|
the upload/download between nodes of files is the second purpose, for this i need fast upload/download speed, that is where UDT can help
|
[05:39] guido_g
|
hmmm... seems that tcp isn't the best choice for p2p
|
[05:39] guido_g
|
lots of connections
|
[05:41] jurgen
|
when the topology changes (1 or more nodes leave/join) then some connections get dropped and some get established
|
[05:41] jurgen
|
it is actually not a lot of connections that are cut/dropped
|
[05:42] guido_g
|
i meant active connections, from each node to a lot of other nodes
|
[05:42] guido_g
|
not the best case for tcp
|
[05:44] delaney
|
i don't know WOW works completely on tcp and they have quite a few people connected all the tim e
|
[05:45] guido_g
|
sure, you can handle a few thousand tcp connections doing approx. 4kb/sec on one large box
|
[05:45] jurgen
|
the overhead is in creating and destroying a TCP/IP connection
|
[05:45] guido_g
|
but thinking about p2p it'S going to work
|
[05:45] delaney
|
ah, good point
|
[05:45] guido_g
|
*it's not going to work
|
[05:46] delaney
|
so would pub/sub work for him?
|
[05:46] jurgen
|
my scenerio is limited to a max of 512 nodes
|
[05:46] guido_g
|
think alone of incomming connections and packet filters
|
[05:46] delaney
|
and then a req/rep whn you see something you want?
|
[05:46] guido_g
|
delaney__: youn still need a connection to the node
|
[05:47] delaney
|
so multicast?
|
[05:47] guido_g
|
this will over time connect to a high number of nodes
|
[05:47] jurgen
|
every node has an average of 10 connections
|
[05:47] guido_g
|
multicast doesn't work on the internet
|
[05:47] delaney
|
for 10 tcp is fine no?
|
[05:47] guido_g
|
if the firewall permits it
|
[05:48] jurgen
|
is it possible to drop images here in XChat ?
|
[05:48] guido_g
|
no
|
[05:48] guido_g
|
irc is text only
|
[05:49] delaney
|
you can use imageshack or something
|
[05:50] guido_g
|
problem i see with p2p using tcp is that connections from the outside need to be allowed
|
[05:50] guido_g
|
packet filters will go berserk if you try this
|
[05:51] guido_g
|
beeing p2p you can't even allow an ip or ip range to connect, because the ips are basically random
|
[05:51] delaney
|
what are you suggesting then for his case?
|
[05:52] guido_g
|
either a more centralized architecture
|
[05:52] guido_g
|
using only outgoing connections for the nodes
|
[05:52] guido_g
|
(the game clients i assume)
|
[05:52] guido_g
|
urgs...
|
[05:52] jurgen
|
well it is not for a game
|
[05:52] guido_g
|
there is no other solution
|
[05:52] jurgen
|
:-)
|
[05:53] guido_g
|
ahhh, but for clients on the internet, not on a controlled network?
|
[05:55] jurgen
|
I am trying to build this (slurpie, slurpie.sourceforge.net) but using Symphony as the topology
|
[05:55] guido_g
|
with udp you could do the skype trick to foole most packet filters http://www.h-online.com/security/features/How-Skype-Co-get-round-firewalls-747197.html
|
[05:56] guido_g
|
why not one of the open source p2p protocols?
|
[06:06] jurgen
|
here is a screenshot of a Symphony topology: http://picasaweb.google.com/100898468756478508796
|
[06:07] jurgen
|
this is from my C# application simulating N number of nodes, you can add and remove nodes dynamically
|
[06:08] jurgen
|
last week i finished my prototype in C++ with boost and UDT (UDP library) and it is working
|
[06:08] jurgen
|
but it is very rough
|
[06:08] jurgen
|
ok, thanks so far for your help guys, i will dig into 0MQ and see if i can add stuff
|
[06:09] guido_g
|
good luck then
|
[06:09] jurgen
|
maybe even UDP/UDT, but first i want to see if i can add disconnect/status on a socket
|
[06:10] guido_g
|
would be great :)
|
[06:12] jurgen
|
thanks
|
[08:19] sustrik
|
does anyone have experience with UDT here?
|
[08:20] sustrik
|
i keep bumping into it occasionally
|
[08:20] sustrik
|
would it make a good transport for 0mq?
|
[08:24] mikko
|
good morning
|
[08:25] mikko
|
sustrik: based on the description it looks interesting
|
[08:25] sustrik
|
it's there for several years
|
[08:25] mikko
|
BSD license as well
|
[08:25] sustrik
|
looks like a quite stable project
|
[08:26] sustrik
|
transport for high-bandwidtgh, high-latency links
|
[08:26] sustrik
|
satelite links etc.
|
[08:26] sustrik
|
it would be good to speak to someone who actually used it
|
[08:26] mikko
|
http://sourceforge.net/projects/udt/forums
|
[08:26] mikko
|
?
|
[08:27] sustrik
|
:)
|
[08:27] sustrik
|
right
|
[08:27] sustrik
|
mikko: the fix, will you chenge the casts, or should I?
|
[08:27] mikko
|
sustrik: i can change
|
[08:27] mikko
|
icc also gives tons of remarks
|
[08:27] sustrik
|
ok, i'll commit the other two patches in the meantime
|
[08:28] mikko
|
it seems to be a lot more verbose than gcc
|
[08:28] sustrik
|
can you upload it somewhere?
|
[08:28] sustrik
|
gist?
|
[08:28] sustrik
|
or is it part of hudson already?
|
[08:28] sustrik
|
seen the icc license btw?
|
[08:29] mikko
|
i just read their 'non-commercial' FAQ
|
[08:29] mikko
|
not the full license
|
[08:29] sustrik
|
they've gave us full license
|
[08:29] sustrik
|
sent it yesterday
|
[08:30] mikko
|
ah, i have no internet at home and haven't made that far in email backlog
|
[08:30] mikko
|
i'll add the build to hudson
|
[08:30] sustrik
|
ok, you have it in your mailbox
|
[08:38] CIA-14
|
zeromq2: 03Mikko Koppanen 07master * re33e4d7 10/ (AUTHORS src/pipe.hpp):
|
[08:38] CIA-14
|
zeromq2: ICC related qualifier fix
|
[08:38] CIA-14
|
zeromq2: Signed-off-by: Mikko Koppanen <mkoppanen@php.net> - http://bit.ly/d6aafo
|
[08:41] mikko
|
sustrik: should i change just the local timeout to be int rather than the method signature?
|
[08:41] mikko
|
it seems that same pattern is present devpoll, kqueue and select as well
|
[08:42] sustrik
|
just local timeout
|
[08:42] sustrik
|
if possible, fix all of them (where applicable):
|
[08:42] sustrik
|
select
|
[08:42] sustrik
|
poll
|
[08:42] sustrik
|
epoll
|
[08:42] sustrik
|
devpoll
|
[08:42] sustrik
|
kqueue
|
[08:43] CIA-14
|
zeromq2: 03Mikko Koppanen 07master * re288f7a 10/ configure.in :
|
[08:43] CIA-14
|
zeromq2: Fixes build on Linux using Sun Studio compiler
|
[08:43] CIA-14
|
zeromq2: Signed-off-by: Mikko Koppanen <mkoppanen@php.net> - http://bit.ly/aNALk2
|
[08:43] mikko
|
what's preferred cpp cast? static_cast<int> or (int) ?
|
[08:44] sustrik
|
i'm using (int)
|
[08:44] sustrik
|
it's shorter :)
|
[08:47] mikko
|
http://valokuva.org:8080/job/ZeroMQ2_master_ICC/1/console
|
[08:47] mikko
|
let me prepare the patch
|
[08:51] sustrik
|
nice, /me is checking the output
|
[08:59] CIA-14
|
zeromq2: 03Martin Sustrik 07master * rb64b50a 10/ (src/pgm_receiver.cpp src/pgm_sender.cpp src/pgm_sender.hpp):
|
[08:59] CIA-14
|
zeromq2: Timers correctly canceled by PGM engines on shutdown.
|
[08:59] CIA-14
|
zeromq2: Signed-off-by: Martin Sustrik <sustrik@250bpm.com> - http://bit.ly/cVEmQ5
|
[09:22] CIA-14
|
zeromq2: 03Mikko Koppanen 07master * r3e74a43 10/ (5 files):
|
[09:22] CIA-14
|
zeromq2: Cast execute_timers() result to int
|
[09:22] CIA-14
|
zeromq2: Signed-off-by: Mikko Koppanen <mkoppanen@php.net> - http://bit.ly/aAk4P8
|
[09:25] mikko
|
sustrik: http://valokuva.org:8080/job/ZeroMQ2_master_ICC/4/console
|
[09:25] mikko
|
should build now
|
[09:33] CIA-14
|
zeromq2: 03Martin Sustrik 07master * r17b0785 10/ src/poller_base.hpp :
|
[09:33] CIA-14
|
zeromq2: Destructor of poller_base_t made virtual.
|
[09:33] CIA-14
|
zeromq2: Signed-off-by: Martin Sustrik <sustrik@250bpm.com> - http://bit.ly/a60xaJ
|
[09:33] CIA-14
|
zeromq2: 03Martin Sustrik 07master * r7b9e397 10/ src/devpoll.hpp :
|
[09:33] CIA-14
|
zeromq2: Minor fix in devpoll.hpp
|
[09:33] CIA-14
|
zeromq2: Signed-off-by: Martin Sustrik <sustrik@250bpm.com> - http://bit.ly/9b5d7X
|
[09:36] sustrik
|
mikko: nice
|
[09:36] sustrik
|
i'll try to get rid of at least some of the warnings
|
[09:39] mikko
|
ill get on with the -pedantic
|
[09:39] mikko
|
at some point
|
[11:49] mikko
|
autotools are such a joy
|
[11:51] sustrik
|
:)
|
[11:53] sustrik
|
mikko: btw, what about announcing the build dev publicly?
|
[11:54] sustrik
|
build env
|
[12:04] mikko
|
sustrik: yeah, it seems fairly stable at the moment. hopefully the server can handle the load if all lurkers from the list rush in
|
[12:05] sustrik
|
let's try it then
|
[12:05] sustrik
|
presumably a link from zeromq.org & an announcement link
|
[12:06] sustrik
|
btw, you may also consider doing some self-promotion on the build env site
|
[12:07] sustrik
|
"this build env is brought to you by mikko koppanen!"
|
[12:07] mikko
|
sent mail to list for checking icc during configure stage
|
[12:07] mikko
|
i gotta eat as well brb
|
[12:08] sustrik
|
cya
|
[12:41] mato
|
sustrik: for 2.0.10... i have a bit of time today (leaving the refactoring work i'm doing to sleep in the back of my head)
|
[12:41] mato
|
sustrik: so, what i want to do is clear up the version stuff, and my patch for DSO visibility
|
[12:42] mato
|
sustrik: once we have those two changes reviewed and applied, and tested at least on a couple systems we could then make a 2.0.10 ASAP next week
|
[12:42] sustrik
|
mato: OK
|
[12:44] sustrik
|
however, think about whether it makes sense to add the visibility stuff to maint
|
[12:44] sustrik
|
it's not really a bugfix
|
[12:44] sustrik
|
rather a new feature
|
[12:45] mato
|
well, one could argue that the rampant dynamic symbol table pollution is a bug :-)
|
[12:45] sustrik
|
it's up to you
|
[12:45] mato
|
and anyhow, ZMQ_VERSION is also a "new feature" :-)
|
[12:46] sustrik
|
but useless wthout being in both maint and master
|
[12:48] sustrik
|
mato, all: question
|
[12:48] sustrik
|
what's the sane default for linger option?
|
[12:48] sustrik
|
infinite mimics TCP
|
[12:48] sustrik
|
0 mimics 0MQ/2.0.x
|
[12:48] mato
|
sustrik: this and the entire semantics should be written up and discussed on email
|
[12:49] mato
|
sustrik: not here, it's out of context...
|
[12:49] sustrik
|
ok, i'll go with infinite for now
|
[13:40] sustrik
|
mato: thanks
|
[13:40] sustrik
|
can you check mikko's patch btw?
|
[13:40] mato
|
sustrik: was going to get around to that; i presume you're applying all these "build with X compiler" fixes only to master on purpose, yes?
|
[13:41] sustrik
|
yes
|
[13:44] mato
|
ok
|
[13:44] mato
|
are you happy with my changes to the version stuff?
|
[13:45] sustrik
|
looks good
|
[13:46] sustrik
|
but i trust you :)
|
[13:47] sustrik
|
what about those tools used to dissect the version numbers?
|
[13:47] sustrik
|
are they likely to be available on all systems?
|
[13:49] mato
|
egrep and awk? yes, of course
|
[13:49] mato
|
i guess i can test on solaris just to make sure it's egrep is not funny or something
|
[13:49] mato
|
tried freebsd, that works fine
|
[13:49] sustrik
|
ack
|
[13:49] mato
|
in any case, those are only needed by people running autogen.sh
|
[13:49] sustrik
|
sure
|
[13:50] sustrik
|
what about the application of patches
|
[13:50] sustrik
|
it's both maint and master, right?
|
[13:50] mikko
|
mato: isn't there autoconf checks for those?
|
[13:50] mikko
|
AC_PROG_EGREP
|
[13:50] mikko
|
etc
|
[13:51] mato
|
mikko: yes, but they won;t help
|
[13:51] mato
|
mikko: since this is used to *generate* configure
|
[13:51] mato
|
mikko: also, what UNIX doesn't have egrep/awk?
|
[13:52] mato
|
sustrik: both, yes, let me just test solaris to be 100% sure
|
[13:52] sustrik
|
ok
|
[13:53] mikko
|
hmm
|
[13:53] mikko
|
i could add solaris build box later
|
[13:53] mikko
|
it runs on x86
|
[13:54] sustrik
|
the build env is on the brink of becoming self-conscious :)
|
[14:09] rphillips
|
I need some advice regarding zmq. I have a subscriber to a pub/sub, and would like to loadbalance the messages received to worker threads. I'm using a PUSH/PULL inproc socket to load balance to the threads.
|
[14:10] rphillips
|
this means there is only one loop reading from the subscriber socket
|
[14:10] rphillips
|
is there a way I can read multiple messages from the subscriber socket and push to the threads?
|
[14:11] mikko
|
interesting 2 of 7 tests failed
|
[14:11] mikko
|
with sun studio
|
[14:12] mikko
|
rphillips: call zmq_recv multiple times?
|
[14:14] sustrik
|
mikko: strange
|
[14:15] sustrik
|
maybe ipc?
|
[14:16] sustrik
|
no, it's still linux
|
[14:16] sustrik
|
should be the same
|
[14:16] mikko
|
there are clang builds as well
|
[14:17] mato
|
sustrik: ok, solaris 2.0.10 build and autogen.sh seem to work
|
[14:17] mato
|
sustrik: so i'd say please apply my patches, that's if you're happy with the cleanup/move of the version macros I did
|
[14:19] sustrik
|
sure
|
[14:19] sustrik
|
what's clang?
|
[14:20] ptrb
|
c/c++ frontend to llvm
|
[14:20] mato
|
sustrik: ok, so i reckon i'd leave the dso visibility changes out of maint, after all, no one has complained about that
|
[14:21] sustrik
|
exactly
|
[14:21] mato
|
sustrik: one last thing i would like to do is bump OpenPGM on maint to the 2.1.28
|
[14:21] sustrik
|
don't fix it if it ain't broken
|
[14:21] sustrik
|
mato: why so?
|
[14:21] mato
|
sustrik: this is so that I can use the DFSG-free tarball, which means I can simplify the debian packaging process muchly
|
[14:21] sustrik
|
ok, np
|
[14:21] mato
|
sustrik: ... there was a thread on the ML about this some time ago ...
|
[14:21] sustrik
|
yes, i recall
|
[14:28] sustrik
|
mato: how can I apply the patch?
|
[14:29] sustrik
|
can you send it as an attachment?
|
[14:29] mato
|
sustrik: huh?
|
[14:29] mato
|
oh, right, your crap mail client
|
[14:29] sustrik
|
:(
|
[14:29] sustrik
|
send it directly to me
|
[14:31] mato
|
sent
|
[14:41] mato
|
sustrik: ok, so, I've grabbed Steve's OpenPGM 2.1.28~dfsg tarball, integrated it into 2.0.10, builds on Linux/amd64
|
[14:41] mato
|
canonical test (i.e. zmq-camera) seems to work
|
[14:41] mato
|
sustrik: However, this means replacing the binary tarball... it doesn't make sense (and is probably not even possible) to send that as a patch
|
[14:41] mato
|
sustrik: Can I push the commit to 'maint', and you will do the rest? (just merge 2.1 and squash the changes, as usual)
|
[14:44] askingq
|
anyone here?
|
[14:45] askingq
|
does zeromq store locally if its disconnected?
|
[14:46] mato
|
askingq: no on-disk persistence; messages will be queued in-memory for some socket types (e.g. REQ/REP)
|
[14:47] askingq
|
mato: our systems may be disconnected for days. is there a plan to support local persistence?
|
[14:48] sustrik
|
mato: what's this:
|
[14:48] sustrik
|
git am 0001-configure.in-Extract-API-version-from-zmq.h.patch
|
[14:48] sustrik
|
previous rebase directory /home/sustrik/zeromq2-maintainer/.git/rebase-apply still exists but mbox given.
|
[14:48] mato
|
sustrik: bah, I don't know
|
[14:48] sustrik
|
:)
|
[14:49] mato
|
I've not really tested git-am in any way
|
[14:50] mato
|
askingq: not that I know of, but a rabbitmq-zeromq bridge is available which may be useful for your use case
|
[14:54] mato
|
sustrik: google seems to say, just remove that file
|
[14:54] mato
|
sustrik: did git-am actually apply anything?
|
[14:54] sustrik
|
mato: i've done everything from beginning and now it works
|
[14:54] mato
|
sustrik: so you just ran "git am" on the two patches i sent you?
|
[14:54] sustrik
|
yes
|
[14:54] mato
|
and it worked?
|
[14:55] sustrik
|
yes
|
[14:55] mato
|
great!
|
[14:58] CIA-14
|
zeromq2: 03Martin Lucina 07maint * r3b3df73 10/ (Makefile.am configure.in include/zmq.h version.sh): (log message trimmed)
|
[14:58] CIA-14
|
zeromq2: configure.in: Extract API version from zmq.h
|
[14:58] CIA-14
|
zeromq2: * Added a version.sh and relevant changes to configure.in to extract the API
|
[14:58] CIA-14
|
zeromq2: version from zmq.h at the time autogen.sh is run.
|
[14:58] CIA-14
|
zeromq2: * Moved the version macros to be next to zmq_version in zmq.h and improved
|
[14:58] CIA-14
|
zeromq2: the comments.
|
[14:58] CIA-14
|
zeromq2: * Modified ZMQ_MAKE_VERSION to use (x) instead of plain x when expanding
|
[14:58] CIA-14
|
zeromq2: 03Martin Lucina 07maint * r3cf01bf 10/ Makefile.am :
|
[14:58] CIA-14
|
zeromq2: Makefile.am: Add missing files to distribution, improve maintainer-clean
|
[14:58] CIA-14
|
zeromq2: Add missing files needed for regenerating configure to the distribution;
|
[14:58] CIA-14
|
zeromq2: add MAINTAINERS; improve maintainer-clean to produce a really clean tree.
|
[14:58] CIA-14
|
zeromq2: Signed-off-by: Martin Lucina <mato@kotelna.sk> - http://bit.ly/9TmEGj
|
[14:59] mikko
|
sustrik: remote_lat.exe: ** (remote_lat/bin/Debug/remote_lat.exe:9433): WARNING **: Shutting down finalizer thread timed out.
|
[15:00] sustrik
|
mikko: that's java or what?
|
[15:01] mato
|
.exe == Mono
|
[15:01] sustrik
|
hm, obviously the linger issue
|
[15:01] sustrik
|
what's the command line?
|
[15:01] sustrik
|
message size, message count
|
[15:02] mikko
|
100 100
|
[15:02] sustrik
|
that's nothing
|
[15:03] mato
|
sustrik: what about that openpgm change? I need to wait until you are done applying patches if I'm to push that
|
[15:03] mato
|
sustrik: so that I don't step on your toes...
|
[15:03] sustrik
|
wiat a sec!
|
[15:03] mato
|
1.. 2..
|
[15:03] mato
|
:-)
|
[15:04] sustrik
|
attempt to merge to master:
|
[15:04] sustrik
|
./configure
|
[15:04] sustrik
|
./configure: line 2539: zeromq-dev@lists.zeromq.org: No such file or directory
|
[15:04] sustrik
|
./configure: line 2540: _ACEOF: command not found
|
[15:04] sustrik
|
./configure: line 2542: syntax error near unexpected token `fi'
|
[15:04] sustrik
|
./configure: line 2542: `fi'
|
[15:05] mato
|
huh?
|
[15:05] sustrik
|
that's what confiugre says
|
[15:06] mato
|
yes, what did you do when merging?
|
[15:06] mato
|
did you have to resolve conflicts?
|
[15:06] sustrik
|
yes
|
[15:06] sustrik
|
zmq.h
|
[15:06] mato
|
what do the relevant lines in configure.in (the AC_INIT stuff) look like?
|
[15:07] sustrik
|
there's a conflict i haven't spotted
|
[15:07] sustrik
|
sorry
|
[15:07] mato
|
double-check what goes on master
|
[15:08] mato
|
it should be exactly the same as on maint, except for the version number, obviously
|
[15:13] sustrik
|
mato: what options to git commit should i use after i've merged the conflicts?
|
[15:13] mato
|
sustrik: dunno, just -s I guess to sign it off as yourself
|
[15:13] sustrik
|
ok
|
[15:15] CIA-14
|
zeromq2: 03Martin Lucina 07master * r3b3df73 10/ (Makefile.am configure.in include/zmq.h version.sh): (log message trimmed)
|
[15:15] CIA-14
|
zeromq2: configure.in: Extract API version from zmq.h
|
[15:15] CIA-14
|
zeromq2: * Added a version.sh and relevant changes to configure.in to extract the API
|
[15:15] CIA-14
|
zeromq2: version from zmq.h at the time autogen.sh is run.
|
[15:15] CIA-14
|
zeromq2: * Moved the version macros to be next to zmq_version in zmq.h and improved
|
[15:15] CIA-14
|
zeromq2: the comments.
|
[15:15] CIA-14
|
zeromq2: * Modified ZMQ_MAKE_VERSION to use (x) instead of plain x when expanding
|
[15:15] CIA-14
|
zeromq2: 03Martin Lucina 07master * r3cf01bf 10/ Makefile.am :
|
[15:15] CIA-14
|
zeromq2: Makefile.am: Add missing files to distribution, improve maintainer-clean
|
[15:15] CIA-14
|
zeromq2: Add missing files needed for regenerating configure to the distribution;
|
[15:15] CIA-14
|
zeromq2: add MAINTAINERS; improve maintainer-clean to produce a really clean tree.
|
[15:15] CIA-14
|
zeromq2: Signed-off-by: Martin Lucina <mato@kotelna.sk> - http://bit.ly/9TmEGj
|
[15:15] CIA-14
|
zeromq2: 03Martin Sustrik 07master * reeb8e7c 10/ (Makefile.am configure.in include/zmq.h version.sh): (log message trimmed)
|
[15:15] CIA-14
|
zeromq2: Merge branch 'maint'
|
[15:15] CIA-14
|
zeromq2: * maint:
|
[15:15] sustrik
|
mato: done
|
[15:15] mato
|
sustrik: let me double-check it all
|
[15:20] sustrik
|
intersting, it looks like inproc transport doesn't work when 0mq is compiled with sun studio
|
[15:20] sustrik
|
clang! it's there!
|
[15:20] sustrik
|
:)
|
[15:24] mikko
|
yes
|
[15:24] mikko
|
and seems to build as well
|
[15:25] mato
|
sustrik: ok, all seems fine
|
[15:25] mato
|
sustrik: so, can I do the push and merge for OpenPGM?
|
[15:26] sustrik
|
good, i'll apply taras' patch now
|
[15:26] mato
|
ah, ok
|
[15:26] sustrik
|
it should not conflict
|
[15:26] sustrik
|
go on
|
[15:26] mato
|
hang on
|
[15:26] mato
|
well
|
[15:26] mato
|
yes
|
[15:26] mato
|
but it'll be nicer if we work in lock-step
|
[15:26] sustrik
|
ok, go on
|
[15:26] mato
|
no silly extra merge commits
|
[15:26] sustrik
|
i'll apply it afterwards
|
[15:26] mato
|
ok, give me a minute
|
[15:30] sustrik
|
CI?
|
[15:31] CIA-14
|
zeromq2: 03Martin Lucina 07maint * r5b44025 10/ (3 files in 2 dirs):
|
[15:31] CIA-14
|
zeromq2: maint: Upgrade OpenPGM to 2.1.28~dfsg
|
[15:31] CIA-14
|
zeromq2: Upgrade OpenPGM to version 2.1.28 for ZeroMQ 2.0.x. Now we also use the
|
[15:31] CIA-14
|
zeromq2: DFSG-compliant upstream release tarball.
|
[15:31] CIA-14
|
zeromq2: Signed-off-by: Martin Lucina <mato@kotelna.sk> - http://bit.ly/aOYQ0x
|
[15:31] mikko
|
continuous integration
|
[15:31] CIA-14
|
zeromq2: 03Martin Lucina 07master * r5b44025 10/ (3 files in 2 dirs):
|
[15:31] CIA-14
|
zeromq2: maint: Upgrade OpenPGM to 2.1.28~dfsg
|
[15:31] CIA-14
|
zeromq2: Upgrade OpenPGM to version 2.1.28 for ZeroMQ 2.0.x. Now we also use the
|
[15:31] CIA-14
|
zeromq2: DFSG-compliant upstream release tarball.
|
[15:31] CIA-14
|
zeromq2: Signed-off-by: Martin Lucina <mato@kotelna.sk> - http://bit.ly/aOYQ0x
|
[15:31] CIA-14
|
zeromq2: 03Martin Lucina 07master * r2e9871c 10/ :
|
[15:31] CIA-14
|
zeromq2: Merge branch 'maint'
|
[15:31] CIA-14
|
zeromq2: Conflicts:
|
[15:31] CIA-14
|
zeromq2: configure.in
|
[15:31] CIA-14
|
zeromq2: Signed-off-by: Martin Lucina <mato@kotelna.sk> - http://bit.ly/ajw5kg
|
[15:31] sustrik
|
:(
|
[15:32] mato
|
sustrik: done
|
[15:32] sustrik
|
mato: there was OpenPGM/5 in the master
|
[15:32] mato
|
sustrik: the CIA messages are misleading
|
[15:32] mato
|
sustrik: anyway, it's a merge of the commit, otherwise the workflow breaks, but the actual commit is empty
|
[15:33] sustrik
|
ok, i see
|
[15:33] mato
|
sustrik: I guess I should have put a clear comment to that effect in the merge commit
|
[15:33] sustrik
|
np, it just scared me
|
[15:33] sustrik
|
can i go on now?
|
[15:33] mato
|
anyway, if you verify with e.g. gitk --all after pulling both branches you'll see that all is as it should be
|
[15:33] mato
|
just the history is a bit confusing
|
[15:33] mato
|
yeah, go on
|
[15:36] mato
|
sustrik: anyhow, from my point of view i think this means we're clear for a 2.0.10 release
|
[15:36] sustrik
|
ack
|
[15:36] sustrik
|
just let me apply taras' patch
|
[15:37] sustrik
|
it's a leak that exists in maint as well
|
[15:46] CIA-14
|
zeromq2: 03Taras Shpot 07maint * r6e95205 10/ (AUTHORS src/uuid.cpp src/uuid.hpp): (log message trimmed)
|
[15:46] CIA-14
|
zeromq2: Fix memory leak under Windows
|
[15:46] CIA-14
|
zeromq2: The comment about memory ownership in uuid_t::to_string
|
[15:46] CIA-14
|
zeromq2: was misleading as on most platforms the buffer is a field
|
[15:46] CIA-14
|
zeromq2: of the object;
|
[15:46] CIA-14
|
zeromq2: The string allocated in UuidToString() wasn't properly freed
|
[15:46] CIA-14
|
zeromq2: with RpcStringFree()
|
[15:48] mikko
|
mato: https://gist.github.com/c4b0a466351af5ceeddd
|
[15:48] mikko
|
after make dist
|
[15:50] CIA-14
|
zeromq2: 03Taras Shpot 07master * r6e95205 10/ (AUTHORS src/uuid.cpp src/uuid.hpp): (log message trimmed)
|
[15:50] CIA-14
|
zeromq2: Fix memory leak under Windows
|
[15:50] CIA-14
|
zeromq2: The comment about memory ownership in uuid_t::to_string
|
[15:50] CIA-14
|
zeromq2: was misleading as on most platforms the buffer is a field
|
[15:50] CIA-14
|
zeromq2: of the object;
|
[15:50] CIA-14
|
zeromq2: The string allocated in UuidToString() wasn't properly freed
|
[15:50] CIA-14
|
zeromq2: with RpcStringFree()
|
[15:50] CIA-14
|
zeromq2: 03Martin Sustrik 07master * r027eed4 10/ (AUTHORS src/uuid.cpp src/uuid.hpp):
|
[15:50] CIA-14
|
zeromq2: Merge branch 'maint'
|
[15:50] CIA-14
|
zeromq2: * maint:
|
[15:50] CIA-14
|
zeromq2: Fix memory leak under Windows - http://bit.ly/9VEhl7
|
[15:51] sustrik
|
mato: ok, done
|
[16:04] sustrik
|
mato: summon
|
[16:12] mato
|
sustrik: ja? sorry, got distracted...
|
[16:12] mato
|
mikko: looks good then
|
[16:12] mikko
|
apart from the whitespace
|
[16:12] mikko
|
two whitespaces at end of lines
|
[16:13] mikko
|
git makes quite a noise out of those
|
[16:13] mato
|
yeah, but at least that means extraneous whitespace changes can be squashed
|
[16:13] mato
|
e.g. people with editors that do/don't expand tabs, etc
|
[16:14] mato
|
sustrik: what's up? I'm kind of done for today, want to get out of here...
|
[16:33] travlr
|
zeromq2: Martin Sustrik master * r027eed4 / (AUTHORS src/uuid.cpp src/uuid.hpp):
|
[16:33] travlr
|
sorry... disregard
|
[17:39] CIA-14
|
zeromq2: 03Martin Sustrik 07master * r53d1677 10/ NEWS :
|
[17:39] CIA-14
|
zeromq2: Update NEWS for 2.0.10 release
|
[17:39] CIA-14
|
zeromq2: Signed-off-by: Martin Sustrik <sustrik@250bpm.com> - http://bit.ly/dme9v1
|
[17:39] CIA-14
|
zeromq2: 03Martin Sustrik 07master * r18d46c8 10/ NEWS : Merge branch 'maint' - http://bit.ly/dcfXVM
|
[17:39] CIA-14
|
zeromq2: 03Martin Sustrik 07maint * r53d1677 10/ NEWS :
|
[17:39] CIA-14
|
zeromq2: Update NEWS for 2.0.10 release
|
[17:39] CIA-14
|
zeromq2: Signed-off-by: Martin Sustrik <sustrik@250bpm.com> - http://bit.ly/dme9v1
|
[17:56] athomas
|
hello
|
[17:59] aat
|
hello
|
[18:01] aat
|
i've got a full mesh topology with transient clients needing to send directly to each other; what would be the best zmq topology to achieve something like this?
|
[18:01] aat
|
i've tried a few different approaches, but without much luck
|
[18:07] aat
|
i should say peers rather than clients
|
[18:07] cremes
|
aat: is there any pattern to their communications?
|
[18:07] cremes
|
e.g. pub/sub, req/rep, etc?
|
[18:09] aat
|
not that i can see; it aligns very closely with a traditional socket pattern of accepting, starting a new handler for that connection that holds state for the duration and tears down when the client disconnects
|
[18:09] aat
|
which i can't match to any of the zmq socket types
|
[18:09] aat
|
but it may be that i just haven't fully grokked zmq yet :)
|
[18:11] aat
|
the closest i can think of is having each peer listen on a REP socket. all peers set their socket identities. each peer routes messages to the appropriate handler based on identity
|
[18:12] aat
|
if that's possible
|
[18:14] rphillips
|
aat: you can pass the endpoint in a frame within zmq
|
[18:15] rphillips
|
that way whomever receives the message(s) knows where to send a response, if applicable
|
[18:15] cremes
|
aat: yeah... that's the only one that comes to mind too
|
[18:16] cremes
|
it's kind of a bastardization of xrep/xreq to do that kind of pinpoint routing, but it is doable
|
[18:16] aat
|
rphillips: okay, thanks. i will give that a try
|
[18:16] cremes
|
for debugging purposes, you'll probably want to put a "queue" device in between all peers
|
[18:17] aat
|
ah ok
|
[18:17] aat
|
why's that exactly?
|
[18:17] cremes
|
that device (well, a small modification of the stadard one) could print the routing data as it comes through
|
[18:17] cremes
|
it helps immensely with debugging, that's all
|
[18:17] cremes
|
well, it has one more benefit
|
[18:17] aat
|
ok
|
[18:17] cremes
|
you can avoid sending endpoints in your messages because everything will *connect* to the same device
|
[18:18] cremes
|
it becomes a well-known service in your topology
|
[18:18] cremes
|
does that make sense?
|
[18:18] aat
|
yes it does
|
[18:18] rphillips
|
cremes: how does the device distinguish where to route the request?
|
[18:20] aat
|
one other question while i'm here. how efficient is the PUB/SUB system? as in, if i have 10 clients connected, but subscribed to different topics, will packets still be delivered to all clients? ie. is the topic filtering done on the client?
|
[18:20] aat
|
if using tcp i eman
|
[18:20] aat
|
mean
|
[18:21] aat
|
"will packets for all topics be delivered to all clients" i mean (sorry, late here)
|
[18:22] cremes
|
rphillips: the routing is inherent to the 0mq library; it reads the routing info off the front of each message and uses it to route the data to the correct recipient
|
[18:22] cremes
|
aat: all packets are delivered to all subscribers because the subscribers do the filtering
|
[18:22] cremes
|
there has been quite a bit of discussion about moving that filtering operation to the publisher
|
[18:23] aat
|
ok cool, good to know
|
[18:23] cremes
|
i recommend searching the ML archives for those past discussions
|
[18:23] aat
|
ok
|
[18:23] cremes
|
last i heard, the 0mq folks were waiting for a paying customer to step up and sponsor it because it was rather complex to solve
|
[18:28] aat
|
kk, thanks guys
|
[22:48] CIA-14
|
zeromq2: 03Martin Sustrik 07maint * r710615c 10/ include/zmq.h :
|
[22:48] CIA-14
|
zeromq2: Version number increased.
|
[22:48] CIA-14
|
zeromq2: Signed-off-by: Martin Sustrik <sustrik@250bpm.com> - http://bit.ly/bxuT2d
|
[22:49] CIA-14
|
zeromq2: 03Martin Sustrik 07master * r710615c 10/ include/zmq.h :
|
[22:49] CIA-14
|
zeromq2: Version number increased.
|
[22:49] CIA-14
|
zeromq2: Signed-off-by: Martin Sustrik <sustrik@250bpm.com> - http://bit.ly/bxuT2d
|
[22:49] CIA-14
|
zeromq2: 03Martin Sustrik 07master * rae5a3c8 10/ :
|
[22:49] CIA-14
|
zeromq2: Merge branch 'maint'
|
[22:49] CIA-14
|
zeromq2: * maint:
|
[22:49] CIA-14
|
zeromq2: Version number increased.
|
[22:49] CIA-14
|
zeromq2: Conflicts:
|
[22:49] CIA-14
|
zeromq2: include/zmq.h
|
[22:49] CIA-14
|
zeromq2: Signed-off-by: Martin Sustrik <sustrik@250bpm.com> - http://bit.ly/9SYsYE
|
[22:57] travlr
|
sustrik: hi martin are you around?
|
[22:59] sustrik
|
travlr_: hi
|
[22:59] travlr
|
hi
|
[23:00] travlr
|
...
|
[23:00] travlr
|
i'm just wondering why you push immediately after pushing to master... why more than once?
|
[23:01] sustrik
|
the first was push to maint
|
[23:01] sustrik
|
the second is master
|
[23:02] travlr
|
and the third was to merge maint to master... can you do that locally by any chance?
|
[23:02] sustrik
|
i don't think so
|
[23:02] sustrik
|
merging is a full-blown commit
|
[23:03] travlr
|
I think you can and it will show the commit just as it would the way you are doing it now.
|
[23:04] sustrik
|
what's your idea?
|
[23:04] travlr
|
well it's causing a problem with my zmqircd daemon that needs fixing...
|
[23:04] travlr
|
i just haven't had the time to do it
|
[23:05] travlr
|
so i thought you might correct it for me if you can by commiting less often
|
[23:05] travlr
|
...not immediately
|
[23:05] travlr
|
one after another
|
[23:06] sustrik
|
the point is that if i'm doing a change to maint that needs to be propagated to master
|
[23:06] sustrik
|
there have to be 3 separate commits
|
[23:06] sustrik
|
1. update to maint
|
[23:06] sustrik
|
2. update to master
|
[23:06] sustrik
|
3. merge
|
[23:07] travlr
|
can you do...
|
[23:07] travlr
|
1. update maint
|
[23:07] travlr
|
2. merge maint to master locally
|
[23:07] travlr
|
3. push master
|
[23:07] travlr
|
?
|
[23:08] sustrik
|
maint is a public repo (2.0.x family of versions)
|
[23:08] sustrik
|
it has to go to github
|
[23:08] travlr
|
yes i know
|
[23:08] travlr
|
1. push updated maint to repo
|
[23:08] travlr
|
2. merge maint to master locally
|
[23:08] travlr
|
3. push already merge master to repo
|
[23:09] sustrik
|
that's what i am doing
|
[23:09] travlr
|
no, i think you push to master and merge remotely instead of doing first locally
|
[23:10] sustrik
|
no, the sequence goes like this:
|
[23:10] sustrik
|
git checkout master
|
[23:10] sustrik
|
git merge maint
|
[23:10] sustrik
|
git push origin master
|
[23:11] travlr
|
hmm.. i see
|
[23:11] sustrik
|
what's the problem with irc daemon?
|
[23:11] travlr
|
must have to do with automatic remote refs then
|
[23:11] travlr
|
i'm using an irclib that is single threaded... i have to fix that
|
[23:12] travlr
|
causes problems sometimes... no big deal
|
[23:12] travlr
|
thanks
|
[23:12] sustrik
|
np
|
[23:13] CIA-14
|
zeromq2: 03Martin Sustrik 07master * r48b0a90 10/ src/config.hpp :
|
[23:13] CIA-14
|
zeromq2: Obsolete compile-time option removed.
|
[23:13] CIA-14
|
zeromq2: Signed-off-by: Martin Sustrik <sustrik@250bpm.com> - http://bit.ly/99Gpx5
|
[23:13] CIA-14
|
zeromq2: 03Mikko Koppanen 07master * rb95f11a 10/ (configure.in acinclude.m4):
|
[23:13] CIA-14
|
zeromq2: Don't set pedantic to yes if using ICC
|
[23:13] CIA-14
|
zeromq2: Signed-off-by: Mikko Koppanen <mkoppanen@php.net> - http://bit.ly/bwqYkn
|
[23:24] CIA-14
|
zeromq2: 03Martin Sustrik 07master * r733c678 10/ src/pipe.hpp :
|
[23:24] CIA-14
|
zeromq2: Minor code clean-up to keep clang compiler happy.
|
[23:24] CIA-14
|
zeromq2: "warning: extra ';' inside a struct or union [-pedantic]"
|
[23:24] CIA-14
|
zeromq2: Signed-off-by: Martin Sustrik <sustrik@250bpm.com> - http://bit.ly/a61tct
|