[omniORB] servants freeze when method involves cout

ross::barna rbarna@neochi.com
Tue, 10 Jul 2001 00:23:24 -0400 (EDT)


That was exactly the problem.  Thanks for the help!  Never thought my bugs
would be the compiler's fault...

-rb

On Tue, 10 Jul 2001, simonh wrote:

> There have been problems with some recent redhat distributions that produced
> exactly this behaviour and more. If you are on redhat you should make sure
> that your c++ development environment has been thoroughly patched.
> 
> Hope this helps
> sh
> 
> ross::barna wrote:
> 
> > I am moving my project from BOA->POA and am almost finished.  Now my
> > problem is that any servant method which contains code to cout:
> >
> >         void fn()
> >         {
> >                 cout << "hello world" << endl;
> >         }
> >
> > Will freeze the thread which is handling the request!
> >
> > Here is a backtrace from gdb:
> >
> > #0  0x4080cab2 in __sigsuspend (set=0xbf1ff3cc)
> >     at ../sysdeps/unix/sysv/linux/sigsuspend.c:45
> > #1  0x401aeaed in __pthread_wait_for_restart_signal (self=0xbf1ffc00)
> >     at pthread.c:901
> > #2  0x401b065b in __pthread_lock (lock=0x407b7d68, self=0xbf1ffc00)
> >     at restart.h:34
> > #3  0x401acea1 in __pthread_mutex_lock (mutex=0x407b7d58) at mutex.c:109
> > #4  0x401afbdb in __flockfile (stream=0x407b7d80) at lockfile.c:33
> > #5  0x4079b201 in ostream::operator<< () from
> > /usr/lib/libstdc++-libc6.2-2.so.3
> > #6  0x4006b1c9 in eTransform_i::eTransform_i (this=0x81f4e80, __in_chrg=1)
> >     at ../../../include/TextOutput.h:33
> > #7  0x805091c in MapService_impl::createObject (this=0x80c96c8,
> >     inType=ETRANSFORM, pid=1) at MapService.c++:123
> > #8  0x400729a5 in _impl_MapService::_dispatch (this=0x80c97b0,
> >     giop_s=@0xbf1ff98c) at
> > ../../include/CORBA/omniORB3/templatedecls.h:374
> > #9  0x4010f3fd in omniOrbPOA::dispatch ()
> >    from /home/rbarna/src/eNai/lib/libomniORB3.so.0
> > #10 0x401060ca in omniLocalIdentity::dispatch ()
> >    from /home/rbarna/src/eNai/lib/libomniORB3.so.0
> > #11 0x401341bb in GIOP_S::HandleRequest ()
> >    from /home/rbarna/src/eNai/lib/libomniORB3.so.0
> > #12 0x401336f7 in GIOP_S::dispatcher ()
> >    from /home/rbarna/src/eNai/lib/libomniORB3.so.0
> > #13 0x4014c679 in tcpSocketWorker::_realRun ()
> >    from /home/rbarna/src/eNai/lib/libomniORB3.so.0
> > #14 0x401698b8 in omniORB::giopServerThreadWrapper::run ()
> >    from /home/rbarna/src/eNai/lib/libomniORB3.so.0
> > #15 0x4014c610 in tcpSocketWorker::run ()
> >    from /home/rbarna/src/eNai/lib/libomniORB3.so.0
> > #16 0x4019894c in omni_thread_wrapper ()
> >    from /home/rbarna/src/eNai/lib/libomnithread.so.2
> > #17 0x401abdd0 in pthread_start_thread_event (arg=0xbf1ffc00) at
> > manager.c:274
> >
> > Is something corrupted?  What should I be looking for here?
> >
> > Thanks,
> >
> > -rb
> 

--