You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Arief Hasani <ah...@yahoo.com.INVALID> on 2019/12/05 05:47:38 UTC

http2 async timeout setting

Hi Guys,
Seems like AsyncContext.setTimeout is not working if using http2 (clients are chome, firefox, safari on mac). It runs well on http1.1
Thanks

Re: http2 async timeout setting

Posted by Mark Thomas <ma...@apache.org>.
On 10/12/2019 11:23, Arief Hasani wrote:
>  Hi Mark,
> Very much appreciated.

Fixed in:
- master for 9.0.31 onwards
- 8.5.x for 8.5.51 onwards

7.0.x was not affected.

Mark


> Thanks
>     On Monday, December 9, 2019, 05:59:58 PM GMT+7, Mark Thomas <ma...@apache.org> wrote:  
>  
>  On 07/12/2019 03:46, Arief Hasani wrote:
>>   Hi Chris, 
>> Thanks for the reminder. following is the code that runs the timeout listener on time while running on http1.1 but not on http2. tested on 9.0.29
> 
> <snip/>
> 
> I can reproduce this. I'm working on a fix now.
> 
> Mark
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
>   
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: http2 async timeout setting

Posted by Arief Hasani <ah...@yahoo.com.INVALID>.
 Hi Mark,
Very much appreciated.
Thanks
    On Monday, December 9, 2019, 05:59:58 PM GMT+7, Mark Thomas <ma...@apache.org> wrote:  
 
 On 07/12/2019 03:46, Arief Hasani wrote:
>  Hi Chris, 
> Thanks for the reminder. following is the code that runs the timeout listener on time while running on http1.1 but not on http2. tested on 9.0.29

<snip/>

I can reproduce this. I'm working on a fix now.

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org

  

Re: http2 async timeout setting

Posted by Mark Thomas <ma...@apache.org>.
On 07/12/2019 03:46, Arief Hasani wrote:
>  Hi Chris, 
> Thanks for the reminder. following is the code that runs the timeout listener on time while running on http1.1 but not on http2. tested on 9.0.29

<snip/>

I can reproduce this. I'm working on a fix now.

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: http2 async timeout setting

Posted by Arief Hasani <ah...@yahoo.com.INVALID>.
 Hi Chris, 
Thanks for the reminder. following is the code that runs the timeout listener on time while running on http1.1 but not on http2. tested on 9.0.29
//// start code@WebServlet(name = "Test", urlPatterns = {"/test"}, asyncSupported = true)public class Main extends HttpServlet {
@Override  protected void doGet(HttpServletRequest request, HttpServletResponse response)          throws ServletException, IOException {    response.setContentType("text/html;charset=UTF-8");
    final AsyncContext ac = request.startAsync();    ac.addListener(new AsyncListener() {      @Override      public void onComplete(AsyncEvent event) throws IOException {        System.out.println("AppAsyncListener onComplete");      }
      @Override      public void onTimeout(AsyncEvent event) throws IOException {        System.out.println("AppAsyncListener onTimeout");        AsyncContext ac = event.getAsyncContext();        ac.complete();      }
      @Override      public void onError(AsyncEvent event) throws IOException {        System.out.println("AppAsyncListener onError");      }
      @Override      public void onStartAsync(AsyncEvent event) throws IOException {        System.out.println("AppAsyncListener onStart");      }    });
    ac.setTimeout(2000);    ac.start(new Runnable() {      @Override      public void run() {        try (PrintWriter out = ac.getResponse().getWriter()) {          for (int i = 0; i < 10; i++) {            try {              String text = "Counter :" + i + "\n";              out.write(text);              out.flush();              Thread.sleep(500);            } catch (InterruptedException ex) {              Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);            }          } ac.complete();        } catch (IOException ex) {          Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);        }      }    });  }  }//// end code
server.xml excerpt for http2 is :      <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol"                          overheadContinuationThreshold="0"                         overheadDataThreshold="0"                         overheadWindowUpdateThreshold="0"      />
Thanks and Cheers
    On Thursday, December 5, 2019, 11:14:46 PM GMT+7, Christopher Schultz <ch...@christopherschultz.net> wrote:  
 
 -----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Afief,

