Hi Tommi,

Great, thanks very much.  I did:

svn up tntnet
gmake uninstall
gmake clean
gmake
gmake install

then in comp_ptr:

gmake clean
gmake

It still fails for me.  I'm wondering if I did something wrong.
watchmalloc did not detect anything on Solaris.  Its a 64 bit build on Solaris,
with Sun Studio 12.  Maybe the compiler behaves differently to gcc.
I'll try some more tests, I'll try it with gcc.

=>[1] ServerSessionState::getSomething(this = 0xee01b31100000000), line 36 in 
"ServerSessionState.h"
  [2] __unnamed_KQZAm_Sd5Jlpx::_component_comp_ptr::page0_type::operator()(this 
= 0x485b48, request = CLASS, reply = CLASS, qparam = CLASS), line 210 in 
"comp_ptr.cpp"
  [3] __unnamed_KQZAm_Sd5Jlpx::_component_comp_ptr::operator()(this = 0x485ae0, 
request = CLASS, reply = CLASS, qparam = CLASS), line 159 in "comp_ptr.cpp"
  [4] tnt::Component::operator()(this = 0x485ae0, request = CLASS, reply = 
CLASS, qparam = CLASS, top = true), line 41 in "component.cpp"
  [5] tnt::Worker::dispatch(this = 0x46e1d0, request = CLASS, reply = CLASS), 
line 313 in "worker.cpp"
  [6] tnt::Worker::processRequest(this = 0x46e1d0, request = CLASS, , line 224 
in "worker.cpp"
  [7] tnt::Worker::run(this = 0x46e1d0), line 138 in "worker.cpp"
  [8] cxxtools::DetachedThread::exec(this = 0x46e1d0), line 315 in "thread.h"
  [9] 
cxxtools::Method<void,cxxtools::DetachedThread,cxxtools::Void,cxxtools::Void,cxxtools::Void,cxxtools::Void,cxxtools::Void,cxxtools::Void,cxxtools::Void,cxxtools::Void,cxxtools::Void,cxxtools::Void>::operator()(this
 = 0x4621a0), line 894 in "method.tpp"
  [10] 
cxxtools::Callable<void,cxxtools::Void,cxxtools::Void,cxxtools::Void,cxxtools::Void,cxxtools::Void,cxxtools::Void,cxxtools::Void,cxxtools::Void,cxxtools::Void,cxxtools::Void>::call(this
 = 0x4621a0), line 314 in "callable.tpp"
  [11] thread_entry(arg = 0x4650d0), line 43 in "threadimpl.cpp"
  [12] _thr_setup(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fef00504b 
  [13] _lwp_start(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fef005280 
(dbx) 

Thanks, Mark

On Mon, 13 Apr 2009 22:52:29 +0200
Tommi Mäkitalo <[email protected]> wrote:

> Hi Mark,
> 
> thank you for the testcase.
> 
> I fixed that now in svn. I have to think about the solution if this
> is the final one, but it at least works.
> 
> The reason for the last crash was, that the scope takes the ownership
> of all objects put into the scope. And this scope mechanism is also
> used for named parameters. In your case the parameter-scope takes
> ownership of your ServerSessionState and after the subcomponent this
> ServerSessionState is deleted, which is not expected.
> 
> The objects in the scope are held within smart pointers. Luckily the
> smart pointer has a destroy policy and by setting this to a
> null-policy, the object is actually not deleted.
> 
> Tommi

-- 

------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
_______________________________________________
Tntnet-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tntnet-general

Reply via email to