Discussion:
Problems with event channels in Mico 2.3.13
Kretschel Klaus
2009-06-26 14:26:16 UTC
Permalink
Hi,

until now our software used Mico 2.3.11 without problems. Now I wanted to port
it to Suse Linux 11 using 64 bit architecture (g++ 4.3) and thus had to
upgrade to Mico 2.3.13. Everything compiles fine. However, I get a run-time
error using event channels (the executable is named dispatcher):

donau1: starting dispatcher ...
[469675298 - 140197343930112] static.cc:698: assertion failed
----
The line mentioned is:
assert ((*(_MICO_T *)v)->_ior());
----
Process /home/donau101/mirror/kkre/linux-4.1/bin/dispatcher ended with signal
6
*** glibc detected *** /home/donau101/mirror/kkre/linux-4.1/bin/dispatcher:
double free or corruption (out): 0x00007fff44e4e3a0 ***
======= Backtrace: =========
/lib64/libc.so.6[0x7f823ab6caf8]
/lib64/libc.so.6(cfree+0x76)[0x7f823ab6e6e6]
/home/donau101/mirror/kkre/linux-4.1/bin/dispatcher(_ZN9Operation14signal_handlerEi+0x4f1)
[0x45c471]
/lib64/libc.so.6[0x7f823ab29660]
/lib64/libc.so.6(gsignal+0x35)[0x7f823ab295c5]
/lib64/libc.so.6(abort+0x183)[0x7f823ab2abb3]
/home/donau101/adsm/scia/ol_level_1_to_2/tools/mico/for-x86_64/mico.2.3.13/mico/lib/libmico2.3.13.so(_Z11mico_assertPKci+0x13b)
[0x7f823c3ba43b]
/home/donau101/adsm/scia/ol_level_1_to_2/tools/mico/for-x86_64/mico.2.3.13/mico/lib/libmico2.3.13.so(_ZNK8TCObject7marshalERN5CORBA11DataEncoderEPv+0x50)
[0x7f823c3e0720]
/home/donau101/adsm/scia/ol_level_1_to_2/tools/mico/for-x86_64/mico.2.3.13/mico/lib/libmicocoss2.3.13.so(_ZNK37_Marshaller_CosEventComm_PushConsumer7marshalERN5CORBA11DataEncoderEPv+0x32)
[0x7f823bcdd222]
/home/donau101/adsm/scia/ol_level_1_to_2/tools/mico/for-x86_64/mico.2.3.13/mico/lib/libmico2.3.13.so(_ZN5CORBA9StaticAny7marshalERNS_11DataEncoderE+0x29)
[0x7f823c3d7ec9]
/home/donau101/adsm/scia/ol_level_1_to_2/tools/mico/for-x86_64/mico.2.3.13/mico/lib/libmico2.3.13.so(_ZN5CORBA13StaticRequest11get_in_argsEPNS_11DataEncoderE+0xc5)
[0x7f823c3d8815]
/home/donau101/adsm/scia/ol_level_1_to_2/tools/mico/for-x86_64/mico.2.3.13/mico/lib/libmico2.3.13.so(_ZN4MICO9GIOPCodec8put_argsERNS_14GIOPOutContextEPN5CORBA10ORBRequestEh+0x3a)
[0x7f823c39a38a]
/home/donau101/adsm/scia/ol_level_1_to_2/tools/mico/for-x86_64/mico.2.3.13/mico/lib/libmico2.3.13.so(_ZN4MICO9GIOPCodec18put_invoke_requestERNS_14GIOPOutContextEjhPN5CORBA6ObjectEPNS3_10ORBRequestEPNS3_9PrincipalE+0x21e)
[0x7f823c39f8ce]
/home/donau101/adsm/scia/ol_level_1_to_2/tools/mico/for-x86_64/mico.2.3.13/mico/lib/libmico2.3.13.so(_ZN4MICO9IIOPProxy6invokeEPN5CORBA12ORBInvokeRecEPNS1_6ObjectEPNS1_10ORBRequestEPNS1_9PrincipalEh+0x25c)
[0x7f823c3b520c]
/home/donau101/adsm/scia/ol_level_1_to_2/tools/mico/for-x86_64/mico.2.3.13/mico/lib/libmico2.3.13.so(_ZN5CORBA3ORB12invoke_asyncEPNS_6ObjectEPNS_10ORBRequestEPNS_9PrincipalEhPNS_11ORBCallbackEPNS_12ORBInvokeRecE+0x13d)
[0x7f823c376f1d]
/home/donau101/adsm/scia/ol_level_1_to_2/tools/mico/for-x86_64/mico.2.3.13/mico/lib/libmico2.3.13.so(_ZN5CORBA13StaticRequest6invokeEv+0x230)
[0x7f823c3daae0]
/home/donau101/adsm/scia/ol_level_1_to_2/tools/mico/for-x86_64/mico.2.3.13/mico/lib/libmicocoss2.3.13.so(_ZN20CosEventChannelAdmin22ProxyPushSupplier_stub21connect_push_consumerEPN12CosEventComm12PushConsumerE+0x83)
[0x7f823bce89c3]
/home/donau101/mirror/kkre/linux-4.1/bin/dispatcher[0x41f8b4]
/home/donau101/mirror/kkre/linux-4.1/bin/dispatcher[0x412522]
/lib64/libc.so.6(__libc_start_main+0xe6)[0x7f823ab15436]
/home/donau101/mirror/kkre/linux-4.1/bin/dispatcher(_ZNK5CORBA9Exception18_print_stack_traceERSo+0x4f9)
[0x410119]

