<p>It can be a compiler (mis)optimization that causes this, and not x86 memory ordering.</p>
<p>Someone posted the assembly output in the comments on SO and it does seem like there&#39;s a place that loads &#39;b&#39; from the stack rather than memory.† Hans&#39; theory of CSE sounds plausible - can someone repro this without that &quot;int tt = b;&quot; line?</p>

<p>Adding hotspot compiler guys in case they want to chime in.</p>
<p>Sent from my phone</p>
<div class="gmail_quote">On May 16, 2012 3:07 PM, &quot;Aleksey Shipilev&quot; &lt;<a href="mailto:aleksey.shipilev@gmail.com">aleksey.shipilev@gmail.com</a>&gt; wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Wed, May 16, 2012 at 10:40 PM, Boehm, Hans &lt;<a href="mailto:hans.boehm@hp.com">hans.boehm@hp.com</a>&gt; wrote:<br>
&gt; A JDK bug AND a serious test suite omission?<br>
<br>
Stress tests would probably JIT-compile the code in question. See below.<br>
<br>
&gt; But is the problem real? †Can it be reproduced on a mainstream JVM?<br>
<br>
Same question.<br>
<br>
&gt; Note that the example in the original posting also read b before the loop,<br>
&gt; so naÔve common subexpression elimination would cause the bug. †Hopefully<br>
&gt; nobody does CSE in cases like this.<br>
<br>
FWIW, the test case in SO would probably not hit any compilation<br>
threshold in HotSpot, so it could be executed in interpreter. Then,<br>
assuming the interpreter does not reorder Java code, and assuming<br>
original SO poster runs Windows, and hence x86, and hence has TSO,<br>
this bug seems very unlikely. I would be surprised if it actually<br>
*can* be reproduced. That makes the whole story rather interesting.<br>
<br>
-Aleksey.<br>
<br>
_______________________________________________<br>
Concurrency-interest mailing list<br>
<a href="mailto:Concurrency-interest@cs.oswego.edu">Concurrency-interest@cs.oswego.edu</a><br>
<a href="http://cs.oswego.edu/mailman/listinfo/concurrency-interest" target="_blank">http://cs.oswego.edu/mailman/listinfo/concurrency-interest</a><br>
</blockquote></div>