Hi Rob,

what version exactly do you use? I'm afraid the best would be if you use that from darcs HEAD, at least that's always my recommendation to grab HEAD and try to duplicate the issue on it. The chance is, this is fixed (if you use latest release) for quite some time already...

Thanks,
Karel

On 03/ 6/18 11:25 PM, Rob Ratcliff wrote:
Hi,

I typically use MICO compiled for single threaded operation, but
recently I've been testing it with threads enabled. I've noticed that if
I fire  a continuous sequence of events at eventd that I can make it
core dump in the dynamic cast. (My version is off by one line since I
added a null check just to see if that fixed it, which it didn't.)

I'm not a C++ expert so this may be an easy one for somebody who has
worked with dynamic casts more than I have.

Thanks,

Rob

Here's the stack trace:

gdb `which eventd` core

(gdb) where

#0__cxxabiv1::(anonymous namespace)::adjust_pointer<void> (

offset=<error reading variable: Cannot access memory at address
0xfffffffffffffff0>, base=0x6acee0)

at ../../../../libstdc++-v3/libsupc++/tinfo.h:68

#1__cxxabiv1::__dynamic_cast (src_ptr=0x6acee0, src_type=0x2aaaabe691b0
<typeinfo for CORBA::ORBCallback>,

dst_type=0x2aaaabe69198 <typeinfo for CORBA::ORBAsyncCallback>,
src2dst=0) at ../../../../libstdc++-v3/libsupc++/dyncast.cc:55

#20x00002aaaab6e7bdb in CORBA::ORBInvokeRec::~ORBInvokeRec
(this=0x6ad2f0, __in_chrg=<optimized out>) at orb.cc:304

#30x00002aaaab6e7cbc in CORBA::ORBInvokeRec::~ORBInvokeRec
(this=0x6ad2f0, __in_chrg=<optimized out>) at orb.cc:310

#40x00002aaaab67acf3 in CORBA::release (o=0x6ad2f0) at
../include/mico/object.h:71

#50x00002aaaab6857ff in ObjVar<CORBA::ORBInvokeRec>::release
(t=0x6ad2f0) at ../include/mico/template_impl.h:49

#60x00002aaaab683825 in ObjVar<CORBA::ORBInvokeRec>::free
(this=0x2aaaae28f770) at ../include/mico/template.h:139

#70x00002aaaab681ec8 in ObjVar<CORBA::ORBInvokeRec>::~ObjVar
(this=0x2aaaae28f770, __in_chrg=<optimized out>)

at ../include/mico/template.h:74

#80x00002aaaab72901b in MICO::IIOPProxy::handle_invoke_reply
(this=0x685230, conn=0x6a6800, in=...) at iop.cc:4821

#90x00002aaaab729716 in MICO::IIOPProxy::handle_input (this=0x685230,
conn=0x6a6800, inp=0x6a80c0) at iop.cc:4985

#10 0x00002aaaab729ddf in MICO::IIOPProxy::input_callback
(this=0x685230, conn=0x6a6800, inp=0x6a80c0) at iop.cc:5061

#11 0x00002aaaab730f6d in MICO::GIOPConn::input_ready_callback
(this=0x6a6800, b=0x6a80c0) at ../include/mico/iop.h:582

#12 0x00002aaaab71f331 in MICO::GIOPConn::input_ready (this=0x6a6800) at
iop.cc:2639

#13 0x00002aaaab720e02 in MICO::GIOPConn::do_read (this=0x6a6800,
break_after_read=0 '\000') at iop.cc:2968

#14 0x00002aaaab7212c5 in MICO::GIOPConn::callback (this=0x6a6800,
ev=CORBA::TransportCallback::Read) at iop.cc:3020

#15 0x00002aaaab70f56b in MICO::SocketTransport::callback
(this=0x6a5e30, disp=0x6a6350, ev=CORBA::Dispatcher::Read)

at transport.cc:213

#16 0x00002aaaab6c6372 in MICO::SelectDispatcher::handle_fevents
(this=0x6a6350, rset=..., wset=..., xset=...) at dispatch.cc:270

#17 0x00002aaaab6c70b8 in MICO::SelectDispatcher::run (this=0x6a6350,
infinite=0 '\000') at dispatch.cc:477

