<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic AppCore bug found and fixed... in Intel® Moderncode for Parallel Architectures</title>
    <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/AppCore-bug-found-and-fixed/m-p/990947#M6247</link>
    <description>&lt;DIV&gt;I found and fixed the last bug in AppCore wrt SMR and the node cache. &lt;BR /&gt;AppCore should now be basically bug free, I am currently verifying that. You &lt;BR /&gt;should probably re-download. Again, the bug is very subtle hard to trip. It &lt;BR /&gt;had to do with the way the lock-free single-producer/consumer queue &lt;BR /&gt;allocated its very first dummy node. The broken code simple did not set the &lt;BR /&gt;fp_dtor member of the dummy node to null. Stupid me!!!&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;Here is how you would reproduce it:&lt;/DIV&gt;
&lt;DIV&gt;1. create a new queue object&lt;/DIV&gt;
&lt;DIV&gt;2. enqueue/dequeue an object with Thread A&lt;/DIV&gt;
&lt;DIV&gt;3. pop the bad node from the cache in Thread A&lt;/DIV&gt;
&lt;DIV&gt;4. collect the bad node into Thread A SMR cache&lt;/DIV&gt;
&lt;DIV&gt;5. join and/or scan Thread A SMR cache&lt;/DIV&gt;
&lt;DIV&gt;6. SMR scanner can sometimes crash when it iterates over the bad node by &lt;BR /&gt;calling a corrupted deferred callback function pointer, if it does goto step &lt;BR /&gt;7&lt;/DIV&gt;
&lt;DIV&gt;7. BOOM!&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;:(...&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Sorry! &lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Wed, 11 May 2005 04:33:15 GMT</pubDate>
    <dc:creator>Chris_M__Thomasson</dc:creator>
    <dc:date>2005-05-11T04:33:15Z</dc:date>
    <item>
      <title>AppCore bug found and fixed...</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/AppCore-bug-found-and-fixed/m-p/990947#M6247</link>
      <description>&lt;DIV&gt;I found and fixed the last bug in AppCore wrt SMR and the node cache. &lt;BR /&gt;AppCore should now be basically bug free, I am currently verifying that. You &lt;BR /&gt;should probably re-download. Again, the bug is very subtle hard to trip. It &lt;BR /&gt;had to do with the way the lock-free single-producer/consumer queue &lt;BR /&gt;allocated its very first dummy node. The broken code simple did not set the &lt;BR /&gt;fp_dtor member of the dummy node to null. Stupid me!!!&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;Here is how you would reproduce it:&lt;/DIV&gt;
&lt;DIV&gt;1. create a new queue object&lt;/DIV&gt;
&lt;DIV&gt;2. enqueue/dequeue an object with Thread A&lt;/DIV&gt;
&lt;DIV&gt;3. pop the bad node from the cache in Thread A&lt;/DIV&gt;
&lt;DIV&gt;4. collect the bad node into Thread A SMR cache&lt;/DIV&gt;
&lt;DIV&gt;5. join and/or scan Thread A SMR cache&lt;/DIV&gt;
&lt;DIV&gt;6. SMR scanner can sometimes crash when it iterates over the bad node by &lt;BR /&gt;calling a corrupted deferred callback function pointer, if it does goto step &lt;BR /&gt;7&lt;/DIV&gt;
&lt;DIV&gt;7. BOOM!&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;:(...&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Sorry! &lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 11 May 2005 04:33:15 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/AppCore-bug-found-and-fixed/m-p/990947#M6247</guid>
      <dc:creator>Chris_M__Thomasson</dc:creator>
      <dc:date>2005-05-11T04:33:15Z</dc:date>
    </item>
  </channel>
</rss>

