ari-ban / issue-test

0 stars 0 forks source link

Noticed high CPU usage when testing HTTP/2. Found threads in a loop #1930

Closed arinban closed 7 years ago

arinban commented 7 years ago

Stacktrace:

at org.glassfish.grizzly.http2.DefaultOutputSink.addOutputQueueRecord(DefaultOutputSink.java:666)
    at org.glassfish.grizzly.http2.DefaultOutputSink.writeDownStream(DefaultOutputSink.java:451)
    - locked <0x000000076b885910> (a org.glassfish.grizzly.http2.DefaultOutputSink)
    at org.glassfish.grizzly.http2.Http2ServerFilter.processOutgoingHttpHeader(Http2ServerFilter.java:854)
    at org.glassfish.grizzly.http2.Http2BaseFilter.handleWrite(Http2BaseFilter.java:661)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$8.execute(ExecutorResolver.java:111)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.filterchain.FilterChainContext.write(FilterChainContext.java:890)
    at org.glassfish.grizzly.filterchain.FilterChainContext.write(FilterChainContext.java:743)
    at org.glassfish.grizzly.http.server.FileCacheFilter.handleRead(FileCacheFilter.java:126)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.http2.Http2Session.sendMessageUpstream(Http2Session.java:1284)
    at org.glassfish.grizzly.http2.Http2Session.sendMessageUpstream(Http2Session.java:1260)
    at org.glassfish.grizzly.http2.Http2BaseFilter.sendUpstream(Http2BaseFilter.java:784)
    at org.glassfish.grizzly.http2.Http2ServerFilter.processInRequest(Http2ServerFilter.java:821)
    at org.glassfish.grizzly.http2.Http2ServerFilter.processCompleteHeader(Http2ServerFilter.java:744)
    at org.glassfish.grizzly.http2.Http2BaseFilter.processHeadersFrame(Http2BaseFilter.java:622)
    at org.glassfish.grizzly.http2.Http2BaseFilter.processInFrame(Http2BaseFilter.java:441)
    at org.glassfish.grizzly.http2.Http2BaseFilter.processFrames(Http2BaseFilter.java:177)
    at org.glassfish.grizzly.http2.Http2ServerFilter.handleRead(Http2ServerFilter.java:532)
arinban commented 6 years ago
arinban commented 7 years ago

@rlubke Commented To reproduce: h2spec generic/2/3 -h localhost -p 8080

arinban commented 7 years ago

@rlubke Commented Test case sets the initial window size to zero which causes the DefaultOutputSink to spin trying to send a response.