Any hint from the gurus where I should search?

Thank you, Klaus
Karel Gardas
2009-07-06 17:13:52 UTC
Permalink
Certainly I would compile with debug. I would also give a try to
different compilers than 4.3.0 -- assuming you have not seen this error
before. I would also verify the application to see that I'm really not
trying to marshal local object. As I read it now, I would probably do
this in reversed order.

Cheers,
Karel
Post by Kretschel Klaus
Hi,
until now our software used Mico 2.3.11 without problems. Now I wanted to port
it to Suse Linux 11 using 64 bit architecture (g++ 4.3) and thus had to
upgrade to Mico 2.3.13. Everything compiles fine. However, I get a run-time
donau1: starting dispatcher ...
[469675298 - 140197343930112] static.cc:698: assertion failed
----
assert ((*(_MICO_T *)v)->_ior());
----
Process /home/donau101/mirror/kkre/linux-4.1/bin/dispatcher ended with signal
6
double free or corruption (out): 0x00007fff44e4e3a0 ***
======= Backtrace: =========
/lib64/libc.so.6[0x7f823ab6caf8]
/lib64/libc.so.6(cfree+0x76)[0x7f823ab6e6e6]
/home/donau101/mirror/kkre/linux-4.1/bin/dispatcher(_ZN9Operation14signal_handlerEi+0x4f1)
[0x45c471]
/lib64/libc.so.6[0x7f823ab29660]
/lib64/libc.so.6(gsignal+0x35)[0x7f823ab295c5]
/lib64/libc.so.6(abort+0x183)[0x7f823ab2abb3]
/home/donau101/adsm/scia/ol_level_1_to_2/tools/mico/for-x86_64/mico.2.3.13/mico/lib/libmico2.3.13.so(_Z11mico_assertPKci+0x13b)
[0x7f823c3ba43b]
/home/donau101/adsm/scia/ol_level_1_to_2/tools/mico/for-x86_64/mico.2.3.13/mico/lib/libmico2.3.13.so(_ZNK8TCObject7marshalERN5CORBA11DataEncoderEPv+0x50)
[0x7f823c3e0720]
/home/donau101/adsm/scia/ol_level_1_to_2/tools/mico/for-x86_64/mico.2.3.13/mico/lib/libmicocoss2.3.13.so(_ZNK37_Marshaller_CosEventComm_PushConsumer7marshalERN5CORBA11DataEncoderEPv+0x32)
[0x7f823bcdd222]
/home/donau101/adsm/scia/ol_level_1_to_2/tools/mico/for-x86_64/mico.2.3.13/mico/lib/libmico2.3.13.so(_ZN5CORBA9StaticAny7marshalERNS_11DataEncoderE+0x29)
[0x7f823c3d7ec9]
/home/donau101/adsm/scia/ol_level_1_to_2/tools/mico/for-x86_64/mico.2.3.13/mico/lib/libmico2.3.13.so(_ZN5CORBA13StaticRequest11get_in_argsEPNS_11DataEncoderE+0xc5)
[0x7f823c3d8815]
/home/donau101/adsm/scia/ol_level_1_to_2/tools/mico/for-x86_64/mico.2.3.13/mico/lib/libmico2.3.13.so(_ZN4MICO9GIOPCodec8put_argsERNS_14GIOPOutContextEPN5CORBA10ORBRequestEh+0x3a)
[0x7f823c39a38a]
/home/donau101/adsm/scia/ol_level_1_to_2/tools/mico/for-x86_64/mico.2.3.13/mico/lib/libmico2.3.13.so(_ZN4MICO9GIOPCodec18put_invoke_requestERNS_14GIOPOutContextEjhPN5CORBA6ObjectEPNS3_10ORBRequestEPNS3_9PrincipalE+0x21e)
[0x7f823c39f8ce]
/home/donau101/adsm/scia/ol_level_1_to_2/tools/mico/for-x86_64/mico.2.3.13/mico/lib/libmico2.3.13.so(_ZN4MICO9IIOPProxy6invokeEPN5CORBA12ORBInvokeRecEPNS1_6ObjectEPNS1_10ORBRequestEPNS1_9PrincipalEh+0x25c)
[0x7f823c3b520c]
/home/donau101/adsm/scia/ol_level_1_to_2/tools/mico/for-x86_64/mico.2.3.13/mico/lib/libmico2.3.13.so(_ZN5CORBA3ORB12invoke_asyncEPNS_6ObjectEPNS_10ORBRequestEPNS_9PrincipalEhPNS_11ORBCallbackEPNS_12ORBInvokeRecE+0x13d)
[0x7f823c376f1d]
/home/donau101/adsm/scia/ol_level_1_to_2/tools/mico/for-x86_64/mico.2.3.13/mico/lib/libmico2.3.13.so(_ZN5CORBA13StaticRequest6invokeEv+0x230)
[0x7f823c3daae0]
/home/donau101/adsm/scia/ol_level_1_to_2/tools/mico/for-x86_64/mico.2.3.13/mico/lib/libmicocoss2.3.13.so(_ZN20CosEventChannelAdmin22ProxyPushSupplier_stub21connect_push_consumerEPN12CosEventComm12PushConsumerE+0x83)
[0x7f823bce89c3]
/home/donau101/mirror/kkre/linux-4.1/bin/dispatcher[0x41f8b4]
/home/donau101/mirror/kkre/linux-4.1/bin/dispatcher[0x412522]
/lib64/libc.so.6(__libc_start_main+0xe6)[0x7f823ab15436]
/home/donau101/mirror/kkre/linux-4.1/bin/dispatcher(_ZNK5CORBA9Exception18_print_stack_traceERSo+0x4f9)
[0x410119]
Any hint from the gurus where I should search?
Thank you, Klaus
_______________________________________________
Mico-devel mailing list
http://www.mico.org/mailman/listinfo/mico-devel
--
Karel Gardas ***@objectsecurity.com
ObjectSecurity Ltd. http://www.objectsecurity.com
Kretschel Klaus
2009-07-07 08:37:40 UTC
Permalink
Hi Karel,
Post by Karel Gardas
Certainly I would compile with debug. I would also give a try to
different compilers than 4.3.0 -- assuming you have not seen this error
before. I would also verify the application to see that I'm really not
trying to marshal local object.
Unfortunately I'm not familiar enough with Corba to know precisely what that
means. Isn't it possible to throw a more meaningful message instead of the
assertion?
Post by Karel Gardas
As I read it now, I would probably do
this in reversed order.
Seems so that I solved that problem comparing my software step by step with
the event demo. The only difference was that my PushConsumer had been
developed in BOA times, and switching to POA I had changed it to be derived
from CosEventComm::PushConsumer, not from POA_CosEventComm::PushConsumer (not
even bein aware that such a namespace exists). Supplying
the "connect_push_consumer" function with the old consumer caused the
assertion, and unfortunately the compiler did not complain. It did, however,
with the POA consumer, but that problem was of course solved using
consumer->_this().

