[Time] Name | Message |
[01:41] mattp
|
Hi. I'm trying to build using Cygwin. I'm getting me an error message telling me to install e2fsprog even though I've already got it.
|
[01:41] mattp
|
Any suggestions?
|
[01:42] mattp
|
(not sure how that "me" got into my third sentence. :) )
|
[01:49] mattp
|
crickets...
|
[01:52] mpassell
|
thought I'd try through a different client. Anyone out there?
|
[03:51] chowmeined
|
can one multiplex different message patterns on a single socket?
|
[04:18] andrewvc
|
cremes, by chance are you around?
|
[04:33] dermoth
|
iirc there used to be device config example, looks like they're gone. why?
|
[04:33] dermoth
|
king of easier than reading the code :)
|
[04:38] guido_g
|
dermoth: see http://github.com/imatix/zdevices
|
[04:38] guido_g
|
maybe thats what you want
|
[04:40] dermoth
|
guido_g, thanks, looks nice. Actually for now i'm just using the stock devices that come with zeromq. The config quite basic, in xml. I was justt wondering where they gone
|
[04:41] guido_g
|
afair there going to be moved out of the core distribution
|
[04:42] dermoth
|
ok... well I kind of like them for the most basic usage... I could replace the config with command-line arguments though, imho it would be much easier
|
[04:43] guido_g
|
dermoth: btw, please send your patch to the ml with a statement that it is licensed under mit/x11, othwerwise it can't be accepted
|
[04:43] dermoth
|
really?
|
[04:44] guido_g
|
it's the procedure
|
[04:44] guido_g
|
has been discussed here and on the ml
|
[04:46] guido_g
|
dermoth: easiest way is to use format-patch and append that to the mal w/ the license statement
|
[04:46] dermoth
|
then how about I sen you this?
|
[04:46] dermoth
|
perl -pi -e 's/ZMQ_DOWNSTREAM/ZMQ_PUSH/; s/ZMQ_UPSTREAM/ZMQ_PULL/;' devices/zmq_streamer/zmq_streamer.cpp
|
[04:46] guido_g
|
not me
|
[04:46] guido_g
|
dermoth: see git format-patch
|
[04:46] dermoth
|
git commit -m'zmq_streamer: Rename DOWNSTREAM/UPSTREAM to PUSH/PULL'
|
[04:47] dermoth
|
I use git-format-patch... but I'm not even subscrived to the ml
|
[04:47] guido_g
|
too bad
|
[04:47] dermoth
|
the two commands abot will get you the same result less the credit
|
[04:48] guido_g
|
what credit?
|
[04:48] dermoth
|
the author in commit message
|
[04:48] guido_g
|
ah
|
[04:48] dermoth
|
unless you're authorised to do: git commit -m'zmq_streamer: Rename DOWNSTREAM/UPSTREAM to PUSH/PULL' '--author=Thomas Guyot-Sionnest <thomas@blinkx.com>'
|
[04:48] guido_g
|
i'm more concerned about the license statement, w/o it the patch can't go in
|
[04:49] dermoth
|
it's not a patch it a command that patsh, there shouldn't be any legal issue. if you run the command you have the copyright for the resulting code ;)
|
[04:50] guido_g
|
i think that is clear
|
[04:50] guido_g
|
i just stated what's needed to get a patch in, because a pull-req is a patch
|
[04:54] dermoth
|
I understand the legal basis, but I will likely not send a patch that takes me more time to "send" thna write... Imagine trying that with the Linux Kernel!
|
[04:54] guido_g
|
as i said, the device apps will be moved out of the core, afaik
|
[04:55] guido_g
|
so...
|
[04:55] dermoth
|
so I guess there won't be any trouble getting that in, whatever method you use... on that i'll get back to my testing :)
|
[04:55] guido_g
|
dermoth: wrong
|
[04:55] guido_g
|
the license issue is a problem atm
|
[04:55] guido_g
|
ask pieter about it
|
[04:56] guido_g
|
and go read the ml (via gmane w/o registration)
|
[04:56] dermoth
|
what I meant is that it probably take you less time to rename it yourself than using my patch (and I use gmane...)
|
[04:57] dermoth
|
i wouldn't mind taking the time to post on the ml for a real change... and can'T I put it in the commit message too?
|
[04:58] guido_g
|
cool, then you can easily find the threads about patches and legal issues
|
[04:58] guido_g
|
if it were in the commit message, even better
|
[04:58] dermoth
|
except that i'd rather catch some much needed sleep
|
[04:58] dermoth
|
ok
|
[05:04] dermoth
|
here you go... next time i'll know :)
|
[05:12] guido_g
|
hey, i didn't invent the laws and such, just repeating the handbook
|
[05:13] dermoth
|
Any PECL developers here? IMHO the PHP api should have a cb that is called on persistent socket creation, so we could create the socket and connect in one shot
|
[05:39] sleeperbot
|
anybody know an alternative driver to http://github.com/JustinTulloss/zeromq.node for node.js?
|
[05:40] sleeperbot
|
this driver takes up a ton of CPU
|
[05:42] sleeperbot
|
the way that it is implemented =/
|
[05:48] yrashk
|
sleeperbot afair there's none
|
[05:48] yrashk
|
but supposedly I will need one soon-ish
|
[05:48] yrashk
|
so might invest some time in getting it done properly
|
[05:51] sleeperbot
|
i see, thanks for the info
|
[05:52] yrashk
|
yw
|
[07:02] sustrik
|
psino: how would it work for recv calls?
|
[07:03] sustrik
|
dermoth: it's a problem with OpenPGM, which will be solved soon; what i was saying is that in most cases you have just one context so you never encounter the problem
|
[07:04] sustrik
|
chowmeined: no, you can't
|
[08:49] ivan-korobkov
|
Hi, I use zmq 2.0.9 + epgm + the latest python bindings. Sometimes it crashes with Assertion failed: *tmpbuf > 0 (zmq_decoder.cpp:60). Does anybody know why it happens? Is it a bug and I should create an issue?
|
[09:08] guido_g
|
try to isolate it in a small test case, so others can verify it
|
[09:12] ivan-korobkov
|
OK, I will try, but it happens rather sporadically.
|
[09:13] guido_g
|
will be no problem, if we have a program that can run
|
[09:31] psino
|
sustrik: In the case of a pull socket, I was thinking it could disconnect from the push socket and still be able to recv() on the messages the push socket has sent to it
|
[09:40] sustrik
|
ivan-korobkov: create an issue
|
[09:41] sustrik
|
psino: any idea of how the API should look like?
|
[09:46] psino
|
sustrik: from the end users point of view, much like now, except that after calling socket.close(), a poller wouldn't put the socket in exceptional state before the messages that has been sent to it from the other side has been recv()'ed
|
[10:32] CIA-20
|
zeromq2: 03Martin Sustrik 07master * r85aa25e 10/ src/req.cpp : bug in REQ+multipart fixed - http://bit.ly/bzWD3V
|
[10:58] CIA-20
|
zeromq2: 03Martin Sustrik 07master * rc7b9ba3 10/ (src/command.hpp src/session.cpp): reconnection process fixed when failure occurs during init phase - http://bit.ly/cIBUcl
|
[20:02] bgranger
|
sustrik: question about msg ref counting...
|
[20:11] keffo
|
I think they're all off work :)
|
[20:11] keffo
|
starting to think I'm the only one around anymore :)
|
[20:12] keffo
|
lol, last time anyone even spoke in here was about 11h ago :)
|
[20:12] andrewvc
|
and you just broke the record
|
[20:12] keffo
|
no, bgranger did 10 mins ago :)
|
[20:14] andrewvc
|
oh damn, hehe, that's what I get for sleeping my laptop, missing all the action
|
[20:16] keffo
|
:)
|
[20:17] keffo
|
Does anyone know best-practices for transferring large amounts of data? Simply to split into multipart?
|
[20:17] andrewvc
|
I remember there were benchmarks on the zeromq site with various message sizes, ranging up to something huge
|
[20:18] keffo
|
right, but simply sending one huge message just sounds like mem hog to me
|
[20:32] sustrik
|
i am back
|
[20:32] sustrik
|
bgranger: what's the question?
|
[20:34] sustrik
|
keffo: so is multipart message, you have to break it into sequence of messages
|
[20:34] sustrik
|
then you have to define your own transfer protocol etc.
|
[20:34] sustrik
|
it's not easy
|
[20:34] keffo
|
mm
|
[20:35] sustrik
|
what do you want to do?
|
[20:35] keffo
|
To be honest I'm leaning towards an accompanying torrent lib for larger transfers
|
[20:35] keffo
|
I solved both my deadlock and garbled data btw..
|
[20:35] keffo
|
as expected it was all me :)
|
[20:36] keffo
|
CRT mismatch actually
|
[20:36] sustrik
|
:)
|
[20:36] sustrik
|
yeah, makes sense, you would have to implement torrent kind of behaiour yourself on top of 0mq
|
[20:36] bgranger
|
sustrik: we have a very subtle question about ref counting of msgs...
|
[20:37] keffo
|
sustrik, I was thinking more along the lines of using the transmission codebase, or libtorrent..
|
[20:37] sustrik
|
bgranger: yes?
|
[20:38] bgranger
|
Hi
|
[20:38] sustrik
|
keffo: sure
|
[20:38] sustrik
|
hi
|
[20:38] bgranger
|
We are trying to understand the refcounting
|
[20:38] bgranger
|
We see that zmq_msg_close is the place where the ffn is called if the ref count is 0
|
[20:39] bgranger
|
What exactly does zmq_send do with the ref count. What is zmq_close is called *before* a msg is actually send?
|
[20:39] bgranger
|
Does send somehow end up calling zmq_msg_close?
|
[20:42] sustrik
|
yes, send takes ownership of your message
|
[20:43] bgranger
|
OK, we just saw that at the end of xsend there is
|
[20:43] sustrik
|
your message object will be empty after return from the send call
|
[20:43] bgranger
|
int rc = zmq_msg_init (msg_);
|
[20:43] sustrik
|
yes, that initialises your message to empty
|
[20:43] bgranger
|
So if you then call zmq_msg_close you are not closing the original msg, but a new empty one.
|
[20:43] bgranger
|
Great!
|
[20:43] sustrik
|
exactly
|
[20:43] bgranger
|
We are getting python to know when all copies of a message are done being sent.
|
[20:44] sustrik
|
intercepting the free function?
|
[20:44] bgranger
|
There is a subtle issue with non-copy sends. The user has to be able to know when zmq is done with it and they can edit the buffer again.
|
[20:44] bgranger
|
Yes, we use the ffn.
|
[20:45] bgranger
|
Otherwise the user might accidentally start the edit the buffer they sent before zmq has send it...
|
[20:45] bgranger
|
non-copy sends are super subtle...
|
[20:45] sustrik
|
so you are basically writing your own allocator
|
[20:46] bgranger
|
We use Pythons garbage collection mechanism along with our own ref counts that allow us to track the underlying zmq ref counts.
|
[20:46] sustrik
|
what's the goal?
|
[20:47] bgranger
|
In Python you might have a mutable array of numbers that you want to send using non-copy.
|
[20:47] bgranger
|
You send it, and maybe then you want to modify it.
|
[20:47] sustrik
|
i see
|
[20:47] bgranger
|
But if you modify it before zmq sends it, the wrong thing gets sent
|
[20:47] bgranger
|
This is common in Python with numerical arrays (matrices, etc.)
|
[20:48] bgranger
|
For large static data it is not a problem, but in numerical/scientific computing, most data structures are mutable...
|
[20:49] bgranger
|
sustrik: I think we understand the refcounting better now though. Thanks!
|
[20:50] sustrik
|
np
|
[20:51] sustrik
|
a question though:
|
[20:51] sustrik
|
doesn't it turn the messaging into sync model?
|
[20:51] sustrik
|
one-message-a-time?
|
[21:08] bgranger
|
sustrik: back from lunch...
|
[21:09] bgranger
|
no the messaging is still fully async
|
[21:09] minrk
|
sustrik: I'm not sure what your question means. All we did was add an object that tracks whether a message no longer has references in zmq
|
[21:09] bgranger
|
You can then query that object to learn if the message has fully been sent.
|
[21:10] bgranger
|
send does not block any more than it used to
|
[21:10] minrk
|
or if there are any message objects pointing to it at all
|
[21:11] bgranger
|
minrk: it would be nice if we could have a method of MessageTracker that would block until the msg is not pending though.
|
[21:12] minrk
|
that's easy
|
[21:13] bgranger
|
minrk: I am ready when you are....just give me a call on skype
|
[21:13] minrk
|
okay
|
[21:14] minrk
|
give me a few minutes
|
[21:15] bgranger
|
no problem...
|
[21:20] minrk
|
okay
|
[21:22] mrossi
|
anyone know who is on the sending side of the signaler instance inside of the app_thread class?
|
[21:24] mrossi
|
have an app that occasionally gets hung at line 88 of app_thread.cpp doing a signaler.recv()
|
[21:38] dbudworth
|
question from a newbie zeromq user. I'd like to implement a socket server type system where the server is stateful for each client connection. Is there a zeromq socket type for this? it appears as though the server doesn't have any context about which client it's sending to at any one time
|
[22:51] ModusPwnens
|
Hmm, can anyone take a look at some results from benchmarking tests?
|
[22:52] ModusPwnens
|
I am seeing some strange results, but maybe they are normal
|
[22:52] ModusPwnens
|
http://pastie.org/1161267
|