qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shan Wang" <Shan.W...@igindex.co.uk>
Subject RE: Exception thrown from qpidcommon.dll on windows
Date Thu, 26 Mar 2009 16:31:34 GMT
Hi Steve,

Thanks for the reply.

But this may be a different problem. After searched on internet I think
this problem was from the QPID_TSS declaration in AsynchIO.cpp, which is
__declspec(thread) on windows. 

MSDN said thread local storage can only work when a dll is linked to an
executable. If loadLibrary() is used to load the dll, an system failure
will occur. And this is exactly what happened in my program. I made a
Tcl wrapper of qpid API and tried to load the dll within tcl, then I got
the exception said the program is trying to access memory 0x000000.

So basically on any windows system prior to Vista, qpid c++ client can
not be used as a plugin to another program. I had a quick look in your
JIRA but didn't find a project for this. Now I'm trying to rebuild the
client lib without QPID_TSS and assumingly variables like
threadWriteTotal will only be used by one thread, I will be able to get
around this issue.


Regards,
Shan

 

-----Original Message-----
From: Steve Huston [mailto:shuston@riverace.com] 
Sent: 26 March 2009 14:41
To: dev@qpid.apache.org
Subject: RE: Exception thrown from qpidcommon.dll on windows

Hi Shan,

You may be seeing the affects of QPID-1550
(https://issues.apache.org/jira/browse/QPID-1550)

The QPID-1673 branch has been merged to trunk - I recommend you either
switch to trunk, use the 0.5-release branch (which is close to being
M5), or wait for the 0.5 (M5) release. QPID-1550 is fixed in all of
those.

-Steve

--
Steve Huston, Riverace Corporation
Check out my networked programming blog at
http://stevehuston.wordpress.com/


> -----Original Message-----
> From: Shan Wang [mailto:Shan.Wang@igindex.co.uk] 
> Sent: Thursday, March 26, 2009 8:32 AM
> To: dev@qpid.apache.org
> Subject: Exception thrown from qpidcommon.dll on windows
> 
> 
> Hi All,
> 
>  
> 
> I built a client dll from QPID-1673 branch(which I believe is 
> the first
> usable windows dll branch). In the beginning everything seems 
> fine, then
> I found this exception thrown somewhere from qpidcommon.dll, and the
> call stack is shown below:
> 
>  
> 
>  
> 
> qpidcommon.dll!qpid::sys::windows::AsynchIO::writeComplete()  + 0x46
> bytes      C++
> 
> qpidcommon.dll!qpid::sys::windows::AsynchIO::completion()  + 
> 0x12f bytes
> C++
> 
> qpidcommon.dll!boost::detail::function::void_function_obj_invo
> ker1<boost
> ::_bi::bind_t<void,boost::_mfi::mf1<void,qpid::sys::PollableCo
> nditionPri
> vate,qpid::sys::AsynchIoResult
> *>,boost::_bi::list2<boost::_bi::value<qpid::sys::PollableCond
> itionPriva
> te *>,boost::arg<1> > >,void,qpid::sys::AsynchIoResult *>::invoke()
+
> 0x10 bytes C++
> 
> qpidcommon.dll!boost::function1<void,qpid::sys::Socket const
> &,std::allocator<boost::function_base> >::operator()()  + 0x4e bytes
> C++
> 
> qpidcommon.dll!qpid::sys::AsynchWriteResult::complete()  + 0x18
bytes
> C++
> 
> qpidcommon.dll!qpid::sys::AsynchResult::success()  + 0x15 bytes C++
> 
> qpidcommon.dll!qpid::sys::Poller::wait()  + 0xd3 bytes          C++
> 
> qpidcommon.dll!qpid::sys::Poller::run()  + 0x29 bytes           C++
> 
> qpidclient.dll!qpid::client::TCPConnector::run()  + 0x11c bytes
> C++
> 
> msvcr90.dll!785838bb()          
> 
>  [Frames below may be incorrect and/or missing, no symbols loaded
for
> msvcr90.dll]       
> 
> qpidcommon.dll!`anonymous namespace'::runRunnable()  + 0xb bytes
> C++
> 
>  
> 
>  
> 
> Does anyone have a idea what is this about?
> 
>  
> 
>  
> 
> Thanks and Regards,
> 
> Shan
> 
> The information contained in this email is strictly 
> confidential and for the use of the addressee only, unless 
> otherwise indicated. If you are not the intended recipient, 
> please do not read, copy, use or disclose to others this 
> message or any attachment. Please also notify the sender by 
> replying to this email or by telephone (+44 (0)20 7896 0011) 
> and then delete the email and any copies of it. Opinions, 
> conclusions (etc.) that do not relate to the official 
> business of this company shall be understood as neither given 
> nor endorsed by it. IG Index plc is a company registered in 
> England and Wales under number 01190902. VAT registration 
> number 761 2978 07. Registered Office: Friars House, 157-168 
> Blackfriars Road, London SE1 8EZ. Authorised and regulated by 
> the Financial Services Authority. FSA Register number 114059.
> 


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org

The information contained in this email is strictly confidential and for the use of the addressee
only, unless otherwise indicated. If you are not the intended recipient, please do not read,
copy, use or disclose to others this message or any attachment. Please also notify the sender
by replying to this email or by telephone (+44 (0)20 7896 0011) and then delete the email
and any copies of it. Opinions, conclusions (etc.) that do not relate to the official business
of this company shall be understood as neither given nor endorsed by it. IG Index plc is a
company registered in England and Wales under number 01190902. VAT registration number 761
2978 07. Registered Office: Friars House, 157-168 Blackfriars Road, London SE1 8EZ. Authorised
and regulated by the Financial Services Authority. FSA Register number 114059.

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


Mime
View raw message