BTW, I had already used "disable-optimize", "enable-debug",
and "disable-threads". Now my code runs again, only at the very end I get a
Segmentation fault in memcpy () from /lib64/libc.so.6, but I'm not really
sure that it is related to MICO. In this context:

Which MICO resources should be freed after use? Should event channels be
released or not? Should factories or proxies be deleted or not?

I could nowhere find anything about such questions. I will send you a separate
mail on the documentation issue.

Thank you, Klaus
Post by Karel Gardas
Post by Kretschel Klaus
Hi,
until now our software used Mico 2.3.11 without problems. Now I wanted to
port it to Suse Linux 11 using 64 bit architecture (g++ 4.3) and thus had
to upgrade to Mico 2.3.13. Everything compiles fine. However, I get a
donau1: starting dispatcher ...
[469675298 - 140197343930112] static.cc:698: assertion failed
----
...
Kretschel Klaus
2009-07-15 12:17:14 UTC
Permalink
Hi all,
Post by Kretschel Klaus
Hi Karel,
Post by Karel Gardas
Certainly I would compile with debug. I would also give a try to
different compilers than 4.3.0 -- assuming you have not seen this error
before. I would also verify the application to see that I'm really not
trying to marshal local object.
...
Post by Karel Gardas
As I read it now, I would probably do
this in reversed order.
...
BTW, I had already used "disable-optimize", "enable-debug",
and "disable-threads". Now my code runs again, only at the very end I get a
Segmentation fault in memcpy () from /lib64/libc.so.6, but I'm not really
sure that it is related to MICO.
I finally solved that problem (with help from Denis). It is the same problem
that he described recently, arising from csi.cc (duplicate frees of
_marshaller__seq__seq_octet). The circumvention is not to use CSI support
i.e. to run configure with --disable-csiv2.

Regards, Klaus

Loading...