Koa POST requests hang using http2
Sometimes making a POST or PUT request to my Koa based server hangs. No error, nothing.
At the subsequent POST request both calls are executed, first the new call, then the old one completes.

The server uses HTTP2 and it is written in Typescript. Unfortunately a small example to reproduce the problem does not exhibit any hang.

I tried to look at similar problems on the web. They speak of bodyparser problems for malformed client requests, but here the client sends a simple JSON encoded string. Also moving http2 to spdy does not work, spdy crashes with Node version 12.

My middleware stack is as follow:

	this.app = new Koa();
	this.app
		.use(compress({threshold: 1024 * 64}))
		.use(favicon(path.join(__dirname, "http", "favicon.ico")))
		.use(serve(path.join(__dirname, "http"), {maxage: ms("1y")}))
		.use(this.noop)
		.use(bodyParser({
			jsonLimit: "10mb",
			formLimit: "10mb",
			textLimit: "10mb",
			onerror: function(error, ctx) {
    				ctx.throw(422, `Body parse error: ${error}`);
			}
		}))
		.use(routes.startRoutes(this.resources));

You see the `this.noop` one? It is a do nothing middleware:

	private async noop(ctx: Koa.Context, next: Koa.Next): Promise<void> {
		// console.log("Test start");
		await next();
		// console.log("Test end");
	}
If I uncomment the `console.log` calls, the problem disappears. So seems a race or timing problem somewhere.
Also, if I switch to HTTP, the problem does not appear. So at least I have a Plan B to continue development.

Working on Windows 10 64bits with Node 12.16.1 and the koa packages:

    "koa": "^2.11.0",
    "koa-bodyparser": "^4.3.0",
    "koa-compress": "^4.0.0",
    "koa-favicon": "^2.1.0",
    "koa-logger": "^3.2.1",
    "koa-router": "^8.0.8",
    "koa-static": "^5.0.0",

Any suggestion to diagnose - and hopefully solve - this problem?
Thanks a lot!
mario