On 12/5/19 00:47, Arief Hasani wrote:
> Seems like AsyncContext.setTimeout is not working if using http2 
> (clients are chome, firefox, safari on mac). It runs well on
> http1.1

Seems like posting some sample code with your expectations and
observed results might be helpful here.

- -chris
-----BEGIN PGP SIGNATURE-----
Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/

iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAl3pLOcACgkQHPApP6U8
pFgaxA/+KjciXsMo/L26sFneXMCTNu/jxxlRaY4h1YnJW7kd2K/e5yu9q7uVJHwA
fUk7K1/ftZF+h/SPxVJRl9uZPSRNUd6NyANHGHtO++jPdhZQJKaqXl79fdvCBX4/
9KO5CyUrp3+I088bXaKdiBWmNoUXoOPysMuWNQyVR90IXDYDnbpAJO8U/IKQT/us
VVFfGu3vA+mpcRndYmywSlXzP/D7bwcTEuaHqXFuewJ+HxASLbgTwW1bmHdncHkS
7NGNV/A3i2RF5MJCcmG3Y2ovDPNb4xhjhriazyQ44sX3PZZimRRaGRcg9vrodFww
QlvtWaitPNmLBtegGbTUoFLy5OjVq1mLZVfpIQ4/t/7WQdhBDCndg8eSfF8Ucrpq
9I8D1E5sggLOmUFEmFnNVcQNQ34Rk4/Rg59SwaoXyT8cJBEYLDg8NViA6zqDGFXF
dTGEEI/ljO6lAqp3vsCoVV5ri+dGXEaYDlCGvsFMt9cHPAnsFOoN2DP+EIFwixKT
LoF5EGxa6mDHN+gs57G1OU+8E62AwKU+Z5ySrvs0ibV00in3GMacB+ls39fZbzqx
CTcsnbwQj1k9covq18UTj0Lw7Ni/DyxjE+FWvCKPBxYuIpob8KMyBRU2snYVIN+5
LwVk3sxs6TMAPqClB+aga9O9e3728G5vpEacF5CoyrIRNZO2YF4=
=mYUh
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org

  

Re: http2 async timeout setting

Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Afief,

On 12/5/19 00:47, Arief Hasani wrote:
> Seems like AsyncContext.setTimeout is not working if using http2 
> (clients are chome, firefox, safari on mac). It runs well on
> http1.1

Seems like posting some sample code with your expectations and
observed results might be helpful here.

- -chris
-----BEGIN PGP SIGNATURE-----
Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/

iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAl3pLOcACgkQHPApP6U8
pFgaxA/+KjciXsMo/L26sFneXMCTNu/jxxlRaY4h1YnJW7kd2K/e5yu9q7uVJHwA
fUk7K1/ftZF+h/SPxVJRl9uZPSRNUd6NyANHGHtO++jPdhZQJKaqXl79fdvCBX4/
9KO5CyUrp3+I088bXaKdiBWmNoUXoOPysMuWNQyVR90IXDYDnbpAJO8U/IKQT/us
VVFfGu3vA+mpcRndYmywSlXzP/D7bwcTEuaHqXFuewJ+HxASLbgTwW1bmHdncHkS
7NGNV/A3i2RF5MJCcmG3Y2ovDPNb4xhjhriazyQ44sX3PZZimRRaGRcg9vrodFww
QlvtWaitPNmLBtegGbTUoFLy5OjVq1mLZVfpIQ4/t/7WQdhBDCndg8eSfF8Ucrpq
9I8D1E5sggLOmUFEmFnNVcQNQ34Rk4/Rg59SwaoXyT8cJBEYLDg8NViA6zqDGFXF
dTGEEI/ljO6lAqp3vsCoVV5ri+dGXEaYDlCGvsFMt9cHPAnsFOoN2DP+EIFwixKT
LoF5EGxa6mDHN+gs57G1OU+8E62AwKU+Z5ySrvs0ibV00in3GMacB+ls39fZbzqx
CTcsnbwQj1k9covq18UTj0Lw7Ni/DyxjE+FWvCKPBxYuIpob8KMyBRU2snYVIN+5
LwVk3sxs6TMAPqClB+aga9O9e3728G5vpEacF5CoyrIRNZO2YF4=
=mYUh
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org