Bug 62628 - Async servlet over HTTP/2 non-blocking write does not work if client sets custom SETTINGS_INITIAL_WINDOW_SIZE
Summary: Async servlet over HTTP/2 non-blocking write does not work if client sets cus...
Alias: None
Product: Tomcat 9
Classification: Unclassified
Component: Servlet (show other bugs)
Version: 9.0.x
Hardware: PC Linux
: P2 normal (vote)
Target Milestone: -----
Assignee: Tomcat Developers Mailing List
Depends on:
Reported: 2018-08-15 20:17 UTC by Dapeng Zhang
Modified: 2018-08-18 00:01 UTC (History)
0 users


Note You need to log in before you can comment on or make changes to this bug.
Description Dapeng Zhang 2018-08-15 20:17:29 UTC
Same test cases as in https://bz.apache.org/bugzilla/show_bug.cgi?id=62620

Run nghttp client with commands
$ nghttp "http://localhost:8080/largeasyncwrite" -v --window-bits=17
$ nghttp "http://localhost:8080/largeasyncwrite2" -v --window-bits=17

Note: Test case 2. had a bug at line 55:
"while (ready = output.isReady() && i.get() <= 3) {"
should be
"while ((ready = output.isReady()) && i.get() <= 3) {"
Comment 1 Mark Thomas 2018-08-15 20:33:56 UTC
Please retest with latest 9.0.x built from svn.
Comment 2 Dapeng Zhang 2018-08-15 21:28:00 UTC
Mark, my test is based on
commit 36eba2e863abc943a8a79898ff2ae553fc49139b (HEAD -> trunk, origin/trunk, origin/HEAD)
Author: Mark Thomas <markt@apache.org>
Date:   Wed Aug 15 15:25:17 2018 +0000

    Add missing check
    git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1838107 13f79535-47bb-0310-9956-ffa450edef68
Comment 3 Mark Thomas 2018-08-15 22:09:48 UTC
Thanks. I've added a 9.0.x version to Bugzilla and set it for this issue.
Comment 4 Mark Thomas 2018-08-17 20:47:09 UTC
Fixed in:
- trunk for 9.0.12 onwards
- 8.5.x for 8.5.34 onwards

Thanks again for the bug report.
Comment 5 Dapeng Zhang 2018-08-18 00:01:17 UTC
Thanks a lot for the fix! Now almost all my integrated tests passed.