RESOLVED DUPLICATE of bug 56376 16918
ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key)
https://bugs.webkit.org/show_bug.cgi?id=16918
Summary ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key)
Matt Lilek
Reported 2008-01-17 20:33:42 PST
I've hit this assertion failure at least twice now using the inspector when switching to another resource in the sidebar. ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key) (/Users/matt/Code/WebKit/WebKitBuild/Debug/JavaScriptCore.framework/PrivateHeaders/HashTable.h:433 Value* WTF::HashTable<Key, Value, Extractor, HashFunctions, Traits, KeyTraits>::lookup(const T&) [with T = long long int, HashTranslator = WTF::IdentityHashTranslator<long long int, std::pair<long long int, int>, WTF::IntHash<long long unsigned int> >, Key = long long int, Value = std::pair<long long int, int>, Extractor = WTF::PairFirstExtractor<std::pair<long long int, int> >, HashFunctions = WTF::IntHash<long long unsigned int>, Traits = WTF::PairHashTraits<WTF::HashTraits<long long int>, WTF::HashTraits<int32_t> >, KeyTraits = WTF::HashTraits<long long int>]) Thread 0 Crashed: 0 com.apple.WebCore 0x01c99dd9 std::pair<long long, int>* WTF::HashTable<long long, std::pair<long long, int>, WTF::PairFirstExtractor<std::pair<long long, int> >, WTF::IntHash<unsigned long long>, WTF::PairHashTraits<WTF::HashTraits<long long>, WTF::HashTraits<int> >, WTF::HashTraits<long long> >::lookup<long long, WTF::IdentityHashTranslator<long long, std::pair<long long, int>, WTF::IntHash<unsigned long long> > >(long long const&) + 155 (HashTable.h:433) 1 com.apple.WebCore 0x01c99efa WTF::HashTable<long long, std::pair<long long, int>, WTF::PairFirstExtractor<std::pair<long long, int> >, WTF::IntHash<unsigned long long>, WTF::PairHashTraits<WTF::HashTraits<long long>, WTF::HashTraits<int> >, WTF::HashTraits<long long> >::lookup(long long const&) + 24 (HashTable.h:331) 2 com.apple.WebCore 0x01c99f33 WTF::HashMap<long long, WTF::RefPtr<WebCore::InspectorResource>, WTF::IntHash<unsigned long long>, WTF::HashTraits<long long>, WTF::HashTraits<WTF::RefPtr<WebCore::InspectorResource> > >::get(long long const&) const + 55 (HashMap.h:298) 3 com.apple.WebCore 0x01c96abe WebCore::addSourceToFrame(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**) + 304 (InspectorController.cpp:260) 4 com.apple.JavaScriptCore 0x0049889f KJS::JSCallbackFunction::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 241 (JSCallbackFunction.cpp:65) 5 com.apple.JavaScriptCore 0x0043dc3c KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 222 (object.cpp:96) 6 com.apple.JavaScriptCore 0x00496c9e KJS::FunctionCallDotNode::inlineEvaluate(KJS::ExecState*) + 776 (nodes.cpp:1223) 7 com.apple.JavaScriptCore 0x004598d0 KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 30 (nodes.cpp:1229) 8 com.apple.JavaScriptCore 0x0044bd69 KJS::ExprStatementNode::execute(KJS::ExecState*) + 43 (nodes.cpp:3640) 9 com.apple.JavaScriptCore 0x0042cfd7 KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>, 0ul>&, KJS::ExecState*) + 85 (nodes.cpp:3593) 10 com.apple.JavaScriptCore 0x0042d064 KJS::BlockNode::execute(KJS::ExecState*) + 26 (nodes.cpp:3619) 11 com.apple.JavaScriptCore 0x0044bcbf KJS::IfNode::execute(KJS::ExecState*) + 113 (nodes.cpp:3677) 12 com.apple.JavaScriptCore 0x0042cfd7 KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>, 0ul>&, KJS::ExecState*) + 85 (nodes.cpp:3593) 13 com.apple.JavaScriptCore 0x0042d064 KJS::BlockNode::execute(KJS::ExecState*) + 26 (nodes.cpp:3619) 14 com.apple.JavaScriptCore 0x00449476 KJS::FunctionBodyNode::execute(KJS::ExecState*) + 34 (nodes.cpp:4520) 15 com.apple.JavaScriptCore 0x00438410 KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 116 (function.cpp:76) 16 com.apple.JavaScriptCore 0x0043dc3c KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 222 (object.cpp:96) 17 com.apple.JavaScriptCore 0x00496c9e KJS::FunctionCallDotNode::inlineEvaluate(KJS::ExecState*) + 776 (nodes.cpp:1223) 18 com.apple.JavaScriptCore 0x004598d0 KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 30 (nodes.cpp:1229) 19 com.apple.JavaScriptCore 0x0044bd69 KJS::ExprStatementNode::execute(KJS::ExecState*) + 43 (nodes.cpp:3640) 20 com.apple.JavaScriptCore 0x0042cfd7 KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>, 0ul>&, KJS::ExecState*) + 85 (nodes.cpp:3593) 21 com.apple.JavaScriptCore 0x0042d064 KJS::BlockNode::execute(KJS::ExecState*) + 26 (nodes.cpp:3619) 22 com.apple.JavaScriptCore 0x00449476 KJS::FunctionBodyNode::execute(KJS::ExecState*) + 34 (nodes.cpp:4520) 23 com.apple.JavaScriptCore 0x00438410 KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 116 (function.cpp:76) 24 com.apple.JavaScriptCore 0x0043dc3c KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 222 (object.cpp:96) 25 com.apple.JavaScriptCore 0x00496c9e KJS::FunctionCallDotNode::inlineEvaluate(KJS::ExecState*) + 776 (nodes.cpp:1223) 26 com.apple.JavaScriptCore 0x004598d0 KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 30 (nodes.cpp:1229) 27 com.apple.JavaScriptCore 0x0044bd69 KJS::ExprStatementNode::execute(KJS::ExecState*) + 43 (nodes.cpp:3640) 28 com.apple.JavaScriptCore 0x0044bcbf KJS::IfNode::execute(KJS::ExecState*) + 113 (nodes.cpp:3677) 29 com.apple.JavaScriptCore 0x0042cfd7 KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>, 0ul>&, KJS::ExecState*) + 85 (nodes.cpp:3593) 30 com.apple.JavaScriptCore 0x0042d064 KJS::BlockNode::execute(KJS::ExecState*) + 26 (nodes.cpp:3619) 31 com.apple.JavaScriptCore 0x00449476 KJS::FunctionBodyNode::execute(KJS::ExecState*) + 34 (nodes.cpp:4520) 32 com.apple.JavaScriptCore 0x00438410 KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 116 (function.cpp:76) 33 com.apple.JavaScriptCore 0x0043dc3c KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 222 (object.cpp:96) 34 com.apple.JavaScriptCore 0x0043e12d KJS::JSObject::put(KJS::ExecState*, KJS::Identifier const&, KJS::JSValue*, int) + 565 (object.cpp:265) 35 com.apple.JavaScriptCore 0x0044c641 KJS::AssignDotNode::evaluate(KJS::ExecState*) + 225 (nodes.cpp:3314) 36 com.apple.JavaScriptCore 0x0044bd69 KJS::ExprStatementNode::execute(KJS::ExecState*) + 43 (nodes.cpp:3640) 37 com.apple.JavaScriptCore 0x0042cfd7 KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>, 0ul>&, KJS::ExecState*) + 85 (nodes.cpp:3593) 38 com.apple.JavaScriptCore 0x0042d064 KJS::BlockNode::execute(KJS::ExecState*) + 26 (nodes.cpp:3619) 39 com.apple.JavaScriptCore 0x00449476 KJS::FunctionBodyNode::execute(KJS::ExecState*) + 34 (nodes.cpp:4520) 40 com.apple.JavaScriptCore 0x00438410 KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 116 (function.cpp:76) 41 com.apple.JavaScriptCore 0x0043dc3c KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 222 (object.cpp:96) 42 com.apple.JavaScriptCore 0x00496c9e KJS::FunctionCallDotNode::inlineEvaluate(KJS::ExecState*) + 776 (nodes.cpp:1223) 43 com.apple.JavaScriptCore 0x004598d0 KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 30 (nodes.cpp:1229) 44 com.apple.JavaScriptCore 0x0044bd69 KJS::ExprStatementNode::execute(KJS::ExecState*) + 43 (nodes.cpp:3640) 45 com.apple.JavaScriptCore 0x0042cfd7 KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>, 0ul>&, KJS::ExecState*) + 85 (nodes.cpp:3593) 46 com.apple.JavaScriptCore 0x0042d064 KJS::BlockNode::execute(KJS::ExecState*) + 26 (nodes.cpp:3619) 47 com.apple.JavaScriptCore 0x00449476 KJS::FunctionBodyNode::execute(KJS::ExecState*) + 34 (nodes.cpp:4520) 48 com.apple.JavaScriptCore 0x00438410 KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 116 (function.cpp:76) 49 com.apple.JavaScriptCore 0x0043dc3c KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 222 (object.cpp:96) 50 com.apple.JavaScriptCore 0x00496c9e KJS::FunctionCallDotNode::inlineEvaluate(KJS::ExecState*) + 776 (nodes.cpp:1223) 51 com.apple.JavaScriptCore 0x004598d0 KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 30 (nodes.cpp:1229) 52 com.apple.JavaScriptCore 0x0044bd69 KJS::ExprStatementNode::execute(KJS::ExecState*) + 43 (nodes.cpp:3640) 53 com.apple.JavaScriptCore 0x0042cfd7 KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>, 0ul>&, KJS::ExecState*) + 85 (nodes.cpp:3593) 54 com.apple.JavaScriptCore 0x0042d064 KJS::BlockNode::execute(KJS::ExecState*) + 26 (nodes.cpp:3619) 55 com.apple.JavaScriptCore 0x00449476 KJS::FunctionBodyNode::execute(KJS::ExecState*) + 34 (nodes.cpp:4520) 56 com.apple.JavaScriptCore 0x00438410 KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 116 (function.cpp:76) 57 com.apple.JavaScriptCore 0x0043dc3c KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 222 (object.cpp:96) 58 com.apple.JavaScriptCore 0x00496c9e KJS::FunctionCallDotNode::inlineEvaluate(KJS::ExecState*) + 776 (nodes.cpp:1223) 59 com.apple.JavaScriptCore 0x004598d0 KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 30 (nodes.cpp:1229) 60 com.apple.JavaScriptCore 0x0044bd69 KJS::ExprStatementNode::execute(KJS::ExecState*) + 43 (nodes.cpp:3640) 61 com.apple.JavaScriptCore 0x0042cfd7 KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>, 0ul>&, KJS::ExecState*) + 85 (nodes.cpp:3593) 62 com.apple.JavaScriptCore 0x0042d064 KJS::BlockNode::execute(KJS::ExecState*) + 26 (nodes.cpp:3619) 63 com.apple.JavaScriptCore 0x00449476 KJS::FunctionBodyNode::execute(KJS::ExecState*) + 34 (nodes.cpp:4520) 64 com.apple.JavaScriptCore 0x00438410 KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 116 (function.cpp:76) 65 com.apple.JavaScriptCore 0x0043dc3c KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 222 (object.cpp:96) 66 com.apple.JavaScriptCore 0x00496c9e KJS::FunctionCallDotNode::inlineEvaluate(KJS::ExecState*) + 776 (nodes.cpp:1223) 67 com.apple.JavaScriptCore 0x004598d0 KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 30 (nodes.cpp:1229) 68 com.apple.JavaScriptCore 0x0044bd69 KJS::ExprStatementNode::execute(KJS::ExecState*) + 43 (nodes.cpp:3640) 69 com.apple.JavaScriptCore 0x0044bcbf KJS::IfNode::execute(KJS::ExecState*) + 113 (nodes.cpp:3677) 70 com.apple.JavaScriptCore 0x0042cfd7 KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>, 0ul>&, KJS::ExecState*) + 85 (nodes.cpp:3593) 71 com.apple.JavaScriptCore 0x0042d064 KJS::BlockNode::execute(KJS::ExecState*) + 26 (nodes.cpp:3619) 72 com.apple.JavaScriptCore 0x00449476 KJS::FunctionBodyNode::execute(KJS::ExecState*) + 34 (nodes.cpp:4520) 73 com.apple.JavaScriptCore 0x00438410 KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 116 (function.cpp:76) 74 com.apple.JavaScriptCore 0x0043dc3c KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 222 (object.cpp:96) 75 com.apple.JavaScriptCore 0x00496c9e KJS::FunctionCallDotNode::inlineEvaluate(KJS::ExecState*) + 776 (nodes.cpp:1223) 76 com.apple.JavaScriptCore 0x004598d0 KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 30 (nodes.cpp:1229) 77 com.apple.JavaScriptCore 0x0044bd69 KJS::ExprStatementNode::execute(KJS::ExecState*) + 43 (nodes.cpp:3640) 78 com.apple.JavaScriptCore 0x0044bcbf KJS::IfNode::execute(KJS::ExecState*) + 113 (nodes.cpp:3677) 79 com.apple.JavaScriptCore 0x0042cfd7 KJS::statementListExecute(WTF::Vector<WTF::RefPtr<KJS::StatementNode>, 0ul>&, KJS::ExecState*) + 85 (nodes.cpp:3593) 80 com.apple.JavaScriptCore 0x0042d064 KJS::BlockNode::execute(KJS::ExecState*) + 26 (nodes.cpp:3619) 81 com.apple.JavaScriptCore 0x00449476 KJS::FunctionBodyNode::execute(KJS::ExecState*) + 34 (nodes.cpp:4520) 82 com.apple.JavaScriptCore 0x00438410 KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 116 (function.cpp:76) 83 com.apple.JavaScriptCore 0x0043dc3c KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 222 (object.cpp:96) 84 com.apple.WebCore 0x02006abc WebCore::JSAbstractEventListener::handleEvent(WebCore::Event*, bool) + 608 (kjs_events.cpp:114) 85 com.apple.WebCore 0x01b9ceeb WebCore::EventTarget::handleLocalEvents(WebCore::EventTargetNode*, WebCore::Event*, bool) + 385 (EventTarget.cpp:305) 86 com.apple.WebCore 0x01b9d614 WebCore::EventTargetNode::handleLocalEvents(WebCore::Event*, bool) + 118 (EventTargetNode.cpp:100) 87 com.apple.WebCore 0x01b9c94a WebCore::EventTarget::dispatchGenericEvent(WebCore::EventTargetNode*, WTF::PassRefPtr<WebCore::Event>, int&, bool) + 1260 (EventTarget.cpp:225) 88 com.apple.WebCore 0x01b9dc32 WebCore::EventTargetNode::dispatchEvent(WTF::PassRefPtr<WebCore::Event>, int&, bool) + 364 (EventTargetNode.cpp:115) 89 com.apple.WebCore 0x01b9e925 WebCore::EventTargetNode::dispatchMouseEvent(WebCore::AtomicString const&, int, int, int, int, int, int, bool, bool, bool, bool, bool, WebCore::Node*, WTF::PassRefPtr<WebCore::Event>) + 697 (EventTargetNode.cpp:289) 90 com.apple.WebCore 0x01b9f079 WebCore::EventTargetNode::dispatchMouseEvent(WebCore::PlatformMouseEvent const&, WebCore::AtomicString const&, int, WebCore::Node*) + 497 (EventTargetNode.cpp:206) 91 com.apple.WebCore 0x01b949fe WebCore::EventHandler::dispatchMouseEvent(WebCore::AtomicString const&, WebCore::Node*, bool, int, WebCore::PlatformMouseEvent const&, bool) + 148 (EventHandler.cpp:1276) 92 com.apple.WebCore 0x01b9615d WebCore::EventHandler::handleMousePressEvent(WebCore::PlatformMouseEvent const&) + 975 (EventHandler.cpp:877) 93 com.apple.WebCore 0x01b9a78a WebCore::EventHandler::mouseDown(NSEvent*) + 554 (EventHandlerMac.mm:480) 94 com.apple.WebKit 0x001d105f -[WebHTMLView mouseDown:] + 499 (WebHTMLView.mm:2982) 95 com.apple.AppKit 0x9294cd9b -[NSWindow sendEvent:] + 5362 96 com.apple.AppKit 0x92919a2c -[NSApplication sendEvent:] + 2766 97 com.apple.Safari 0x000324a8 0x1000 + 201896 98 com.apple.AppKit 0x92877705 -[NSApplication run] + 847 99 com.apple.AppKit 0x928449ba NSApplicationMain + 574 100 com.apple.Safari 0x00002876 0x1000 + 6262
Attachments
John Ripley
Comment 1 2008-01-18 03:57:43 PST
I'm having the same assertion, in a different place. This is due to HashMap/HashTable not allowing key values 0 or -1 for integer->* maps. They are reserved as the "empty" and "deleted" bin values. In my case, NPN_GetIntIdentifier uses HashMap<int32, NPIdentifier> to associate integer keys with unique NPIdentifiers (actually PrivateIdentifier*). When a plugin asks for an NPIdentifier associated with 0 or -1, it will assert. I'm currently working around this by remapping the incoming int32 values to uint64 and setting bit 32, thus avoiding values 0 or -1. It's a silly workaround. Can we make HashMap stop using special values for integer keys?
John Ripley
Comment 2 2008-01-18 04:09:12 PST
(In reply to comment #1) > I'm having the same assertion, in a different place. This is due to > HashMap/HashTable not allowing key values 0 or -1 for integer->* maps. They are > reserved as the "empty" and "deleted" bin values. Scratch that - it's unrelated. I'll file a separate bug.
Matt Lilek
Comment 3 2008-03-20 18:22:11 PDT
I've been hitting this more and more lately, especially since the improved inspector console landed. Always happens when I'm clicking a url in a console message.
Frances Cornwall
Comment 4 2024-05-02 13:38:42 PDT
The bug is a resolved duplicate of: https://bugs.webkit.org/show_bug.cgi?id=56376.
Frances Cornwall
Comment 5 2024-05-22 14:42:11 PDT
*** This bug has been marked as a duplicate of bug 56376 ***
Note You need to log in before you can comment on or make changes to this bug.