Unhandled Exception in iis7_shib.dll
j.grootlipman at facilitor.nl
j.grootlipman at facilitor.nl
Thu Aug 20 09:45:14 UTC 2020
A few months ago we started using the Shibboleth Service Provider v3.1.0.1 on IIS on Windows Server 2016 (with all recent Windows updates)
It can be running fine for days but then sometimes w3wp.exe crashes (a few times on a day) with no apparent cause.
Windows Error Reporting shows:
Faulting application name: w3wp.exe, version: 10.0.14393.0, time stamp: 0x57899b8a
Faulting module name: KERNELBASE.dll, version: 10.0.14393.3659, time stamp: 0x5e9140ed
Exception code: 0xe06d7363
Fault offset: 0x0000000000034f38
Faulting process id: 0xc44c
Faulting application start time: 0x01d65efa426943f8
Faulting application path: c:\windows\system32\inetsrv\w3wp.exe
Faulting module path: C:\Windows\System32\KERNELBASE.dll
The 0xe06d7363 translates to EXCEPTION_UNCAUGHT_CXX_EXCEPTION
Next step is to catch a minidump. The Call Stack is shown below
Iis7_shib.dll is very high in the call-stack with IIS7Request::throwError at the top.
It is called by IIS7Request::getRequestBody because a call to m_request->ReadEntityBody fails.
First of all: I am not sure Shibboleth is *causing* the crash, maybe it is just collateral damage. But it may help in finding the root cause
My questions:
· A message goes into the IOException. Is there any way to retrieve that message (some logging perhaps? I could not find it in shibd.log or any other log)
It might be interesting to know exactly why m_request->ReadEntityBody fails
· ReadEntityBody sound like it is receiving data. Is it fair to generate an (unhandled) exception for ‘just’ a network error?
· If it is only collateral damage: is there a way to catch the exception?
I do see the <InProcess> element supports a (disadvised) catchAll but if I read the sourcecode correctly it may not apply to the IOException (not tested yet)
· (minor issue: Visual Studio could debug the DLL’s nicely with all the supplied PDB’s but failed to connect shibsp-lite3_1.pdb to shibsp-lite3_1.dll. I had to apply a very old ChkMatch.exe tool from the Internet)
(callstack and shibd.log follows)
> KERNELBASE.dll!RaiseException‑() Unknown
[External Code]
iis7_shib.dll!IIS7Request::throwError(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & operation, HRESULT hr) Line 452 C++
iis7_shib.dll!IIS7Request::getRequestBody() Line 332 C++
shibsp-lite3_1.dll!std::_Tree<std::_Tmap_traits<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,boost::shared_ptr<shibsp::DOMPropertySet>,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,boost::shared_ptr<shibsp::DOMPropertySet> > >,0> >::_Insert_hint<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,boost::shared_ptr<shibsp::DOMPropertySet> > &,std::_Tree_node<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,boost::shared_ptr<shibsp::DOMPropertySet> >,void *> *>(std::_Tree_const_iterator<std::_Tree_val<std::_Tree_simple_types<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,boost::shared_ptr<shibsp::DOMPropertySet> > > > > _Where, std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,boost::shared_ptr<shibsp::DOMPropertySet> > & _Val, std::_Tree_node<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,boost::shared_ptr<shibsp::DOMPropertySet> >,void *> * _Newnode) Line 1703 C++
shibsp-lite3_1.dll!shibsp::AbstractSPRequest::getHandlerURL(const char * resource) Line 247 C++
xmltooling-lite3_1.dll!xmltooling::TemplateEngine::TemplateParameters::getParameter(const char * name) Line 61 C++
shibsp-lite3_1.dll!shibsp::ServerThread::job() Line 597 C++
xmltooling-lite3_1.dll!xmltooling::TemplateEngine::process(bool visible, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & buf, const char * & lastpos, std::basic_ostream<char,std::char_traits<char> > & os, const xmltooling::TemplateEngine::TemplateParameters & parameters, const std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,std::basic_string<char,std::char_traits<char>,std::allocator<char> > > & loopentry, const xmltooling::XMLToolingException * e) Line 157 C++
xmltooling-lite3_1.dll!xmltooling::TemplateEngine::run(std::basic_istream<char,std::char_traits<char> > & is, std::basic_ostream<char,std::char_traits<char> > & os, const xmltooling::TemplateEngine::TemplateParameters & parameters, const xmltooling::XMLToolingException * e) Line 286 C++
shibsp-lite3_1.dll!shibsp::ServiceProvider::doHandler(shibsp::SPRequest & request) Line 684 C++
[External Code]
shibsp-lite3_1.dll!shibsp::DOMPropertySet::load(const xercesc_3_2::DOMElement * e, log4shib::Category * log, xercesc_3_2::DOMNodeFilter * filter, const shibsp::DOMPropertySet::Remapper * remapper, const xmltooling::QName * unsetter) Line 151 C++
iis7_shib.dll!ShibHttpModule::DoHandler(IHttpContext * pHttpContext, IHttpEventProvider * pProvider) Line 62 C++
[External Code]
Also: this is what shibd.log shows during the crash:
2020-08-19 17:13:17 ERROR Shibboleth.Listener [45]: error reading size of input message
2020-08-19 17:13:17 ERROR Shibboleth.Listener [45]: failed socket call (unknown), result (0): No error
2020-08-19 17:13:17 ERROR Shibboleth.Listener [45]: I/O failure processing request on socket (636)
2020-08-19 17:13:17 ERROR Shibboleth.Listener [47]: error reading size of input message
2020-08-19 17:13:17 ERROR Shibboleth.Listener [47]: failed socket call (unknown), result (0): No error
2020-08-19 17:13:17 ERROR Shibboleth.Listener [47]: I/O failure processing request on socket (440)
2020-08-19 17:13:17 ERROR Shibboleth.Listener [46]: error reading size of input message
2020-08-19 17:13:17 ERROR Shibboleth.Listener [46]: failed socket call (unknown), result (0): No error
2020-08-19 17:13:17 ERROR Shibboleth.Listener [46]: I/O failure processing request on socket (648)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://shibboleth.net/pipermail/users/attachments/20200820/7584d523/attachment.htm>
More information about the users
mailing list