WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
17136
Crash in ICU beneath xsltUnicodeSortFunction with Windows
r29908
nightly
https://bugs.webkit.org/show_bug.cgi?id=17136
Summary
Crash in ICU beneath xsltUnicodeSortFunction with Windows r29908 nightly
Adam Plumb
Reported
2008-02-01 08:12:50 PST
I'm using Safari 3.0.4 with the latest nightly build (
r29908
) when I load the webapp I'm working on, it crashes almost immediately. The webapp makes use of xslt transformations using sarissa, and has some ajax calls in the first page.
Attachments
crash dump txt file
(8.31 KB, text/plain)
2008-02-01 08:13 PST
,
Adam Plumb
no flags
Details
crash dump file
(53.20 KB, application/octet-stream)
2008-02-01 08:14 PST
,
Adam Plumb
no flags
Details
View All
Add attachment
proposed patch, testcase, etc.
Adam Plumb
Comment 1
2008-02-01 08:13:49 PST
Created
attachment 18847
[details]
crash dump txt file
Adam Plumb
Comment 2
2008-02-01 08:14:20 PST
Created
attachment 18848
[details]
crash dump file
Adam Plumb
Comment 3
2008-02-01 08:18:01 PST
I just tried nightly build
r29603
and the same thing happens.
Adam Plumb
Comment 4
2008-02-01 08:24:37 PST
Just tried webkit nightly
r28586
and the webapp loads fine without problems.
Adam Roben (:aroben)
Comment 5
2008-02-01 08:28:53 PST
Here's the backtrace: icuin36.dll!_ucol_strcoll_3_6() + 0x280 bytes C++
> WebKit.dll!WebCore::xsltUnicodeSortFunction(_xsltTransformContext * ctxt=, _xmlNode * * sorts=, int nbsorts=) Line 264 C++
msvcr80.dll!_free() + 0xcd bytes 00000001() kernel32.dll!_HeapFree@12() + 0x14 bytes msvcr80.dll!_free() + 0xcd bytes libxml2.dll!_xmlXPathFreeParserContext() + 0x2d bytes C libxml2.dll!_xmlXPathCompiledEval() + 0xd1 bytes C libxslt.dll!_xsltForEach() + 0x230 bytes C libxslt.dll!_xsltApplyOneTemplate() + 0x2a3 bytes C libxslt.dll!_xsltProcessOneNode() + 0x193 bytes C libxslt.dll!_xsltApplyStripSpaces() + 0x302 bytes C libxslt.dll!_xsltProcessOneNode() + 0xdb bytes C libxslt.dll!_xsltNewTransformContext() + 0x7d9 bytes C WebKit.dll!WebCore::XSLTProcessor::transformToString(WebCore::Node * sourceNode=0x02d486b8, WebCore::String & mimeType={...}, WebCore::String & resultString={...}, WebCore::String & resultEncoding={...}) Line 378 C++ WebKit.dll!WebCore::XSLTProcessor::transformToDocument(WebCore::Node * sourceNode=0x00000000) Line 404 + 0x31 bytes C++ WebKit.dll!KJS::jsXSLTProcessorPrototypeFunctionTransformToDocument(KJS::ExecState * exec=0x0012f2c0, KJS::JSObject * thisObj=0x043da200, const KJS::List & args={...}) Line 115 C++ WebKit.dll!KJS::PrototypeFunction::callAsFunction(KJS::ExecState * exec=0x0012f2c0, KJS::JSObject * thisObj=0x043da200, const KJS::List & args={...}) Line 882 + 0x14 bytes C++ WebKit.dll!KJS::JSObject::call(KJS::ExecState * exec=0x00000000, KJS::JSObject * thisObj=0x043da200, const KJS::List & args={...}) Line 99 C++ WebKit.dll!KJS::FunctionCallDotNode::evaluate(KJS::ExecState * exec=0x0012f2c0) Line 1230 + 0x13 bytes C++ WebKit.dll!KJS::AssignLocalVarNode::evaluate(KJS::ExecState * exec=0x0012f2c0) Line 3276 C++ WebKit.dll!KJS::ConstStatementNode::execute(KJS::ExecState * exec=0x0012f2c0) Line 3736 C++ WebKit.dll!KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>,0> & statements={...}, KJS::ExecState * exec=0x00000000) Line 3673 C++ WebKit.dll!KJS::BlockNode::execute(KJS::ExecState * exec=0x0012f2c0) Line 3697 + 0xc bytes C++ WebKit.dll!KJS::IfElseNode::execute(KJS::ExecState * exec=0x0012f2c0) Line 3774 + 0xa bytes C++ WebKit.dll!KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>,0> & statements={...}, KJS::ExecState * exec=0x00000000) Line 3673 C++ WebKit.dll!KJS::FunctionBodyNode::execute(KJS::ExecState * exec=0x00000005) Line 4616 + 0x8 bytes C++ WebKit.dll!KJS::FunctionImp::callAsFunction(KJS::ExecState * exec=0x0012f3fc, KJS::JSObject * thisObj=0x039c0000, const KJS::List & args={...}) Line 76 + 0xf bytes C++ WebKit.dll!KJS::JSObject::call(KJS::ExecState * exec=0x00000000, KJS::JSObject * thisObj=0x039c0000, const KJS::List & args={...}) Line 99 C++ WebKit.dll!KJS::FunctionCallResolveNode::evaluate(KJS::ExecState * exec=0x0012f3fc) Line 1040 + 0x1e bytes C++ WebKit.dll!KJS::AssignLocalVarNode::evaluate(KJS::ExecState * exec=0x0012f3fc) Line 3276 C++ WebKit.dll!KJS::ConstStatementNode::execute(KJS::ExecState * exec=0x0012f3fc) Line 3736 C++ WebKit.dll!KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>,0> & statements={...}, KJS::ExecState * exec=0x00000000) Line 3673 C++ WebKit.dll!KJS::FunctionBodyNode::execute(KJS::ExecState * exec=0x00000002) Line 4616 + 0x8 bytes C++ WebKit.dll!KJS::FunctionImp::callAsFunction(KJS::ExecState * exec=0x0012f524, KJS::JSObject * thisObj=0x039c0000, const KJS::List & args={...}) Line 76 + 0xf bytes C++ WebKit.dll!KJS::JSObject::call(KJS::ExecState * exec=0x00000000, KJS::JSObject * thisObj=0x039c0000, const KJS::List & args={...}) Line 99 C++ WebKit.dll!KJS::FunctionCallResolveNode::evaluate(KJS::ExecState * exec=0x0012f524) Line 1040 + 0x1e bytes C++ WebKit.dll!KJS::ExprStatementNode::execute(KJS::ExecState * exec=0x0012f524) Line 3720 C++ WebKit.dll!KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>,0> & statements={...}, KJS::ExecState * exec=0x00000000) Line 3673 C++ WebKit.dll!KJS::FunctionBodyNode::execute(KJS::ExecState * exec=0x00000001) Line 4616 + 0x8 bytes C++ WebKit.dll!KJS::FunctionImp::callAsFunction(KJS::ExecState * exec=0x0012f64c, KJS::JSObject * thisObj=0x039c0000, const KJS::List & args={...}) Line 76 + 0xf bytes C++ WebKit.dll!KJS::JSObject::call(KJS::ExecState * exec=0x00000000, KJS::JSObject * thisObj=0x039c0000, const KJS::List & args={...}) Line 99 C++ WebKit.dll!KJS::FunctionCallResolveNode::evaluate(KJS::ExecState * exec=0x0012f64c) Line 1040 + 0x1e bytes C++ WebKit.dll!KJS::ExprStatementNode::execute(KJS::ExecState * exec=0x0012f64c) Line 3720 C++ WebKit.dll!KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>,0> & statements={...}, KJS::ExecState * exec=0x00000000) Line 3673 C++ WebKit.dll!KJS::FunctionBodyNode::execute(KJS::ExecState * exec=0x00000000) Line 4616 + 0x8 bytes C++ WebKit.dll!KJS::FunctionImp::callAsFunction(KJS::ExecState * exec=0x0012f774, KJS::JSObject * thisObj=0x039c0000, const KJS::List & args={...}) Line 76 + 0xf bytes C++ WebKit.dll!KJS::JSObject::call(KJS::ExecState * exec=0x00000000, KJS::JSObject * thisObj=0x039c0000, const KJS::List & args={...}) Line 99 C++ WebKit.dll!KJS::FunctionCallResolveNode::evaluate(KJS::ExecState * exec=0x0012f774) Line 1040 + 0x1e bytes C++ WebKit.dll!KJS::ExprStatementNode::execute(KJS::ExecState * exec=0x0012f774) Line 3720 C++ WebKit.dll!KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>,0> & statements={...}, KJS::ExecState * exec=0x00000000) Line 3673 C++ WebKit.dll!KJS::FunctionBodyNode::execute(KJS::ExecState * exec=0x00000000) Line 4616 + 0x8 bytes C++ WebKit.dll!KJS::FunctionImp::callAsFunction(KJS::ExecState * exec=0x0012f8f0, KJS::JSObject * thisObj=0x039c0000, const KJS::List & args={...}) Line 76 + 0xf bytes C++ WebKit.dll!KJS::JSObject::call(KJS::ExecState * exec=0x00000000, KJS::JSObject * thisObj=0x039c0000, const KJS::List & args={...}) Line 99 C++ WebKit.dll!KJS::FunctionCallValueNode::evaluate(KJS::ExecState * exec=) Line 975 + 0xf bytes C++ WebKit.dll!KJS::AssignDotNode::evaluate(KJS::ExecState * exec=0x0012f8f0) Line 3393 C++ WebKit.dll!KJS::ExprStatementNode::execute(KJS::ExecState * exec=0x0012f8f0) Line 3720 C++ WebKit.dll!KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>,0> & statements={...}, KJS::ExecState * exec=0x00000000) Line 3673 C++ WebKit.dll!KJS::BlockNode::execute(KJS::ExecState * exec=0x0012f8f0) Line 3697 + 0xc bytes C++ WebKit.dll!KJS::TryNode::execute(KJS::ExecState * exec=0x0012f8f0) Line 4291 C++ WebKit.dll!KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>,0> & statements={...}, KJS::ExecState * exec=0x00000000) Line 3673 C++ WebKit.dll!KJS::BlockNode::execute(KJS::ExecState * exec=0x0012f8f0) Line 3697 + 0xc bytes C++ WebKit.dll!KJS::IfNode::execute(KJS::ExecState * exec=0x0012f8f0) Line 3756 + 0xb bytes C++ WebKit.dll!KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>,0> & statements={...}, KJS::ExecState * exec=0x00000000) Line 3673 C++ WebKit.dll!KJS::FunctionBodyNode::execute(KJS::ExecState * exec=0x00000003) Line 4616 + 0x8 bytes C++ WebKit.dll!KJS::FunctionImp::callAsFunction(KJS::ExecState * exec=0x0012fa24, KJS::JSObject * thisObj=0x044304c0, const KJS::List & args={...}) Line 76 + 0xf bytes C++ WebKit.dll!KJS::JSObject::call(KJS::ExecState * exec=0x00000000, KJS::JSObject * thisObj=0x044304c0, const KJS::List & args={...}) Line 99 C++ WebKit.dll!KJS::FunctionCallDotNode::evaluate(KJS::ExecState * exec=0x0012fa24) Line 1230 + 0x13 bytes C++ WebKit.dll!KJS::ExprStatementNode::execute(KJS::ExecState * exec=0x0012fa24) Line 3720 C++ WebKit.dll!KJS::IfNode::execute(KJS::ExecState * exec=0x0012fa24) Line 3756 + 0xb bytes C++ WebKit.dll!KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>,0> & statements={...}, KJS::ExecState * exec=0x00000000) Line 3673 C++ WebKit.dll!KJS::FunctionBodyNode::execute(KJS::ExecState * exec=0x00000001) Line 4616 + 0x8 bytes C++ WebKit.dll!KJS::FunctionImp::callAsFunction(KJS::ExecState * exec=0x0012fbec, KJS::JSObject * thisObj=0x044304c0, const KJS::List & args={...}) Line 76 + 0xf bytes C++ WebKit.dll!KJS::JSObject::call(KJS::ExecState * exec=0x00000000, KJS::JSObject * thisObj=0x044304c0, const KJS::List & args={...}) Line 99 C++ WebKit.dll!KJS::functionProtoFuncApply(KJS::ExecState * exec=, KJS::JSObject * thisObj=, const KJS::List & args=) Line 110 + 0x13 bytes C++ WebKit.dll!KJS::PrototypeFunction::callAsFunction(KJS::ExecState * exec=0x0012fbec, KJS::JSObject * thisObj=0x04381620, const KJS::List & args={...}) Line 882 + 0x14 bytes C++ WebKit.dll!KJS::JSObject::call(KJS::ExecState * exec=0x00000000, KJS::JSObject * thisObj=0x04381620, const KJS::List & args={...}) Line 99 C++ WebKit.dll!KJS::FunctionCallDotNode::evaluate(KJS::ExecState * exec=0x0012fbec) Line 1230 + 0x13 bytes C++ WebKit.dll!KJS::ReturnNode::execute(KJS::ExecState * exec=0x0012fbec) Line 4078 C++ WebKit.dll!KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>,0> & statements={...}, KJS::ExecState * exec=0x00000000) Line 3673 C++ WebKit.dll!KJS::FunctionBodyNode::execute(KJS::ExecState * exec=0x00000000) Line 4616 + 0x8 bytes C++ WebKit.dll!KJS::FunctionImp::callAsFunction(KJS::ExecState * exec=0x7fefaea0, KJS::JSObject * thisObj=0x043df580, const KJS::List & args={...}) Line 76 + 0xf bytes C++ WebKit.dll!KJS::JSObject::call(KJS::ExecState * exec=0x00000000, KJS::JSObject * thisObj=0x043df580, const KJS::List & args={...}) Line 99 C++ WebKit.dll!WebCore::JSAbstractEventListener::handleEvent(WebCore::Event * ele=, bool isWindowEvent=) Line 116 C++ pthreadVC2.dll!_pthread_once() + 0x1e bytes C WebKit.dll!WebCore::currentTime() Line 54 C++ WebKit.dll!WebCore::XMLHttpRequest::didFinishLoading(WebCore::SubresourceLoader * loader=0x7ff269c0) Line 699 C++ WebKit.dll!WebCore::SubresourceLoader::didFinishLoading() Line 193 + 0xe bytes C++ WebKit.dll!WebCore::ResourceLoader::didFinishLoading(WebCore::ResourceHandle * __formal=0x7fca22a0) Line 373 C++ WebKit.dll!WebCore::didFinishLoading(_CFURLConnection * conn=0x000b0432, const void * clientInfo=0x000004cf) Line 112 C++
Adam Roben (:aroben)
Comment 6
2008-02-01 08:41:58 PST
<
rdar://problem/5719597
>
Alexey Proskuryakov
Comment 7
2008-02-01 11:42:20 PST
The nightly archive only includes two ICU Dlls of three - it also needs to include the largest one, icudt36.dll.
Alexey Proskuryakov
Comment 8
2008-03-18 01:58:37 PDT
***
Bug 17894
has been marked as a duplicate of this bug. ***
Mark Rowe (bdash)
Comment 9
2008-03-18 09:09:51 PDT
Please install Safari 3.1 to resolve this issue. It was released earlier today and contains the updated ICU DLLs that fix this crash.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug