Subject: bug#29348: 26.0.50; shr.el heisenbug

From: Devon Sean McCullough <[email-masked]>
Date: Sun, 19 Nov 2017 23:18:02 -0500

Downgrade from heisenbug to reproducible:
$ cd /tmp
$ cat > glFlush.xml <<\.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">

<!-- saved from url=(0013)about:internet -->
<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" pref:renderer="mathplayer-dl"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>glFlush</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1" /></head><body><div class="refentry"><a id="glFlush"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>glFlush — force execution of GL commands in finite time</p></div><div class="refsynopsisdiv"><h2>C Specification</h2><div class="funcsynopsis"><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <strong class="fsfunc">glFlush</strong>(</code></td><td> <var class="pdparam">void</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a id="description"></a><h2>Description</h2><p>
            Different GL implementations buffer commands in several different locations,
            including network buffers and the graphics accelerator itself.
            <code class="function">glFlush</code> empties all of these buffers,
            causing all issued commands to be executed as quickly as
            they are accepted by the actual rendering engine.
            Though this execution may not be completed in any particular
            time period,
            it does complete in finite time.
        </p><p>
            Because any GL program might be executed over a network,
            or on an accelerator that buffers commands,
            all programs should call <code class="function">glFlush</code> whenever they count on having
            all of their previously issued commands completed.
            For example,
            call <code class="function">glFlush</code> before waiting for user input that depends on
            the generated image.
        </p></div><div class="refsect1"><a id="notes"></a><h2>Notes</h2><p>
            <code class="function">glFlush</code> can return at any time.
            It does not wait until the execution of all previously
            issued GL commands is complete.
        </p></div><div class="refsect1"><a id="seealso"></a><h2>See Also</h2><p>
            <a class="citerefentry" href="glFinish.xml"><span class="citerefentry"><span class="refentrytitle">glFinish</span></span></a>
        </p></div><div class="refsect1"><a id="copyright"></a><h2>Copyright</h2><p>
            Copyright <span class="trademark"></span>© 1991-2006
            Silicon Graphics, Inc. This document is licensed under the SGI
            Free Software B License. For details, see
            <a class="ulink" href="http://oss.sgi.com/projects/FreeB/" target="_top">http://oss.sgi.com/projects/FreeB/</a>.
        </p></div></div></body></html>
.
$ Open -n -a Emacs --args -Q --chdir /tmp --eval '(let ((f "glFlush.xml")) (find-file f) (bury-buffer) (display-buffer f) (with-current-buffer f (shr-render-region (point-min) (point-max)) (not-modified)))'