Unable to handle requests with non empty body in 0.12.4
I trying to use 0.12.4 as it shown in examples. Everything works fine while I sending request without body. When body isn't empty, it even do not enter to the service (line 40).
My code is here: https://github.com/fomkin/korolev/blob/issue-68/server-blaze/src/main/scala/korolev/blazeServer/package.scala
Ok. I find out the problem. 0.12.4 is completely broken.
https://github.com/http4s/blaze/blob/v0.12.4/http/src/main/scala/org/http4s/blaze/http/HttpServerStage.scala#L178
Here if content is complete after parseContent stage will never come back to gatherBody . So if body is small (all data placed in one read) POST request will hang.
Hi @fomkin! First off, I'm really sorry that it took me a week to get back to you.
So, to business. The client and server in raw blaze prior to 0.13 are more of a exercise than production ready, but I'm still bummed that its not working for you! I'm working hard on getting blaze into a state where its production ready, but am currently working on getting the http2 client and server in better shape so I can make sure the pieces all fit before hardening.
If you're interested in a more stable HTTP server, the http4s proper implementation is in a production ready state. If you're still interested in raw blaze, release 0.13 the server parts have been largely redone and has many more features, but I'd also be careful before using it for mission critical stuff as its not thoroughly tested yet.