OK, great, I'll push that fix into the 3.2 stabilization branch as well. -Pieter
On Thu, Nov 22, 2012 at 12:15 PM, Peter Friend <[email protected]> wrote: > That seems to have fixed it. With my old broken code the REQ socket never > sees the message instead of dumping core, which I assume is the desired > behavior. No exception is thrown. > > Thanks! > > Peter > > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of Martin Hurton > Sent: Wednesday, November 21, 2012 2:55 PM > To: 0MQ development list > Subject: Re: [zeromq-dev] segfault in python during poll() (but it's my fault) > > The master contains patch that should fix the crash. Can you please > test and report back? Thanks! - Martin > > On Wed, Nov 21, 2012 at 9:33 PM, Martin Hurton <[email protected]> wrote: >> Hi Peter, could you please create an issue for this and attach a >> simple example, best in C, to reproduce this segfault? Thanks! >> >> - Martin >> >> On Wed, Nov 21, 2012 at 4:49 PM, Martin Hurton <[email protected]> wrote: >>> Thanks for report, I will check it. >>> >>> On Nov 20, 2012 3:18 AM, "Peter Friend" <[email protected]> wrote: >>>> >>>> I have a client REQ talking to a ROUTER. I am translating some prototype >>>> code from python to Java so the ROUTER is in Java and the REQ client is >>>> python. I was rather perplexed when I got a segfault during poll(): >>>> >>>> >>>> >>>> socks = dict(polldev.poll(10 * 1000)) >>>> >>>> >>>> >>>> from strace: >>>> >>>> write(6, "\1\0\0\0\0\0\0\0", 8) = 8 >>>> >>>> write(8, "\1\0\0\0\0\0\0\0", 8) = 8 >>>> >>>> poll([{fd=8, events=POLLIN}], 1, 0) = 1 ([{fd=8, revents=POLLIN}]) >>>> >>>> read(8, "\1\0\0\0\0\0\0\0", 8) = 8 >>>> >>>> poll([{fd=8, events=POLLIN}], 1, 0) = 0 (Timeout) >>>> >>>> write(6, "\1\0\0\0\0\0\0\0", 8) = 8 >>>> >>>> fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0 >>>> >>>> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = >>>> 0x7fc8abbed000 >>>> >>>> write(1, "sending 1\n", 10sending 1 >>>> >>>> ) = 10 >>>> >>>> poll([{fd=8, events=POLLIN}], 1, 0) = 1 ([{fd=8, revents=POLLIN}]) >>>> >>>> poll([{fd=8, events=POLLIN}], 1, 0) = 1 ([{fd=8, revents=POLLIN}]) >>>> >>>> read(8, "\1\0\0\0\0\0\0\0", 8) = 8 >>>> >>>> poll([{fd=8, events=POLLIN}], 1, 0) = 0 (Timeout) >>>> >>>> poll([{fd=8, events=POLLIN}], 1, 10000 <unfinished ...> >>>> >>>> +++ killed by SIGSEGV (core dumped) +++ >>>> >>>> >>>> >>>> This ended up being caused by the fact that I forgot to put in the empty >>>> frame for the reply to the REQ. Once I did that everything worked, but I >>>> wouldn't expect this to cause a segfault. I am working on a Java REQ client >>>> as well to verify whether it's a core library issue. I am using my own >>>> build >>>> of libzmq from the master branch I built today. >>>> >>>> >>>> >>>> Thanks, >>>> >>>> >>>> >>>> Peter >>>> >>>> >>>> >>>> >>>> _______________________________________________ >>>> zeromq-dev mailing list >>>> [email protected] >>>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev >>>> >>> > _______________________________________________ > zeromq-dev mailing list > [email protected] > http://lists.zeromq.org/mailman/listinfo/zeromq-dev > _______________________________________________ > zeromq-dev mailing list > [email protected] > http://lists.zeromq.org/mailman/listinfo/zeromq-dev _______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
