While pushing some resources from the Server I received the following StackOverflowError sometimes when refreshing my page (the resource failed to load of course). ``` Okt 27, 2017 3:10:26 PM org.apache.coyote.AbstractProtocol$ConnectionHandler process SEVERE: Error reading request, ignored java.lang.StackOverflowError at java.util.concurrent.ConcurrentHashMap$BaseIterator.<init>(ConcurrentHashMap.java:3391) at java.util.concurrent.ConcurrentHashMap$KeyIterator.<init>(ConcurrentHashMap.java:3410) at java.util.concurrent.ConcurrentHashMap$KeySetView.iterator(ConcurrentHashMap.java:4578) at java.util.Collections$SetFromMap.iterator(Collections.java:5462) at org.apache.coyote.http2.AbstractStream.isDescendant(AbstractStream.java:69) at org.apache.coyote.http2.AbstractStream.isDescendant(AbstractStream.java:70) at org.apache.coyote.http2.AbstractStream.isDescendant(AbstractStream.java:70) at org.apache.coyote.http2.AbstractStream.isDescendant(AbstractStream.java:70) at org.apache.coyote.http2.AbstractStream.isDescendant(AbstractStream.java:70) at org.apache.coyote.http2.AbstractStream.isDescendant(AbstractStream.java:70) ```
Please provide a test case.
I've managed to find a way to reproduce this. The logic for re-prioritising streams doesn't always remove children from their old parent when they are re-prioritised. With the right sequence of moves, you can generate circular references.
Thanks for the report. Fixed in: - trunk for 9.0.2 onwards - 8.5.x for 8.5.24 onwards
Hi Mark, thanks for fix. I had a look into the commit and I guess I wouldn't be able to provide such a test case without having a deeper knowledge about the code base.