diff options
author | Max Romanov <max.romanov@nginx.com> | 2020-11-18 22:33:53 +0300 |
---|---|---|
committer | Max Romanov <max.romanov@nginx.com> | 2020-11-18 22:33:53 +0300 |
commit | d26afcb481d97cd71db014b16bde44e807043a2b (patch) | |
tree | 4b5ea745e45773f4c42eb5ba2639f624f2737fa6 /go/nxt_cgo_lib.c | |
parent | 0ec69aa46e3577ef44060b9dd8576faab4a863ce (diff) | |
download | unit-d26afcb481d97cd71db014b16bde44e807043a2b.tar.gz unit-d26afcb481d97cd71db014b16bde44e807043a2b.tar.bz2 |
Libunit: fixing racing condition in request struct recycling.
The issue occurred under highly concurrent request load in Go applications.
Such applications are multi-threaded but use a single libunit context; any
thread-safe code in the libunit context is only required for Go applications.
As a result of improper request state reset, the recycled request structure was
recovered in the released state, so further operations with this request
resulted in 'response already sent' warnings. However, the actual response was
never delivered to the router and the client.
Diffstat (limited to 'go/nxt_cgo_lib.c')
0 files changed, 0 insertions, 0 deletions