IRC Log

Tuesday September 27, 2011

[Time] NameMessage
[07:47] Guest40207 Anyone ever build 0MQ 2.1.9 on UP-UX 11.i3?
[08:48] sustrik Guest40207: you mean HP-UX?
[09:28] mikko sustrik: he is gone
[10:19] sustrik mikko: still there?
[10:19] mikko yes
[10:20] sustrik the AIX question
[10:20] sustrik i've got an reply from andy piper
[10:20] sustrik there's this programme:
[10:20] sustrik http://www-304.ibm.com/partnerworld/wps/pub/systems/vlp/index
[10:20] sustrik "The Virtual Loaner Program (VLP) offers no-charge remote access to IBM hardware"
[10:21] mikko that would be pretty cool
[10:21] sustrik not sure whether it can be automated
[10:21] sustrik btw, HP has a similar programme called DSSP (IIRC)
[10:21] mikko even manual access would be enough for the odd bugs and testing
[10:21] sustrik which allows testing on HP-UX
[10:25] mikko currently we have no way of testing AIX / HP-UX
[10:25] mikko so anything would be better
[10:25] sustrik yup
[10:25] sustrik i'm looking into it
[10:31] mikko cool
[10:32] mikko sustrik: do you run virtualbox or vmware locally?
[10:32] sustrik i have a virtual box installed
[10:32] mikko i could create you freebsd image with all essentials installed
[10:32] mikko if you want to try on freebsd occasionally
[10:32] sustrik nice
[10:33] sustrik is the problem you are seeing reproducible>
[10:33] sustrik ?
[10:33] mikko i can reproduce it on mac
[10:33] mikko haven't tested freebsd yet
[10:33] mikko i applied the patch on the ticket and havent seen the error since
[10:33] mikko occasionally getting this:
[10:33] mikko Assertion failed: ok (mailbox.cpp:79)
[10:34] mikko during shutdown
[10:35] sustrik the patch just hides the problem, we should find out what's actually wrong
[10:35] sustrik the error should not happen at all
[10:35] sustrik OK, I see, both VLP and DSSP allow you to book the hardware in advance
[10:36] sustrik so, probably no daily builds
[10:36] sustrik but in theory we can test before releasing
[10:39] mile is it possible to do some sort of broadcast to a 0mq network?
[10:40] mile I'm trying to make a self-manageable network
[10:40] mile and the point of joining the network is a bit of a puzzle for me
[10:41] mile I am trying to avoid a centralized manager which would do that
[10:41] mikko pgm ?
[10:43] mile I was just looking into it... do I need a list of nodes for a multicast, or I can send to a partition of a network?
[10:45] mikko it's multicast
[11:57] mile do two programs connecting to the same multicast address from a single network interface
[11:57] mile both receive messages?
[11:57] mile (2 processes)
[11:58] mile or is there any loop-prevention mechanism involved?
[12:02] mile I followed the epgm example, but I don't receive any messages
[12:05] sustrik multicast loopback is off
[12:06] sustrik it's not a real multicast anyway and it's inefficient slowing the whole thing down
[12:06] sustrik if you want to send messages to a local machine use ipc://
[12:15] mile sustrik, I need it as a swarm control channel
[12:15] sustrik on a LAN?
[12:15] mile yes
[12:16] mile and I am trying to minimize the a-priori knowledge needed to join
[12:16] mile if it is only a multicast address, it would definitely work for me
[12:16] mile I'm just testing on a single machine right now
[12:18] mile sustrik, and by slowing down, you mean only the pgm socket os slowed down, or the whole network?
[12:18] sustrik i mean that local multicast is dropping a lot of packets
[12:18] sustrik leading to local retransmits
[12:19] sustrik anyway, it's switched off so you don't have to care about it
[12:19] mile that means that it's ok that I'm not getting any messages on the local machine?
[12:28] sustrik yes, it's ok
[12:29] sustrik pgm and epgm transports work only over the network
[12:32] mile I'll try to test with a VM
[12:33] mile it's hopefully not smart enough to differentiate between virtual and physical nodes :)
[12:57] sustrik mile: no idea
[12:57] sustrik virtual networking seems to be a complex topic
[12:57] sustrik how it works with multicast is not obvious at all
[14:54] mile hm, so I just tried PGM with virtualbox
[14:54] mile doesn't seem to work
[14:54] mile any ideas how to track down the problem?
[14:54] mile everything compiles fine
[14:54] mile but no messages arrive
[14:59] mikko mile: openpgm has some test utils with it iirc
[14:59] mikko and it supports some environment variable for outputting info
[14:59] mikko but apart from that, wireshark
[14:59] mile tx, I'll try :)
[14:59] mile does the router/switch need any special settings to support multicast?
[15:01] RandomMike hi all
[15:01] RandomMike is there anybody on Windows with zmq?
[15:03] RandomMike I have an app on widows that is run in multiple instances on one box
[15:04] mile mikko, I'm definitely receiving packets from the multicast address
[15:04] RandomMike instances have predefined ports that are used as "connection strings" to zmq_bind
[15:04] mile source is the machine sending, destination the multicast address
[15:05] RandomMike unfortunatelly zmq on windows binds to random ports since signalling between threads is implemented as
[15:06] RandomMike TCP/IP connection over loopback port
[15:06] RandomMike https://github.com/zeromq/zeromq2-1/blob/master/src/signaler.cpp#L209
[15:06] RandomMike and now my app sometimes cannot be started since port is already occupied by another instance and its "signal" channel
[15:06] RandomMike any idea how to workaround it?
[15:07] sustrik mile: do you still have sender and receiver on the same box?
[15:07] mile yes, but virtualized
[15:07] mile I found one definite error
[15:07] mile let me try again
[15:08] sustrik RandomMike: no idea right now
[15:08] sustrik however, can you log the issue to the bug tracker?
[15:09] sustrik or send an email to the mailing list?
[15:09] mile sustrik, nope, still the same, I get traffic in wireshark
[15:09] mile but nothing in zmq
[15:09] RandomMike sustrik: i'll register and send info
[15:10] sustrik RandomMike: thanks
[15:10] sustrik mile: can you test on two boxes?
[15:10] RandomMike if there will be no easy workaround i will create bug report
[15:10] RandomMike thanks
[15:10] sustrik multicast on a single box is a very strange corner case
[15:10] mile well, I have a VM running
[15:11] mile and it has its own IP in the same subnet
[15:11] mile so it's not really really the same box
[15:11] mile but as soon as i dig out another box
[15:11] mile i will try
[15:12] mikko multicast is tricky
[15:13] mile mikko, but would you consider it reliable, once done right?
[15:14] mikko mile: openpgm is pretty solid when done right
[15:14] mile in my case it is a perfect solution, theoretically :)
[15:14] mikko what is the problem you are solving?
[15:14] mikko i think i saw it earlier but can't remember anymore
[15:15] mile swarm network
[15:15] mile I want to avoid a single tracker node
[15:15] mile but rather multicast the control data, nodes joining, leaving, heartbeats etc
[15:16] mikko this has interesting applications
[15:16] mile so multicast seems to be the case with minimal a-priori knowledge of the network topology
[15:16] mikko it would be nice to see paxos implementation at some point
[15:17] mile I need a simplified version of paxos, sort of :)
[15:30] cremes mile: ooh, a version of paxos built on top of 0mq would be cool
[15:39] mile mikko, sustrik, my bad, I forgot to set up the ZMQ_SUBSCRIBE for the socket
[15:39] mile multicast works fine
[15:40] mile on the same host, 2 processes, as well as in VM (Virtualbox)
[15:40] sustrik :)
[15:40] mile sorry for bothering you
[15:40] sustrik np
[15:41] mile its a nice FAQ item however ;)
[15:41] mile my multicast SUB doesnt work -> remember its still a SUB socket
[15:42] sustrik feel free to add it to the FAQ
[15:57] mikko hmm
[15:57] mikko sustrik
[16:08] ilya hi
[16:09] ilya I can see that SCTP was proposed in zmq around v0.5
[16:09] ilya what's the reason for it no being kept ?
[16:09] ilya http://www.zeromq.org/whitepapers:design-v05#toc9
[16:10] Steve-o lack of interest, lack of fairness between streams
[16:11] Steve-o SCTP looks better on paper than in practice apparently
[16:12] Steve-o You could always submit patches to re-add it though
[16:20] cremes i think sustrik wanted to refactor and document the interface for adding new transports
[16:20] cremes that's my recollection anyway
[16:21] ilya ok
[16:22] Steve-o there's a new github project somewhere for that
[16:22] ilya hm .. Steve-o do you haw any pointer to those findings ?
[16:22] Steve-o an easier method sitting above IPC
[16:22] cremes of course there is... it wouldn't be 0mq unless there were a dozen or so repositories for each idea :)
[16:23] ilya Steve-o: I mean the finding of SCTP being so-so
[16:23] ilya .. in practive
[16:23] ilya s/practive/practice/
[16:23] Steve-o ilya: sure, I think it was from Sustrik though
[16:24] Steve-o I think the bigger problem is it being a new protocol
[16:24] Steve-o SCTP implementation can always be tweaked to make it better
[16:25] Steve-o It might be reference in Google's SPDY docs
[16:25] Steve-o >> http://www.chromium.org/spdy/spdy-whitepaper
[16:25] ilya thanks :)
[16:26] Steve-o A big problem with HTTP is that pipelining is pretty poor and parallel downloads are needed these days
[16:27] Steve-o SCTP allows multiple streams out-of-the-box
[16:29] cremes sounds like BEEP
[16:29] cremes which is up a level in the stack, but shares that particular concept
[16:33] Steve-o I think I've heard of that
[16:34] Steve-o lol, from Google search summary: "Reducing HTTP latency with SPDY. Last time I looked at BEEP it was incredibly verbose and looked painful to implement. "
[19:35] Steve-o mm, would be nice to build 0mq on the command line without 2008
[20:58] jose_zap is someone here familiar with the 0mq php extension?
[21:04] mikko jose_zap: yes
[21:05] jose_zap mikko: I'm having two problems. The most important one right now is that using a publisher socket is not working from a web app
[21:05] jose_zap but using the same setting from a command line publisher works fine
[21:05] jose_zap is there any restriction for web apps such as the web server, or something like that?
[21:09] mikko probably not
[21:10] mikko why do you publish from a web app?
[21:10] mikko do you have the web application binding or connecting?
[21:10] jose_zap mikko: to offload a log function, is there a better pattern that pub-sub?
[21:11] mikko i guess that depends on the requirements
[21:11] jose_zap mikko: I wrote the logger server in the cli and it works fine. copy pasted the code into a file that will be requested via web and it does not publish anything
[21:11] mikko can you put that code to gist.github.com ?
[21:11] jose_zap sure
[21:13] jose_zap mikko: https://gist.github.com/1246265
[21:14] mikko it doesnt necessarily make sense to bind in a web application
[21:14] mikko as the socket will die as soon as the request is over
[21:14] mikko you might want to connect rather
[21:14] mikko and bind the entity that receives the log messages
[21:15] jose_zap mikko: that is my second problem, the documentation says I can have a persistent connection reused over multiple requests.. but that is not true
[21:15] mikko it is true
[21:15] mikko but it's not shared between processes
[21:16] mikko if you are using webserver like apache it will be prefork
[21:16] mikko and each apache child is separate process
[21:16] jose_zap mikko: yeah, I was already suspecting that
[21:16] jose_zap I'm using php-fpm
[21:16] mikko and each process will have it's own persistent sockets
[21:16] mikko probably multiple processes with fpm as well
[21:16] jose_zap yes, that's how it works
[21:17] mikko i would say that if you are doing this during a request then connect makes more sense
[21:18] jose_zap mikko: you mean having a server polling for messages and make the web app connect to it?
[21:18] mikko for example yes
[21:19] jose_zap mikko: thanks, I will look into that
[21:20] mikko https://gist.github.com/06e7a5deed861d74b896
[21:20] mikko thats probably the simplest test server you can get started with
[21:21] jose_zap I have something vey similar to that, mikko
[21:21] jose_zap but I think the SUB is expecting a PUB
[21:21] jose_zap what would be the other way to send a message to a SUB socket?
[21:29] jose_zap mikko: thanks for your help, really appreciate it. I just found out that the push - pull pattern is what I needed
[21:50] CIA-79 pyzmq: 03MinRK 07master * rb02cd46 10/ (4 files in 3 dirs): add ctx.destroy() method for closing attached sockets ...
[21:50] CIA-79 pyzmq: 03MinRK 07master * r8189488 10/ (zmq/tests/test_context.py zmq/tests/test_socket.py): add further shutdown test cases ...
[21:50] CIA-79 pyzmq: 03MinRK 07master * r18e86ce 10/ (5 files in 3 dirs): Merge PR #140 (ctx.destroy) ...
[21:52] Steve-o my first stab at 0mq packaging, what a pita
[21:53] Steve-o cmake-gui doesn't function like cmake, it remembers the last project, awesome