<div dir="ltr">Have you looked into the <a href="https://github.com/undertow-io/undertow/blob/master/core/src/main/java/io/undertow/server/handlers/form/EagerFormParsingHandler.java">EagerFormParsingHandler</a>?</div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Feb 25, 2017 at 11:01 AM, Hicks, Matt <span dir="ltr">&lt;<a href="mailto:matt@matthicks.com" target="_blank">matt@matthicks.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Well, it appears I fixed the problem.  After switching to the following code everything is working fine now:<div><br></div><div><font face="monospace">if (exchange.isInIoThread()) {</font></div><div><font face="monospace">  exchange.dispatch(this);</font></div><div><font face="monospace">} else {</font></div><div><font face="monospace">  exchange.startBlocking();</font></div><div><font face="monospace">  formParserBuilder.build().<wbr>createParser(exchange).<wbr>parseBlocking();</font></div><div><font face="monospace">  ...</font></div><div><font face="monospace">}</font></div><div><br></div><div>It&#39;s unfortunately that the non-blocking approach seems to be unreliable.</div></div><div class="HOEnZb"><div class="h5"><br><div class="gmail_quote"><div dir="ltr">On Fri, Feb 24, 2017 at 7:18 PM Hicks, Matt &lt;<a href="mailto:matt@matthicks.com" target="_blank">matt@matthicks.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="m_4338856171629879887gmail_msg">I gave it several minutes to run and finally just forcibly reloaded the page and it spun for a few seconds like it normally does, but I waited and eventually it threw this exception:<div class="m_4338856171629879887gmail_msg"><br class="m_4338856171629879887gmail_msg"></div><div class="m_4338856171629879887gmail_msg"><div class="m_4338856171629879887gmail_msg">appJVM[ERROR] Feb 24, 2017 7:15:45 PM org.xnio.ChannelListeners invokeChannelListener</div><div class="m_4338856171629879887gmail_msg">appJVM[ERROR] ERROR: XNIO001007: A channel event listener threw an exception</div><div class="m_4338856171629879887gmail_msg">appJVM[ERROR] java.lang.<wbr>IllegalStateException</div><div class="m_4338856171629879887gmail_msg">appJVM[ERROR]   at io.undertow.server.protocol.<wbr>framed.<wbr>AbstractFramedStreamSinkChanne<wbr>l.getBuffer(<wbr>AbstractFramedStreamSinkChanne<wbr>l.java:574)</div><div class="m_4338856171629879887gmail_msg">appJVM[ERROR]   at io.undertow.server.protocol.<wbr>framed.AbstractFramedChannel.<wbr>flushSenders(<wbr>AbstractFramedChannel.java:<wbr>629)</div><div class="m_4338856171629879887gmail_msg">appJVM[ERROR]   at io.undertow.server.protocol.<wbr>framed.AbstractFramedChannel$<wbr>FrameWriteListener.<wbr>handleEvent(<wbr>AbstractFramedChannel.java:<wbr>951)</div><div class="m_4338856171629879887gmail_msg">appJVM[ERROR]   at io.undertow.server.protocol.<wbr>framed.AbstractFramedChannel$<wbr>FrameWriteListener.<wbr>handleEvent(<wbr>AbstractFramedChannel.java:<wbr>948)</div><div class="m_4338856171629879887gmail_msg">appJVM[ERROR]   at org.xnio.ChannelListeners.<wbr>invokeChannelListener(<wbr>ChannelListeners.java:92)</div><div class="m_4338856171629879887gmail_msg">appJVM[ERROR]   at org.xnio.conduits.<wbr>WriteReadyHandler$<wbr>ChannelListenerHandler.<wbr>writeReady(WriteReadyHandler.<wbr>java:65)</div><div class="m_4338856171629879887gmail_msg">appJVM[ERROR]   at io.undertow.protocols.ssl.<wbr>SslConduit$<wbr>SslWriteReadyHandler.<wbr>writeReady(SslConduit.java:<wbr>1225)</div><div class="m_4338856171629879887gmail_msg">appJVM[ERROR]   at io.undertow.protocols.ssl.<wbr>SslConduit$3.run(SslConduit.<wbr>java:275)</div><div class="m_4338856171629879887gmail_msg">appJVM[ERROR]   at org.xnio.nio.WorkerThread.<wbr>safeRun(WorkerThread.java:580)</div><div class="m_4338856171629879887gmail_msg">appJVM[ERROR]   at org.xnio.nio.WorkerThread.run(<wbr>WorkerThread.java:464)</div></div><div class="m_4338856171629879887gmail_msg"><br class="m_4338856171629879887gmail_msg"></div><div class="m_4338856171629879887gmail_msg">I don&#39;t know if it&#39;s relevant to the problem or not, but at this point I&#39;m just grasping for any straw.</div></div><br class="m_4338856171629879887gmail_msg"><div class="gmail_quote m_4338856171629879887gmail_msg"><div dir="ltr" class="m_4338856171629879887gmail_msg">On Fri, Feb 24, 2017 at 5:18 PM Hicks, Matt &lt;<a href="mailto:matt@matthicks.com" class="m_4338856171629879887gmail_msg" target="_blank">matt@matthicks.com</a>&gt; wrote:<br class="m_4338856171629879887gmail_msg"></div><blockquote class="gmail_quote m_4338856171629879887gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="m_4338856171629879887gmail_msg">4.) I have three threads &quot;runnable&quot;:<div class="m_4338856171629879887gmail_msg"><br class="m_4338856171629879887gmail_msg"></div><div class="m_4338856171629879887gmail_msg"><div class="m_4338856171629879887gmail_msg">&quot;XNIO-1 Accept@6446&quot; prio=5 tid=0x21 nid=NA runnable</div><div class="m_4338856171629879887gmail_msg">  java.lang.Thread.State: RUNNABLE</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  at sun.nio.ch.EPollArrayWrapper.<wbr>epollWait(EPollArrayWrapper.<wbr>java:-1)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  at sun.nio.ch.EPollArrayWrapper.<wbr>poll(EPollArrayWrapper.java:<wbr>269)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  at sun.nio.ch.EPollSelectorImpl.<wbr>doSelect(EPollSelectorImpl.<wbr>java:93)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  at sun.nio.ch.SelectorImpl.<wbr>lockAndDoSelect(SelectorImpl.<wbr>java:86)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  - locked &lt;merged&gt;(a sun.nio.ch.EPollSelectorImpl)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  - locked &lt;merged&gt;(a java.util.Collections$<wbr>UnmodifiableSet)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  - locked &lt;merged&gt;(a sun.nio.ch.Util$3)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  at sun.nio.ch.SelectorImpl.<wbr>select(SelectorImpl.java:97)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  at sun.nio.ch.SelectorImpl.<wbr>select(SelectorImpl.java:101)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  at org.xnio.nio.WorkerThread.run(<wbr>WorkerThread.java:509)</div></div><div class="m_4338856171629879887gmail_msg"><br class="m_4338856171629879887gmail_msg"></div><div class="m_4338856171629879887gmail_msg"><div class="m_4338856171629879887gmail_msg">&quot;XNIO-1 I/O-7@6448&quot; prio=5 tid=0x1f nid=NA runnable</div><div class="m_4338856171629879887gmail_msg">  java.lang.Thread.State: RUNNABLE</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  at sun.nio.ch.EPollArrayWrapper.<wbr>epollWait(EPollArrayWrapper.<wbr>java:-1)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  at sun.nio.ch.EPollArrayWrapper.<wbr>poll(EPollArrayWrapper.java:<wbr>269)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  at sun.nio.ch.EPollSelectorImpl.<wbr>doSelect(EPollSelectorImpl.<wbr>java:93)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  at sun.nio.ch.SelectorImpl.<wbr>lockAndDoSelect(SelectorImpl.<wbr>java:86)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  - locked &lt;merged&gt;(a sun.nio.ch.EPollSelectorImpl)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  - locked &lt;merged&gt;(a java.util.Collections$<wbr>UnmodifiableSet)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  - locked &lt;merged&gt;(a sun.nio.ch.Util$3)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  at sun.nio.ch.SelectorImpl.<wbr>select(SelectorImpl.java:97)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  at sun.nio.ch.SelectorImpl.<wbr>select(SelectorImpl.java:101)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  at org.xnio.nio.WorkerThread.run(<wbr>WorkerThread.java:509)</div></div><div class="m_4338856171629879887gmail_msg"><br class="m_4338856171629879887gmail_msg"></div><div class="m_4338856171629879887gmail_msg"><div class="m_4338856171629879887gmail_msg">&quot;XNIO-1 I/O-3@6452&quot; prio=5 tid=0x1b nid=NA runnable</div><div class="m_4338856171629879887gmail_msg">  java.lang.Thread.State: RUNNABLE</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  at sun.nio.ch.EPollArrayWrapper.<wbr>epollWait(EPollArrayWrapper.<wbr>java:-1)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  at sun.nio.ch.EPollArrayWrapper.<wbr>poll(EPollArrayWrapper.java:<wbr>269)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  at sun.nio.ch.EPollSelectorImpl.<wbr>doSelect(EPollSelectorImpl.<wbr>java:93)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  at sun.nio.ch.SelectorImpl.<wbr>lockAndDoSelect(SelectorImpl.<wbr>java:86)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  - locked &lt;0x1953&gt; (a sun.nio.ch.EPollSelectorImpl)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  - locked &lt;0x1954&gt; (a java.util.Collections$<wbr>UnmodifiableSet)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  - locked &lt;0x1955&gt; (a sun.nio.ch.Util$3)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  at sun.nio.ch.SelectorImpl.<wbr>select(SelectorImpl.java:97)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  at sun.nio.ch.SelectorImpl.<wbr>select(SelectorImpl.java:101)</div><div class="m_4338856171629879887gmail_msg"><span class="m_4338856171629879887m_6548653926806048009m_-8145504409669069966Apple-tab-span m_4338856171629879887gmail_msg" style="white-space:pre-wrap">        </span>  at org.xnio.nio.WorkerThread.run(<wbr>WorkerThread.java:509)</div></div><div class="m_4338856171629879887gmail_msg"><br class="m_4338856171629879887gmail_msg"></div><div class="m_4338856171629879887gmail_msg"><br class="m_4338856171629879887gmail_msg"></div></div><br class="m_4338856171629879887gmail_msg"><div class="gmail_quote m_4338856171629879887gmail_msg"><div dir="ltr" class="m_4338856171629879887gmail_msg">On Fri, Feb 24, 2017 at 5:15 PM Hicks, Matt &lt;<a href="mailto:matt@matthicks.com" class="m_4338856171629879887gmail_msg" target="_blank">matt@matthicks.com</a>&gt; wrote:<br class="m_4338856171629879887gmail_msg"></div><blockquote class="gmail_quote m_4338856171629879887gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="m_4338856171629879887gmail_msg">1.) I was running 1.4.10.Final, but I upgraded to 1.4.11.Final hoping it was a bug that was fixed, but it didn&#39;t make any difference.<div class="m_4338856171629879887gmail_msg">2.) Yes</div><div class="m_4338856171629879887gmail_msg">3.) No, of the 8 virtual CPUs none of them are maxed out.</div><div class="m_4338856171629879887gmail_msg">4.) I&#39;ll have to get back to you...</div></div><br class="m_4338856171629879887gmail_msg"><div class="gmail_quote m_4338856171629879887gmail_msg"><div dir="ltr" class="m_4338856171629879887gmail_msg">On Fri, Feb 24, 2017 at 5:10 PM Stuart Douglas &lt;<a href="mailto:sdouglas@redhat.com" class="m_4338856171629879887gmail_msg" target="_blank">sdouglas@redhat.com</a>&gt; wrote:<br class="m_4338856171629879887gmail_msg"></div><blockquote class="gmail_quote m_4338856171629879887gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">- What version of Undertow?<br class="m_4338856171629879887gmail_msg">
- Is SSL in use?<br class="m_4338856171629879887gmail_msg">
- Does the server enter some kind of spin loop (i.e. 100% CPU usage)?<br class="m_4338856171629879887gmail_msg">
- What does the stack trace look like when this happens?<br class="m_4338856171629879887gmail_msg">
<br class="m_4338856171629879887gmail_msg">
Stuart<br class="m_4338856171629879887gmail_msg">
<br class="m_4338856171629879887gmail_msg">
On Sat, Feb 25, 2017 at 9:14 AM, Hicks, Matt &lt;<a href="mailto:matt@matthicks.com" class="m_4338856171629879887gmail_msg" target="_blank">matt@matthicks.com</a>&gt; wrote:<br class="m_4338856171629879887gmail_msg">
&gt; I&#39;m uploading files as &quot;multipart/form-data&quot; and using the FormParser as<br class="m_4338856171629879887gmail_msg">
&gt; follows:<br class="m_4338856171629879887gmail_msg">
&gt;<br class="m_4338856171629879887gmail_msg">
&gt; FormParserFactory.builder().<wbr>build().createParser(exchange)<wbr>.parse(nextHandler)<br class="m_4338856171629879887gmail_msg">
&gt;<br class="m_4338856171629879887gmail_msg">
&gt; Sometimes this works fine, but very often my client shows progress up to a<br class="m_4338856171629879887gmail_msg">
&gt; certain percentage complete (monitoring the AJAX request) and then just<br class="m_4338856171629879887gmail_msg">
&gt; stops and never kicks to `nextHandler`, leaves the connection just sitting<br class="m_4338856171629879887gmail_msg">
&gt; there forever, and the server seems to stop accepting any future<br class="m_4338856171629879887gmail_msg">
&gt; connections.<br class="m_4338856171629879887gmail_msg">
&gt;<br class="m_4338856171629879887gmail_msg">
&gt; Any idea what might be causing this?<br class="m_4338856171629879887gmail_msg">
&gt;<br class="m_4338856171629879887gmail_msg">
&gt; ______________________________<wbr>_________________<br class="m_4338856171629879887gmail_msg">
&gt; undertow-dev mailing list<br class="m_4338856171629879887gmail_msg">
&gt; <a href="mailto:undertow-dev@lists.jboss.org" class="m_4338856171629879887gmail_msg" target="_blank">undertow-dev@lists.jboss.org</a><br class="m_4338856171629879887gmail_msg">
&gt; <a href="https://lists.jboss.org/mailman/listinfo/undertow-dev" rel="noreferrer" class="m_4338856171629879887gmail_msg" target="_blank">https://lists.jboss.org/<wbr>mailman/listinfo/undertow-dev</a><br class="m_4338856171629879887gmail_msg">
</blockquote></div></blockquote></div></blockquote></div></blockquote></div>
</div></div><br>______________________________<wbr>_________________<br>
undertow-dev mailing list<br>
<a href="mailto:undertow-dev@lists.jboss.org">undertow-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/undertow-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/<wbr>mailman/listinfo/undertow-dev</a><br></blockquote></div><br></div>