<html>
    <head>
      <base href="https://bugs.webkit.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Crash when dumping bytecode while profiling"
   href="https://bugs.webkit.org/show_bug.cgi?id=149973">149973</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Crash when dumping bytecode while profiling
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>WebKit
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>WebKit Local Build
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Unspecified
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Unspecified
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>Normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P2
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>JavaScriptCore
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>webkit-unassigned&#64;lists.webkit.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>mhahnenb&#64;gmail.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Backtrace:

Thread 21 Crashed:: DFG Worklist Worker Thread
0   com.apple.JavaScriptCore          0x0000000114f7cc01 JSC::AccessCase::dump(WTF::PrintStream&amp;) const + 17
1   com.apple.JavaScriptCore          0x0000000114f82e3d JSC::PolymorphicAccess::dump(WTF::PrintStream&amp;) const + 109
2   com.apple.JavaScriptCore          0x0000000114a0e5b9 JSC::CodeBlock::printGetByIdCacheStatus(WTF::PrintStream&amp;, JSC::ExecState*, int, WTF::HashMap&lt;JSC::CodeOrigin, JSC::StructureStubInfo*, JSC::CodeOriginApproximateHash, WTF::HashTraits&lt;JSC::CodeOrigin&gt;, WTF::HashTraits&lt;JSC::StructureStubInfo*&gt; &gt; const&amp;) + 809
3   com.apple.JavaScriptCore          0x0000000114a106a2 JSC::CodeBlock::dumpBytecode(WTF::PrintStream&amp;, JSC::ExecState*, JSC::Instruction const*, JSC::Instruction const*&amp;, WTF::HashMap&lt;JSC::CodeOrigin, JSC::StructureStubInfo*, JSC::CodeOriginApproximateHash, WTF::HashTraits&lt;JSC::CodeOrigin&gt;, WTF::HashTraits&lt;JSC::StructureStubInfo*&gt; &gt; const&amp;, WTF::HashMap&lt;JSC::CodeOrigin, JSC::CallLinkInfo*, JSC::CodeOriginApproximateHash, WTF::HashTraits&lt;JSC::CodeOrigin&gt;, WTF::HashTraits&lt;JSC::CallLinkInfo*&gt; &gt; const&amp;) + 1362
4   com.apple.JavaScriptCore          0x0000000114a18eb1 JSC::CodeBlock::dumpBytecode(WTF::PrintStream&amp;, unsigned int, WTF::HashMap&lt;JSC::CodeOrigin, JSC::StructureStubInfo*, JSC::CodeOriginApproximateHash, WTF::HashTraits&lt;JSC::CodeOrigin&gt;, WTF::HashTraits&lt;JSC::StructureStubInfo*&gt; &gt; const&amp;, WTF::HashMap&lt;JSC::CodeOrigin, JSC::CallLinkInfo*, JSC::CodeOriginApproximateHash, WTF::HashTraits&lt;JSC::CodeOrigin&gt;, WTF::HashTraits&lt;JSC::CallLinkInfo*&gt; &gt; const&amp;) + 81
5   com.apple.JavaScriptCore          0x0000000114f9cd5c JSC::Profiler::BytecodeSequence::BytecodeSequence(JSC::CodeBlock*) + 700
6   com.apple.JavaScriptCore          0x0000000114fa31d5 JSC::Profiler::ProfiledBytecodes::ProfiledBytecodes(JSC::Profiler::Bytecodes*, JSC::CodeBlock*) + 21
7   com.apple.JavaScriptCore          0x0000000114f9da8f JSC::Profiler::Compilation::addProfiledBytecodes(JSC::Profiler::Database&amp;, JSC::CodeBlock*) + 95
8   com.apple.JavaScriptCore          0x0000000114a95af2 JSC::DFG::ByteCodeParser::parseCodeBlock() + 98
9   com.apple.JavaScriptCore          0x0000000114a81aad bool JSC::DFG::ByteCodeParser::attemptToInlineCall&lt;JSC::DFG::ByteCodeParser::handleInlining(JSC::DFG::Node*, int, JSC::CallLinkStatus const&amp;, int, JSC::VirtualRegister, JSC::VirtualRegister, unsigned int, int, unsigned int, JSC::DFG::NodeType, JSC::InlineCallFrame::Kind, unsigned int)::$_0&gt;(JSC::DFG::Node*, int, JSC::CallVariant, int, int, unsigned int, JSC::InlineCallFrame::Kind, JSC::DFG::ByteCodeParser::CallerLinkability, unsigned int, unsigned int&amp;, JSC::DFG::ByteCodeParser::handleInlining(JSC::DFG::Node*, int, JSC::CallLinkStatus const&amp;, int, JSC::VirtualRegister, JSC::VirtualRegister, unsigned int, int, unsigned int, JSC::DFG::NodeType, JSC::InlineCallFrame::Kind, unsigned int)::$_0 const&amp;) + 2701
10  com.apple.JavaScriptCore          0x0000000114a7d0f1 JSC::DFG::ByteCodeParser::handleInlining(JSC::DFG::Node*, int, JSC::CallLinkStatus const&amp;, int, JSC::VirtualRegister, JSC::VirtualRegister, unsigned int, int, unsigned int, JSC::DFG::NodeType, JSC::InlineCallFrame::Kind, unsigned int) + 945
11  com.apple.JavaScriptCore          0x0000000114a7cbd8 JSC::DFG::ByteCodeParser::handleCall(int, JSC::DFG::NodeType, JSC::InlineCallFrame::Kind, unsigned int, JSC::DFG::Node*, int, int, JSC::CallLinkStatus, unsigned int) + 312
12  com.apple.JavaScriptCore          0x0000000114a7ca50 JSC::DFG::ByteCodeParser::handleCall(int, JSC::DFG::NodeType, JSC::CallMode, unsigned int, JSC::DFG::Node*, int, int, JSC::CallLinkStatus) + 432
13  com.apple.JavaScriptCore          0x0000000114a7c825 JSC::DFG::ByteCodeParser::handleCall(int, JSC::DFG::NodeType, JSC::CallMode, unsigned int, int, int, int) + 277
14  com.apple.JavaScriptCore          0x0000000114a89c62 JSC::DFG::ByteCodeParser::parseBlock(unsigned int) + 8450
15  com.apple.JavaScriptCore          0x0000000114a95f8b JSC::DFG::ByteCodeParser::parseCodeBlock() + 1275
16  com.apple.JavaScriptCore          0x0000000114a96306 JSC::DFG::ByteCodeParser::parse() + 262
17  com.apple.JavaScriptCore          0x0000000114a96589 JSC::DFG::parse(JSC::DFG::Graph&amp;) + 425
18  com.apple.JavaScriptCore          0x0000000114b912d0 JSC::DFG::Plan::compileInThreadImpl(JSC::DFG::LongLivedState&amp;) + 256
19  com.apple.JavaScriptCore          0x0000000114b90e91 JSC::DFG::Plan::compileInThread(JSC::DFG::LongLivedState&amp;, JSC::DFG::ThreadData*) + 577
20  com.apple.JavaScriptCore          0x0000000114c3e876 JSC::DFG::Worklist::runThread(JSC::DFG::ThreadData*) + 758
21  com.apple.JavaScriptCore          0x000000011507d8d2 WTF::threadEntryPoint(void*) + 178
22  com.apple.JavaScriptCore          0x000000011507dcff WTF::wtfThreadEntryPoint(void*) + 15
23  libsystem_pthread.dylib           0x00007fff9780905a _pthread_body + 131
24  libsystem_pthread.dylib           0x00007fff97808fd7 _pthread_start + 176
25  libsystem_pthread.dylib           0x00007fff978063ed thread_start + 13

My guess is that the dumping code isn't taking the CodeBlock's concurrent JIT lock despite the fact that it's looking at inline-cache related things while dumping. The BytecodeSequence constructor takes the lock in its first loop but fails to do so in the second loop.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>