#18 0x00002aaaab71d6e4 in MICO::GIOPConnReader::_run (this=0x6a6af0,
arg=0x6a6af0) at iop.cc:2256

#19 0x00002aaaab924bd7 in MICOMT::Thread::_thr_startup (this=0x6a6af0,
arg=0x6a6af0) at os-thread/pthreads.cc:214

#20 0x00002aaaab924b8f in MICOMT::Thread::ThreadWrapper (arg=0x6a6af0)
at os-thread/pthreads.cc:194

#21 0x00002aaaad0bf806 in start_thread () from /lib64/libpthread.so.0

#22 0x00002aaaad3b367d in clone () from /lib64/libc.so.6


Machine generated alternative text: - mico/orb/orb.cc - Eclipse File
Edit Source Retactor Navigate Search project Pro]ect Explorer r
optypes_cc or_cc ir base_cc ir_ppc_cpp ir-cc ltp address_cc ltp_lor_cc r
memcheck_cc r memleaks_cc r memtrace_cc message_cc > messaging_impl_cc >
messaging_cc r mt dispatcher_cc mt manager_cc r mtdeöug_cc > mtpollcy
impl_cc > mtpollcy_cc > mttypes_cc r operation_cc orb all_cc orb
excepts_cc orb_ppc_cpp > orb.cc os-ppc_cpp r os-thread_cc os-unlx_cc
os-windows_cc pi_impl_cc pi_cc poa base_cc > poa_impl_cc poa_cc Run
Window CosEvent 281 282 283 284 285 286 287 288 289 290 Help impl_c
CosEventComm_cc target = Object: : duplicate (o) ; nil ; reg = CORBA: :
ORBRequest: _principal Principal: : ( ) ; response expected = TRUE; addr
adapter cb = callback; active = TRUE; gui_tcl ClientLiörary_t 2918 292
293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310
311 CORBA : : ORBInvokeRec : : —ORBInvokeRec o if caller needs the
object then he CORBA: : release ( 0b') ; CORBA: : release ( target) ;
CORBA: : release (_principal) ; / / reg is intentionally omitted here
must as it to // For more information see comment next // declaration in
orb mica. h duplicate ( ) it may be object allocated reg variable //
CORBA: : release ( _ reg) ; CORBA: : release ( Sri) ; #ifdef HAVE
THREADS if ( cb { // rrr CORBA: : ORBAsyncca11back• if (tmp cb ! = NULL)
{ delete cb ; #end i f tmp cb dynamic cast CORBA. 312" void CORBA: :
ORBInvokeRec : . free 313 o target) ; allocated on on Notitler_tcl stack
! stack ! 314 { 315 316 317 318 319 320 321 322 323 324 325 326 327 328
329 330 331 332 333 mico/orb/orj CORBA: : release ( CORBA: : release (
CORBA: : release (_principal) ; / / reg is intentionally omitted here as
// For more information see comment next // declaration in orb mica. h
// CORBA: : release ( _ reg) ; CORBA: : release ( Sri) ; if ( cb) delete
cb ; have result = FALSE; type = Request Unknown ; target = O;
_principal it to may be object reg variable reg act IV e FALSE ; NORMAL
Writaöle Smart Insert 8 304 Computer charon-g0002 C/C++ _ [charon-
g0002] outline @ Make Target El Task List orb_pch_h CORBA_h string_h
ostream tstream iostream_h tstream_h m Ico/os-net_h mico/impl_h
mico/ssl_h mico/watm_h mico/ltp_h mico/template_impl_h mico/util_h
mico/dynany_impl_h mico/security/securitylevell _h
mico/security/securityIeve12_impI_h mico/security/Auditlntercept_h
mico/security/odm_impl_h mico/security/DomainManager_impI_h
mico/security/s13pm_impl_h mico/security/securityleve13 impl_h
mico/security/transportsecurlty impl_h mico/security/s13tcpip_impl_h
mico/security/s13tls impl_h mico/security/s13csi impl_h
mico/security/s13ipc_impl_h mico/process_impl_h m Ico/throw_h algorithm
mico/memtrace_h •A Mon Mar S. 1258 PM a



--
Karel Gardas                  kgar...@objectsecurity.com
ObjectSecurity Ltd.           http://www.objectsecurity.com

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Mico-devel mailing list
Mico-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mico-devel

Reply via email to