raphaelNguyen opened a new issue, #460:
URL: https://github.com/apache/incubator-pekko-http/issues/460

   
   ## Environments
   * `pekko-http:1.0.0`
   * `pekko:1.0.1`
   * `play-framework:3.0.0`
   
   Issue also observed with the following dependencies
   * `akka-http:10.2.10`
   * `akka:2.6.21`
   * `play-framework:2.9.0`
   
   ## Issue description
   I use `pekko` and `pekko-http` via `play-framework` and the following issue 
seems to only be reproducible when I receive the request via my nginx. If I hit 
my server through `localhost:<server-port>` with the same large request, the 
request does not suffers the same issue.
   
   When server receives a request with a large POST body (~18400 bytes or more) 
from nginx, the request immediately goes into delayed cancellation after the 
request was received with the below debug log. Some debugging shows that this 
happens before the request is routed to the corresponding play `Action` and 
gets processed. If the server takes longer than the `linger-timeout` (default 
of 1 minute) to process the request, the connection is cancelled by the server.
   ```
   [DEBUG] o.a.p.h.i.u.StreamUtils$DelayCancellationStage$$anon$11: Delaying 
cancellation for 1 minute
   ```
   
   In the past, I've encountered these symptoms when using 
`play-framework:2.8.x` (`akka:2.6.x` and `akka-http:10.1.x`). At the time, I 
found that upgrading `akka-http` to `10.2.1` fixed the issue. However, after 
the upgrading to `playframework:3.0.0` and adopting `pekko`, the same symptoms 
can be observed again. I've confirmed that the issue also happen on 
`playframework:2.9.0` and its `akka` versions (listed above).
   
   I'm not sure if this issue has been reintroduced in `akka-http:10.2.10` and 
`pekko` has inheritted it and would like to ask for your assistance.
   
   ## Debug Information
   
   While I do not have a good minimum reproducible case to report, I've 
obtained some debug information I hope could help in figuring out the issue.
   These logs contains the information that would have been printed by the 
following lines...
   
   
https://github.com/apache/incubator-pekko/blob/cfff9c53df859bb0f4407caf4821e7831dabeb19/stream/src/main/scala/org/apache/pekko/stream/impl/fusing/GraphInterpreter.scala#L551-L553
   
         println(
           s"$Name PUSH ${outOwnerName(connection)} -> ${inOwnerName(
               connection)}, ${connection.slot} (${connection.inHandler}) 
[${inLogicName(connection)}]")
   
   
   
https://github.com/apache/incubator-pekko/blob/cfff9c53df859bb0f4407caf4821e7831dabeb19/stream/src/main/scala/org/apache/pekko/stream/impl/fusing/GraphInterpreter.scala#L563-L564
   
         println(
           s"$Name PULL ${inOwnerName(connection)} -> ${outOwnerName(
   
   
https://github.com/apache/incubator-pekko/blob/cfff9c53df859bb0f4407caf4821e7831dabeb19/stream/src/main/scala/org/apache/pekko/stream/impl/fusing/GraphInterpreter.scala#L517-L519
   
           println(
             s"$Name CANCEL ${inOwnerName(connection)} -> ${outOwnerName(
                 connection)} (${connection.outHandler}) 
[${outLogicName(connection)}]")
   
   ... and the `cause` for cancellation at
   
https://github.com/apache/incubator-pekko/blob/cfff9c53df859bb0f4407caf4821e7831dabeb19/stream/src/main/scala/org/apache/pekko/stream/impl/fusing/GraphInterpreter.scala#L522
   
   The POST body sent is a `text/plain` body with the content 
`data=0000000000[...]` with the number of zero being specified by me to control 
the size of the body. The log contains all `PUSH`, `PULL` and `CANCEL` up to 
the time when the request gets to the play `Controller`.
   
   * 18357 bytes via nginx - error happens - 
[connection-activities-18352-error.log](https://github.com/apache/incubator-pekko-http/files/14093134/connection-activities-18352-error.log)
   * 18357 bytes via nginx - error happens - 
[connection-activities-18351-success.log](https://github.com/apache/incubator-pekko-http/files/14093135/connection-activities-18351-success.log)
   * 18357 bytes via nginx - error happens - 
[connection-activities-18352-direct-success.log](https://github.com/apache/incubator-pekko-http/files/14093136/connection-activities-18352-direct-success.log)
   
   Thank you very much for your time and if you require more information, 
please do not hesitate to ask.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscr...@pekko.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscr...@pekko.apache.org
For additional commands, e-mail: notifications-h...@pekko.apache.org

Reply via email to