Javier, Are you using the same 0MQ socket from multiple threads?
-Pieter On Fri, Nov 9, 2012 at 9:59 PM, Javier Blesa Martínez <[email protected]> wrote: > Hi, > > I ve a c++ code that interconect different classes with zeromq. I work in > Ubuntu 12.04 and the Zeromq version is 3.2.1 > > A module sends google protobuf in the 0mq socket and other module receives > it and save in a database. When the code runs for 10 seconds or less I can > show this error: > > Assertion failed: ok (mailbox.cpp:84) > > the dmesg said: > > [13436.436619] TWISTTestbedCAg[9592]: segfault at 0 ip (null) sp b2efefac > error 14 in TWISTTestbedCAgent[8048000+17000] > > and the gdb core: > > El programa terminó con la señal 11, Segmentation fault. > #0 0xb768f182 in google::protobuf::MessageLite::ParseFromString(std::string > const&) () from /usr/lib/libprotobuf.so.7 > (gdb) bt > #0 0xb768f182 in google::protobuf::MessageLite::ParseFromString(std::string > const&) () from /usr/lib/libprotobuf.so.7 > #1 0x0804fe3a in VirtualControlChannel::RecvProtoBuf (this=0x94a9008, > protobuf=...) at src/VirtualControlChannel.cpp:186 > #2 0x0804e233 in endl > (__os=...) at /usr/include/c++/4.6/ostream:544 > #3 operator<< (__pf=, this=) at /usr/include/c++/4.6/ostream:115 > #4 Discovery::VCCListen (this=0x0, R=0x0, O=0x0, E=0xbffa5b24) at > src/Discovery.cpp:84 > #5 0x7ada1c00 in ?? () > > The piece of code with that fuction is: > > > //Receive ZMQ message and convert into protobuf object > bool VirtualControlChannel::RecvProtoBuf(::google::protobuf::Message > &protobuf) > { > int flag; > assert (this->sock != NULL); > zmq::message_t message; > flag = this->sock->recv(&message); > if (flag == -1) > { > throw std::runtime_error("Failed to receive zeromq message: "); > } > std::string buffer(static_cast<char*>(message.data()), message.size()); > > printf("Message size: %d\n", message.size()); > std::cout << std::flush; > > if (!protobuf.ParseFromString(buffer)) > throw std::runtime_error("Failed to parse protobuf message"); > return true; > }; > > Do you know form where the problem comes? > > Best regards, > > > -- > ---------------------------------- > Javier Blesa Martínez > Ingeniero de Telecomunicación > ETSI Telecomunicación - UPM > Laboratorio de Sistemas Integrados - DIE > > Teléfono: +34 91 549 57 00 ext 4223 > > Correo: [email protected] > > Web: www.elb105.es > > > > > > _______________________________________________ > 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
