Router: fixing crash after WebSocket processing.

After WebSocket processing, the application port was released with incorrect
reason ("got request"), unnecessarily decrementing the active request counter.

The assertion was triggered only on application removal; a test was added
for this case.
This commit is contained in:
Max Romanov
2021-01-28 17:13:52 +03:00
parent 3855f1c032
commit e4e444b827
3 changed files with 35 additions and 1 deletions

View File

@@ -3796,7 +3796,10 @@ nxt_router_response_ready_handler(nxt_task_t *task, nxt_port_recv_msg_t *msg,
nxt_buf_chain_add(&b, nxt_http_buf_last(r));
req_rpc_data->rpc_cancel = 0;
req_rpc_data->apr_action = NXT_APR_GOT_RESPONSE;
if (req_rpc_data->apr_action == NXT_APR_REQUEST_FAILED) {
req_rpc_data->apr_action = NXT_APR_GOT_RESPONSE;
}
nxt_request_rpc_data_unlink(task, req_rpc_data);