[Time] Name | Message |
[00:38] acts_as
|
Does zeromq have to talk to other zeromq (or *MQ) hosts? Or can I have zeromq talk to xyz proprietary packets?
|
[00:57] acts_as
|
anyone here :(
|
[04:12] jasong_at_apache
|
I just found out about 0mq
|
[04:12] jasong_at_apache
|
i'm like in love
|
[04:30] Pe_Ell
|
heh, yeah I want to use it but I need a quick working prototype in Perl and the current drivers are blocking...
|
[04:30] Pe_Ell
|
need to look into making an AnyEvent driver but prototype comes first... but I really like the project. :)
|
[04:59] lestrrat
|
Pe_Ell: wait till zeromq 2.1
|
[04:59] lestrrat
|
I'm going to make an AnyEvent adaptor then.
|
[05:00] Pe_Ell
|
yeah, was that you I was talking to about it through email last week?
|
[05:00] lestrrat
|
Ah, duh. must be.
|
[05:00] Pe_Ell
|
I started looking at the C code but I needed to undistract myself... :)
|
[05:00] lestrrat
|
Sounded familiar.
|
[05:00] Pe_Ell
|
0mq was a shiny object in my time of planning...
|
[05:01] lestrrat
|
:)
|
[05:01] Pe_Ell
|
so doing my initial design testing with AnyEvent::MP
|
[05:01] lestrrat
|
I see.
|
[05:01] Pe_Ell
|
but I want to switch to 0mq after I get it working
|
[05:02] lestrrat
|
I would be willing to build a prototype based on the current master, but I'm also running YAPC::Asia, so I won't have time to hack on it until it's over :/
|
[05:02] Pe_Ell
|
np
|
[05:03] Pe_Ell
|
I've got a like a week or two of my project before I can get back to it...
|
[05:03] lestrrat
|
so maybe sometime around the end of Oct... unless $dayjob catches me.
|
[05:03] lestrrat
|
righto
|
[05:03] Pe_Ell
|
from what I read look like you can use ZMQ_FD to trigger polling
|
[05:03] Pe_Ell
|
but I didn't get terribly far into it
|
[05:03] lestrrat
|
right. you just need to pass that FD as a IO object, and register a callback using AE::io
|
[05:04] lestrrat
|
then call ZMQ's poll function (which I need to change the API a bit...)
|
[05:04] Pe_Ell
|
yeah I was wondering if it would be that simple or not... since they mentioned that it triggers on more than just incoming events
|
[05:04] Pe_Ell
|
so you might not have any events when it triggers
|
[05:05] lestrrat
|
well, there may be caveats I'm missing, but sounds like you should be able to poll() and just have it return immediately w/o any messages.
|
[05:05] lestrrat
|
it wouldn't matter.
|
[05:05] Pe_Ell
|
that's what I was hoping
|
[05:05] lestrrat
|
it /would/ matter if it /didn't/ trigger when there's a message.
|
[05:06] Pe_Ell
|
yeah
|
[05:07] lestrrat
|
we'll see. we might need to write a couple of wrappers around the FDs, but as long as we can decorate it like Perl IO object... we should be fine
|
[05:08] Pe_Ell
|
yeah
|
[07:12] CIA-20
|
zeromq2: 03Steven McCoy 07master * r96d85b2 10/ (4 files): (log message trimmed)
|
[07:12] CIA-20
|
zeromq2: * Add assertions to check for OpenPGM calls with invalid parameters.
|
[07:12] CIA-20
|
zeromq2: * Assertion to check that pgm_getaddrinfo is actually returning something.
|
[07:12] CIA-20
|
zeromq2: * Missing pgm_connect call.
|
[07:12] CIA-20
|
zeromq2: * Typo on TOS causing immediate abort.
|
[07:12] CIA-20
|
zeromq2: * Placeholder calls for timeouts whilst continuing spin loop functionality.
|
[07:12] CIA-20
|
zeromq2: * OpenPGM v5 now supports reference counting so remove init checks.
|
[07:12] CIA-20
|
zeromq2: 03Steven McCoy 07master * rd14be62 10/ (6 files): more fixes to (e)pgm transport - http://bit.ly/9U1BOZ
|
[07:12] CIA-20
|
zeromq2: 03Ilja Golshtein 07master * rec2e859 10/ (AUTHORS include/zmq.hpp): C++ binding destructors don't throw exceptions - http://bit.ly/9wp2gs
|
[09:33] CIA-20
|
zeromq2: 03Steven McCoy 07master * reaa925e 10/ src/pgm_socket.cpp : FreeBSD doesn't define MSG_ERRQUEUE -- now it's defined in 0MQ - http://bit.ly/9p2Kny
|
[09:35] CIA-20
|
zeromq2: 03Martin Sustrik 07master * r7881ba1 10/ src/pgm_socket.cpp : minor whitespace fix - http://bit.ly/dm6tfs
|
[10:12] js
|
hi
|
[10:13] js
|
im having problem with the importation of the dll into visual studio 2010
|
[10:14] js
|
is anybody have face this trouble ?
|
[10:14] js
|
for the c# implementation
|
[12:04] CIA-20
|
zeromq2: 03Martin Sustrik 07master * r98fa2fa 10/ src/xrep.cpp : fix in XREP's fair queueing mechanism - http://bit.ly/8Zh1WS
|
[12:41] mrshpot
|
hello, mato
|
[13:10] CIA-20
|
zeromq2: 03Max Wolf 07maint * r79aea5f 10/ (AUTHORS src/xrep.cpp): zmq_msg_move called on uninitialised message in xrep_t::xrecv -- fixed - http://bit.ly/9EVmvj
|
[13:13] CIA-20
|
zeromq2: 03Max Wolf 07master * r79aea5f 10/ (AUTHORS src/xrep.cpp): zmq_msg_move called on uninitialised message in xrep_t::xrecv -- fixed - http://bit.ly/9EVmvj
|
[13:13] CIA-20
|
zeromq2: 03Martin Sustrik 07master * rac9b05c 10/ (AUTHORS src/xrep.cpp):
|
[13:13] CIA-20
|
zeromq2: Merge branch 'maint'
|
[13:13] CIA-20
|
zeromq2: * maint:
|
[13:13] CIA-20
|
zeromq2: zmq_msg_move called on uninitialised message in xrep_t::xrecv -- fixed - http://bit.ly/dbjJBL
|
[13:31] CIA-20
|
zeromq2: 03Martin Lucina 07master * r8f9080e 10/ src/zmq.cpp :
|
[13:31] CIA-20
|
zeromq2: zmq_poll(): Fix busy-loop if timeout is zero
|
[13:31] CIA-20
|
zeromq2: Fix a case where zmq_poll() (poll-based version) could go off into a busy-loop
|
[13:31] CIA-20
|
zeromq2: if no revents are returned and the timeout passed in is zero. - http://bit.ly/dq8ZsW
|
[13:59] mato
|
sustrik: are you there?
|
[13:59] sustrik
|
yes
|
[13:59] mato
|
i get an occasional assertion on master
|
[13:59] mato
|
no idea what causes it
|
[14:00] sustrik
|
what's the assertion?
|
[14:00] mato
|
Assertion failed: inpipe_ && outpipe_ (xrep.cpp:53)
|
[14:01] sustrik
|
that should not happen
|
[14:01] mato
|
will try to get a core dump
|
[14:01] sustrik
|
can we reproduce it?
|
[14:01] mato
|
it's very random
|
[14:01] sustrik
|
hm
|
[14:15] mato
|
sustrik: ok, i have a core file... it comes out of a case with close()
|
[14:15] mato
|
sustrik: so it's related to socket shutdown
|
[14:15] sustrik
|
ack
|
[14:16] sustrik
|
can i see the backtrace?
|
[15:39] mikko
|
ZMQ_TYPE support added to php bindings
|
[15:40] mikko
|
i like the changed semantics with zmq_close
|
[15:40] mikko
|
with languages like php the 'old' semantics cause a lot of issues
|
[15:40] sustrik
|
it caused lot of problems to everone
|
[15:41] sustrik
|
but even the new solution is not perfect, zmq_term may now block for prolonged periods of time
|
[15:41] sustrik
|
the only real solution is to have 0mq in kernel space
|
[15:41] mato
|
it still needs discussion and fixing, /me would love to write all the close semantics down properly but is bogged down in work for a client
|
[15:42] mato
|
sustrik: that solution is years away, hence not a solution :)
|
[15:42] sustrik
|
sure
|
[15:42] mikko
|
zmq_close with timeout would be nice i guess
|
[15:43] mikko
|
as intermediate solution
|
[15:43] sustrik
|
yeah, SO_LINGER has to be added
|
[15:43] sustrik
|
it's on TODO list
|
[15:43] mikko
|
im one step behind
|
[15:43] mikko
|
been on holidays in sunny istanbul
|
[15:43] mikko
|
mainly focusing on kebab and raki
|
[15:43] sustrik
|
lucky you
|
[15:44] mikko
|
how did the meeting go in london?
|
[15:44] sustrik
|
there was a tube strike exactly that day :)
|
[15:44] sustrik
|
the only one who managed to get there was jon dyte
|
[15:45] sustrik
|
pieter was more lucky with chicago meetup
|
[15:45] mikko
|
do you come to london often?
|
[15:45] sustrik
|
depends
|
[15:45] sustrik
|
you've been in amsterdam last time, right?
|
[15:45] mikko
|
yeah
|
[15:45] sustrik
|
gonzalo just proposed another meetup in amsterdam
|
[15:45] sustrik
|
won't you be around by chance?
|
[15:46] mikko
|
yeah, i saw the email
|
[15:46] mikko
|
it looks like im in utrecht on 18th onwards
|
[15:46] mikko
|
which is short way from amsterdam
|
[15:46] mikko
|
s/on/from/
|
[15:46] sustrik
|
nice
|
[15:46] mikko
|
that's week early though
|
[15:46] mikko
|
it's either one week or two week job
|
[15:47] sustrik
|
i see
|
[15:47] sustrik
|
well, let's see whether some other folks are interested in the meetup
|
[15:47] mikko
|
amsterdam is pretty easy to get from most of the europe
|
[15:48] mikko
|
45 mins flight from here
|
[15:48] sustrik
|
ack
|
[15:50] mikko
|
i would be keen on meet-up if an opportunity comes up
|
[15:51] mikko
|
hmmm, i get a quota of conference days to spend from work
|
[15:51] mikko
|
are you talking in any upcoming event?
|
[15:53] sustrik
|
nope, it's just a beer event
|
[15:54] sustrik
|
i thought that if 5-6 people would come there it would be worth of spending a day in amsterdam
|
[15:54] sustrik
|
but it's just social
|
[15:55] sustrik
|
btw, one think we've talked about with jon dyte is whether it wouldn't make sense to organise a small 0mq meetup/conference
|
[15:56] mikko
|
that would be nice
|
[15:56] mikko
|
varnish people do those occasionally
|
[15:56] sustrik
|
it's purely theoretical so far
|
[15:56] mikko
|
they also brainstorm on features etc
|
[15:56] sustrik
|
ack
|
[15:57] sustrik
|
the logistics is obvious problem
|
[15:57] sustrik
|
people are all around the globe
|
[15:57] mikko
|
http://www.varnish-cache.org/trac/wiki/VUG2
|
[15:57] mikko
|
that kind of thing
|
[15:57] sustrik
|
yes, something like that
|
[15:57] mikko
|
maybe we could try to organise it around a larger conference
|
[15:58] sustrik
|
one option would be to hold it after fossdem
|
[15:58] sustrik
|
in brussels
|
[15:58] sustrik
|
that's a really big conference
|
[15:58] sustrik
|
some 2000 attendeed or so
|
[15:58] sustrik
|
held jan/feb iirc
|
[15:59] mikko
|
feb it seems
|
[15:59] mikko
|
they give rooms to distribution miniconferences
|
[15:59] mikko
|
conferences*
|
[15:59] mikko
|
there was no typo actually
|
[16:00] mikko
|
anyway, it seems like a sensible idea
|
[16:00] mikko
|
that way people can attend fossdem and probably get their companies to pay for flights / accomodation
|
[16:00] sustrik
|
there are imatix offices in brussels, so it would be easy
|
[16:00] mikko
|
We hereby invite ideas and proposals for main speakers, and proposals for developer rooms. The call for stands and lightning talks will be done after announcing the accepted devrooms.
|
[16:00] mikko
|
they also provide dev rooms
|
[16:01] sustrik
|
but pieter has a fridge with beer at imatix office :)
|
[16:01] mikko
|
sounds like a plan
|
[16:01] mikko
|
mussels in brussels
|
[16:01] sustrik
|
right
|
[16:02] mikko
|
maybe fire the idea to mailing list and see if people pick up?
|
[16:03] omarkj
|
Oh, a reason to go to Brussels?
|
[16:05] mikko
|
it would be nice to brainstorm and bounce around ideas on how people use zeromq
|
[16:07] sustrik
|
yes, if people are intersted we can arrange that
|
[16:13] mikko
|
seems like pfsense uses the zmq php bindings
|
[16:13] sustrik
|
what's that?
|
[16:13] mikko
|
it's a firewall / captive portal
|
[16:14] sustrik
|
interesting
|
[16:14] mikko
|
"pfSense is a free, open source customized distribution of FreeBSD tailored for use as a firewall and router."
|
[16:14] mikko
|
it seems they use zeromq to distribute config changes
|
[16:14] sustrik
|
any idea what do they use it for?
|
[16:14] sustrik
|
i see
|
[16:15] sustrik
|
actually, i would like to see 0MQ devices running on routers one day
|
[16:15] mikko
|
i guess that enables centralised management for firewall clusters
|
[16:15] sustrik
|
but we are not that fat yet
|
[16:15] sustrik
|
far*
|
[16:16] sustrik
|
the idea is that a device sits at the edge of the network (in router) and redistributes messages to the local network
|
[16:17] mikko
|
i think some of the concepts in zeromq are hard to grasp
|
[16:17] mikko
|
for some people
|
[16:17] mikko
|
well, not zeromq specific issue
|
[16:18] mikko
|
more like messaging oriented approach
|
[16:18] mikko
|
and some people seem to insist on 'persistent' messaging
|
[16:18] sustrik
|
yes, i am aware of that
|
[16:18] sustrik
|
we need to educate the crowd
|
[16:56] jasong_at_apache
|
one my main dev machine which is OSX (production is ubuntu) i'm getting: ./configure: line 15263: syntax error near unexpected token `newline'
|
[16:56] jasong_at_apache
|
./configure: line 15263: ` PKG_CHECK_MODULES('
|
[16:56] jasong_at_apache
|
this is optionless ./autogen.sh , ./configure (stock as is)
|
[16:58] jasong_at_apache
|
update: i just found the doc page....
|
[16:59] cremes
|
jasong_at_apache: make sure you have libtool installed on your machine
|
[16:59] cremes
|
if you use macports, do a "port install libtool" and try again
|
[16:59] jasong_at_apache
|
i do, will try! thx cremes
|
[18:16] jasong_at_apache
|
another issue, now with jzmq
|
[18:16] jasong_at_apache
|
libtool: compile: g++ -DHAVE_CONFIG_H -I. -D_REENTRANT -D_THREAD_SAFE -I/Library/Java/Home/include -Wall -g -O2 -MT libjzmq_la-Socket.lo -MD -MP -MF .deps/libjzmq_la-Socket.Tpo -c Socket.cpp -fno-common -DPIC -o .libs/libjzmq_la-Socket.o
|
[18:16] jasong_at_apache
|
Socket.cpp: In function 'jlong Java_org_zeromq_ZMQ_00024Socket_getLongSockopt(JNIEnv*, _jobject*, jint)':
|
[18:16] jasong_at_apache
|
Socket.cpp:103: error: 'ZMQ_TYPE' was not declared in this scope
|
[18:21] cremes
|
jasong_at_apache: i don't think the "official" bindings have been updated to work with 2.1 yet
|
[18:21] cremes
|
if you are just starting to experiment, you might want to stick with 2.0.9
|
[18:21] jasong_at_apache
|
ah
|
[18:23] jasong_at_apache
|
sorry I'm coming across as a total noob, I am monitoring several builds figure i'd just hit you guys up for the obvious
|
[18:31] Guest28979
|
I want to setup a pub-sub system where a client sends a message to a central server that does some authentication and error checking and then publishes that message to all clients.
|
[18:32] omarkj
|
Okay.
|
[18:32] Guest28979
|
I'm doing a request/response pair to send the message to the server, and pub/sub to send out the messages, and it's working beautifully, except...
|
[18:33] Guest28979
|
These are dynamic hosts, and on ocassion, the server will die and move to a different machine.
|
[18:33] Guest28979
|
Is there an elegant way to do this, or do I need to do non-blocking recv's with timeouts, and a heartbeat on the PUB/SUB side of things?
|
[18:35] Peaceful
|
Is this a common problem? I'm trying to install zmq and pyzmq for the first time on my OS X 10.6 box, and it looked like it worked, but I get: ImportError: cannot import name _zmq --> when I do "import zmq"
|
[18:36] Peaceful
|
Here's the full traceback: http://pastebin.com/YrDu1RNK
|
[18:36] Peaceful
|
I just downloaded 2.0.9, untarred it, ran ./configure, make, make install ...
|
[18:37] Guest28979
|
Peaceful: How did you install pyzmq?
|
[18:37] Guest28979
|
easy_install?
|
[18:37] Peaceful
|
then downloaded pyzmq (from git), copied setup.cfg (which looked correct), and did 'sudo python setup.py install'
|
[18:37] Guest28979
|
What was the output of that?
|
[18:40] Peaceful
|
http://pastebin.com/neYyq9Kf <-- output of 'sudo python setup.py install'
|
[18:45] Peaceful
|
http://pastebin.com/8ct0gsif <-- and here's the full output from my "./configure", "make", "sudo make install"
|
[18:45] Peaceful
|
There's warnings, but it appeared that zmq and pyzmq both successfully installed...but doesn't work.
|
[18:46] guido_g
|
might be a path issue
|
[18:47] Guest28979
|
I'm hardly a Mac guy, so I'm stabbing in the dark here...
|
[18:47] guido_g
|
dito.
|
[18:48] Peaceful
|
Hmm. There were no mac-specific install instructions for zmq...I checked "INSTALL". I wonder if zmq itself works okay...
|
[18:48] Guest28979
|
Do you have a directory that looks something like '/Library/Python/2.6/site-packages/pyzmq-2.0.9dev-py2.6.egg'?
|
[18:49] Peaceful
|
no, but...
|
[18:49] Peaceful
|
there is this, which is close:
|
[18:49] Peaceful
|
ls /Library/Python/2.6/site-packages/zmq/
|
[18:49] Peaceful
|
__init__.py __init__.pyc _zmq.pxd _zmq.so allocate.pxd buffers.pxd devices.so eventloop log tests
|
[18:49] Guest28979
|
It's sticking an egg.info file into /Library/Python/2.6/site-package, but where is the egg itself?
|
[18:50] Guest28979
|
Ah, OK.
|
[18:50] Guest28979
|
What's the mac equivalent of ldconfig?
|
[18:50] Peaceful
|
There's this: /Library/Python/2.6/site-packages/pyzmq-2.0.9dev-py2.6.egg-info
|
[18:50] Guest28979
|
Try sudo ldconfig
|
[18:50] Peaceful
|
hey!
|
[18:50] Peaceful
|
before I tried that, I thought, maybe I should try a new terminal
|
[18:50] Peaceful
|
opening up a new terminal window worked
|
[18:51] Guest28979
|
Yeah, and the new one has the path.
|
[18:51] Peaceful
|
I didn't run ldconfig
|
[18:51] Guest28979
|
Or the python path is rebuilt, or what-have-you.
|
[18:51] Peaceful
|
ah, I bet "hash -r" would have fixed it in my original one...
|
[18:51] Peaceful
|
er, nope
|
[18:51] Peaceful
|
okay, I'll just stick with the new window :)
|
[18:51] Guest28979
|
guido_g was right, it was a path issue.
|
[18:51] guido_g
|
YES!
|
[18:51] Guest28979
|
+1
|
[18:51] guido_g
|
where'S the cookie? :)
|
[18:51] Peaceful
|
guido_g++
|
[18:52] Peaceful
|
^-- cookie
|
[18:52] Peaceful
|
thanks!
|
[18:52] nedjl
|
Let's see if nickserv lets me have this one.
|
[18:52] rgl
|
how good is zeromq on windows?
|
[18:52] Peaceful
|
Now I'll go see if I can actually get zmq working. I only discovered its existence last night.
|
[18:53] mikko
|
rgl: should be fine
|
[18:53] nedjl
|
Peaceful: There's a "It's not working" workflow chart that's very good. Most of my experience with it has involved it just working.
|
[18:53] mikko
|
rgl: as far as i know, cant really vouch for it as i dont use windows
|
[18:54] rgl
|
are there any official windows binaries?
|
[18:54] nedjl
|
I figured out a better way of asking my question -- is there a way to get an error when an endpoint goes down? I don't want zeromq to hide me from this, I need to redo some service discovery to find out where I should connect to instead.
|
[18:55] mikko
|
rgl: you should be able to build easily
|
[18:55] rgl
|
mikko, ok. will do. thx! :)
|
[18:55] mikko
|
rgl: are you looking to use one of the language bindings?
|
[18:55] rgl
|
mikko, C#
|
[18:56] guido_g
|
nedjl: nope, ømq is notorously underprovisioned with this kind of stuff
|
[18:57] guido_g
|
it _might_ be that you get a notification through the logging interface in the future, the distant future...
|
[18:57] mikko
|
nedjl: at the moment you would probably implement some sort of heartbeat
|
[18:58] mikko
|
it's getting busy in here, 66 people
|
[18:59] guido_g
|
complicated by the fact that you don't know which connection is alive and that there is no way to use a specific underlying connection
|
[19:00] nedjl
|
mikko, guido_g: OK. My current plan to figure out if the sub/pub socket is still alive to send out a heartbeat every few seconds, and kill off all the clients if there is no response.
|
[19:00] guido_g
|
if you have use-cases involving this kind of information, *please* take the time to mention it on the mailing list
|
[19:01] nedjl
|
The req/res socket I'm polling on the response to a req, and if I don't get anything after a reasonable amount of time, I redo the service discovery and try again with the new info.
|
[19:02] mikko
|
indeed the hearbeat is problematic
|
[19:02] nedjl
|
I've got a server that validates messages indicating events, and then spreads em around to anyone interested. That server will go down from time to time, and I want all the clients to notice and redo the service discovery if appropriate.
|
[19:02] mikko
|
especially in scenarios where for example a specific port is blocked accidentally on a firewall
|
[19:02] mikko
|
as the hearbeat might be going through a different port than main connection
|
[19:03] nedjl
|
These are actually a cluster of EC2 servers, and I'm sending out notifications about changes in the cluster's state using this mechanism.
|
[19:04] mikko
|
nedjl: and you dont know the peers addresses beforehand?
|
[19:04] nedjl
|
I can't use multicast, even though it is probably the right solution, because EC2 doesn't support multicast without some gross tunneling hacks.
|
[19:05] mikko
|
nedjl: doesnt pgm encapsulate the multicast into tcp?
|
[19:05] guido_g
|
no
|
[19:05] mikko
|
even with tcp transport?
|
[19:05] nedjl
|
Machines will get added, machines will get killed. If the machine that gets killed is the one with the server, it'll get started up somewhere else, and everybody will just do a lookup to find the new location.
|
[19:05] guido_g
|
no
|
[19:06] mikko
|
i might've misunderstood pgm in that case
|
[19:07] guido_g
|
pgm is working on ip level, ephm encapsulates it in udp
|
[19:07] mikko
|
time to read rfc 3028
|
[19:07] guido_g
|
*epgm
|
[19:07] mikko
|
ok
|
[19:07] mikko
|
i thought you could encapsulate inside tcp as well
|
[19:07] guido_g
|
you can't do real multicast on tcp
|
[19:08] nedjl
|
mikko: 1.1 of RFC 3028 says " PGM runs over a datagram multicast protocol such as IP multicast [5]. "
|
[19:08] nedjl
|
Curses.
|
[19:08] mikko
|
reading 3028 now
|
[19:09] mikko
|
i guess using tcp wouldnt make much sense indeed
|
[19:10] mikko
|
does epgm work in EC2?
|
[19:10] nedjl
|
So it seems inevitable that I'm looking at lots of NOBLOCK and timeouts.
|
[19:10] guido_g
|
no, because you said multicast doesn't work
|
[19:10] nedjl
|
Lemme lok.
|
[19:10] mikko
|
guido_g: i don't know anything about EC2
|
[19:11] mikko
|
but i would imagine there are use-cases for multicast in 'cloud'
|
[19:11] guido_g
|
<nedjl> I can't use multicast, even though it is probably the right solution, because EC2 doesn't support multicast without some gross tunneling hacks.
|
[19:11] guido_g
|
mikko: definitely, but it's also not easy and might even kill the network
|
[19:11] mikko
|
it might be hard to organize safely
|
[19:11] guido_g
|
so it is wise to disable it
|
[19:12] mikko
|
what's the current best approach to heartbeats with zmq?
|
[19:12] mikko
|
use a separate oob socket for heartbeat?
|
[19:12] nedjl
|
mikko: That's probably the question I should be asking.
|
[19:12] guido_g
|
i don't think that there is a an easy *and* useful way for real multicast on these sold virtual machines
|
[19:13] guido_g
|
if you use a separate socket your testing this one, not the other one
|
[19:13] mikko
|
guido_g: i would imagine it would also require end to end encryption for the multicast
|
[19:14] mikko
|
i guess it depends on how the cloud is organised, i remember some providers have private clouds with separate VLANs
|
[19:14] guido_g
|
mikko: yes, and every one would be forced to use it... no way
|
[19:15] guido_g
|
won't work on the "machine on demand" front
|
[19:15] mikko
|
guido_g: not forced of course, but if they cared for the authenticity of the data then yes
|
[19:15] mikko
|
i guess thats almost forcing
|
[19:15] guido_g
|
otoh multicast steals bandwidth from other users, if a subscriber is in their network segment
|
[19:16] guido_g
|
so one has to deal with that too
|
[19:16] guido_g
|
i don't think real multicast will become widely used in to vapor... oops... cloud world
|
[19:16] mikko
|
and non rate-limited multicast would be a bit scary
|
[19:21] jasong_at_apache
|
anyone here successfully compile jzmq on osx?
|
[19:26] mikko
|
jasong_at_apache: what is the problem you are facing?
|
[19:26] mikko
|
i can give it a spin
|
[19:27] jasong_at_apache
|
on 10.6 i've successfully compiled 2.0.9 (download area)
|
[19:27] jasong_at_apache
|
yet with jzmq i get: Socket.cpp: In function 'jlong Java_org_zeromq_ZMQ_00024Socket_getLongSockopt(JNIEnv*, _jobject*, jint)':
|
[19:27] jasong_at_apache
|
Socket.cpp:103: error: 'ZMQ_TYPE' was not declared in this scope
|
[19:27] jasong_at_apache
|
during make
|
[19:27] mikko
|
ZMQ_TYPE is in 2.1 only
|
[19:28] mikko
|
and i think the type is 'int' iirc
|
[19:28] jasong_at_apache
|
i thought i did a checkout -b from a previous commit (i need to do that again)
|
[19:28] jasong_at_apache
|
how far back do i go? there are no tags atm
|
[19:28] mikko
|
the method name suggests that its a long
|
[19:28] mikko
|
jasong_at_apache: 2.1.0 zmq i mean
|
[19:28] mikko
|
jasong_at_apache: the current github trunk
|
[19:29] jasong_at_apache
|
so it's not worth using the binding with the maint branch?
|
[19:29] sustrik
|
the change to jzmq was committed by gonzalo today
|
[19:29] sustrik
|
so if you grab yesteday's version it should work with 2.0.9
|
[19:30] jasong_at_apache
|
ah
|
[19:30] mikko
|
jasong_at_apache: if you edit Socket.cpp line 103
|
[19:30] jasong_at_apache
|
and remove it
|
[19:30] mikko
|
#ifdef ZMQ_TYPE around the line should help
|
[19:30] jasong_at_apache
|
and i'll grab the previous commit
|
[19:30] mikko
|
sustrik: ZMQ_TYPE is 'int' ?
|
[19:30] sustrik
|
mikko: yes
|
[19:30] mikko
|
http://github.com/zeromq/jzmq/blob/master/src/Socket.cpp#L116
|
[19:30] mikko
|
looking at this jzmq uses int64_t
|
[19:31] sustrik
|
gonzalo messed it up
|
[19:31] sustrik
|
please, do report the problem on jzmq bugtracker
|
[19:33] jasong_at_apache
|
docs want straight int
|
[19:34] mikko
|
done
|
[19:34] sustrik
|
thanks
|
[19:35] sustrik
|
maint & master, i meant
|
[19:35] jasong_at_apache
|
maint? who needs maint!
|
[19:36] mikko
|
it's a lot better now
|
[19:36] jasong_at_apache
|
;-)
|
[19:36] mikko
|
as there aren't breakages that often
|
[19:36] sustrik
|
yeah, the versioning contract helped
|
[19:36] mikko
|
are there constants for api version etc at the moment?
|
[19:37] sustrik
|
just a plain 0mq version
|
[19:37] sustrik
|
the api version should translate into library version
|
[19:37] sustrik
|
but that's not done yet
|
[19:37] mikko
|
i guess it's easy to create int out of that during configure phase
|
[19:38] mikko
|
something easy to compare in preprocessor macros
|
[19:38] mikko
|
something like #if ZMQ_VERSION_ID > 2001001 #else etc
|
[19:38] mikko
|
2001001 being 2.1.1
|
[19:38] sustrik
|
mikko: good idea
|
[19:41] sustrik
|
on the other hand, some bindings (C#, lisp) don't even include the header file
|
[19:46] mikko
|
hmm
|
[19:47] mikko
|
i reckon there still might be value for such a thing
|
[19:47] jasong_at_apache
|
everything compiled correctly (and I'm using trunk all around), also swapped int for int64 on the zmq_type
|
[19:47] jasong_at_apache
|
i meant the other way around there
|
[19:49] sustrik
|
goodo
|
[19:49] sustrik
|
anyway, this kind of thing is a bit scary as people are using the binding is production
|
[19:49] sustrik
|
in*
|
[19:49] jasong_at_apache
|
:-)
|
[19:50] sustrik
|
mikko: yes, it will help for most bindings
|
[19:50] sustrik
|
i'll discuss it with mato tomorrow, he's in charge of the build system
|
[19:55] novas0x2a
|
i'm using zmq_poll w/ 2.0.9, REQ/REP pair, tcp or ipc proto, same context (1 process). zmq_poll never seems to notice activity. if i use inproc it works, if i use a spinloop/nonblocking-recv (no poll) it works. should i expect it to work with tcp?
|
[19:56] sustrik
|
yes
|
[19:56] sustrik
|
if you have a probelm, write a simple program showing it and send it to the mailing list
|
[19:57] novas0x2a
|
could you do a quick sanity check to make sure i'm not pebkacing? http://codepad.org/3Pxo5V1x
|
[19:58] novas0x2a
|
(if you want to compile -DUSE_POLL or -DUSE_BLOCK)
|
[20:00] CIA-20
|
jzmq: 03Gonzalo Diethelm 07master * rd215dac 10/ (src/Socket.cpp src/org/zeromq/ZMQ.java):
|
[20:00] CIA-20
|
jzmq: Added support for ZMQ_FD (getFD()) and ZMQ_EVENTS (getEvents()).
|
[20:00] CIA-20
|
jzmq: Improved comments. - http://bit.ly/asWHxF
|
[20:04] sustrik
|
novas0x2a: the program looks ok after short inspection
|
[20:04] sustrik
|
if you want someone to actually debug it though, you have to strip as much code as possible and send it to the mailing list
|
[20:10] jond
|
novas0x2a: is this the error : raw.c:158: int main(int, char**): Assertion `ret' failed.?
|
[20:11] novas0x2a
|
jond: that's the detection of the error, yeah (it should have printed Timeout just before that)
|
[20:15] jond
|
novas0x2a: yep but when you timeout in yr code, you return 0
|
[20:15] CIA-20
|
jzmq: 03Gonzalo Diethelm 07master * r9ccc16b 10/ src/org/zeromq/ZMQ.java : Added support for automatically growing the size of a Poller object. - http://bit.ly/cCKiIK
|
[20:17] jond
|
novas0x2a: and asserting on that doesnt seem to be a great idea
|
[20:17] novas0x2a
|
jond: this is test code, not real code. i've been trying to map the conditions under which it doesn't work, to track it down. clearly, in real code, i would handle a timeout appropriately :)
|
[20:21] Peaceful
|
okay, so I made the hello world server-client example, and it worked great until I had to kill the server, and now the server won't bind to tcp anymore. (???)
|
[20:21] Peaceful
|
Here's the server code (python): http://pastebin.com/QghpWSYk
|
[20:21] Peaceful
|
client code: http://pastebin.com/13YUAGDg
|
[20:21] Peaceful
|
and the error when I try to start server a second time: http://pastebin.com/hsHYr8Va
|
[20:22] Peaceful
|
ctrl-c wouldn't stop the server, so I ended up looking up the pid and running "kill $pid"
|
[20:22] Peaceful
|
this has got to be some common newbie problem, I figure...
|
[20:23] Peaceful
|
But usually tcp ports become available again after you've killed the original program that was binding the port.
|
[20:23] Peaceful
|
...in my experience, at least
|
[20:25] jasong_at_apache
|
is there a mailing list keeping track of commits? (does github do this?)
|
[20:26] mikko
|
github does that
|
[20:28] jond
|
novas0x2a: line 63 in yr file. you redefine rc. it should read rc = zmq_poll(item, 1, timeout); and the code works
|
[20:30] mikko
|
sustrik: java handles all options as int64_t (numeric ones)
|
[20:30] mikko
|
so i guess thats not an issue
|
[20:31] novas0x2a
|
jond: oh, man, i knew it was going to be my fault somehow. sigh.
|
[20:31] mikko
|
assuming that sizeof (uint64_t) <= sizeof (int64_t) is a sane assumption
|
[20:32] jasong_at_apache
|
is that only 64bit systems?
|
[20:35] mikko
|
sizeof both is 8 on systems i have access to
|