Strange SEGV ...

joel venninjoel vennin Member Joël VenninOrganization: University Lille 1Project: Just Testing when i have time
Hello,

I contact you because i've a strange error. I'm using Ice version 3.1 on solaris (CC 5.8). I've made a simple application (client/server). Each client register a listener to the server. Every time the server generate a new information, it calls the remove method of the client listener.

However, some times i get the following error:

[email protected] ([email protected]) signal SEGV (no mapping at the fault address) in IceInternal::incRef at line 14 in file "EndpointI.cpp"
14 void IceInternal::incRef(EndpointI* p) { p->__incRef(); }
(dbx) up
Current function is IceInternal::Handle<IceInternal::EndpointI>::Handle
up
83 incRef(this->_ptr);
(dbx) up
Current function is __rwstd::__construct<IceInternal::Handle<IceInternal::EndpointI>,IceInternal::Handle<IceInternal::EndpointI> >
188 new (p) T1(value);
(dbx) up
Current function is std::uninitialized_copy<const IceInternal::Handle<IceInternal::EndpointI>*,IceInternal::Handle<IceInternal::Endp
ointI>*>
739 __RWSTD::__construct(result++, *first++);
(dbx) up
Current function is std::vector<IceInternal::Handle<IceInternal::EndpointI>,std::allocator<IceInternal::Handle<IceInternal::Endpoint
I> > >::operator=
84 __end_of_storage = uninitialized_copy(x.begin(), x.end(), tmp);
(dbx) up
Current function is IceInternal::DirectReference::getConnection
1350 endpts = _endpoints; // Endpoint overrides are already applied on these endpoints.
(dbx) up
Current function is IceDelegateM::Ice::Object::setup
1314 __connection = __reference->getConnection(__compress);
(dbx) up
Current function is IceProxy::Ice::Object::__getDelegate
1050 d->setup(_reference);
(dbx) up
Current function is IceProxy::hdg::realtime::IListener::rawTickerEvent
896 ::IceInternal::Handle< ::IceDelegate::Ice::Object> __delBase = __getDelegate();
(dbx) up
Current function is IceProxy::hdg::realtime::IListener::rawTickerEvent
425 rawTickerEvent(tick, __defaultContext());
(dbx) up
Current function is hdg::realtime::Manager::rawTickerEvent
294 prx->rawTickerEvent(tick);


Before the prx->rawTickerEvent(tick), i've something like that:

IListenerPrx prx = IListenerPrx::uncheckedCast (myPrx->ice_timeout(8000));




Can you give a way to try to resolve it ?

Thank you.

Joël

Comments

  • benoitbenoit Rennes, FranceAdministrators, ZeroC Staff Benoit FoucherOrganization: ZeroC, Inc.Project: Ice ZeroC Staff
    Hi Joël,

    It looks like there's some sort of memory management or curruption problem. It's difficult to say what could be the cause without seeing more of your code. Could your perhaps post a small self compilable test case that we could use to reproduce it?

    Cheers,
    Benoit.
  • joel venninjoel vennin Member Joël VenninOrganization: University Lille 1Project: Just Testing when i have time
    Ok, i'll try to reproduce a small example that reproduce it, when it will be done, i'll send you.

    Thank you

    Joël
  • joel venninjoel vennin Member Joël VenninOrganization: University Lille 1Project: Just Testing when i have time
    Shame on me ... i've just forgot the _REENTRANT flags ...

    Sorry

    Joel
Sign In or Register to comment.