-
Notifications
You must be signed in to change notification settings - Fork 1
local_error 5 seen at times with RESET of streams #105
Comments
Local error 5 is frames.c line 60 else if (stream_id < cnx->next_stream_id[STREAM_TYPE_FROM_ID(stream_id)]) {
/* Protocol error, stream already closed */
picoquic_connection_error(cnx, PICOQUIC_TRANSPORT_STREAM_STATE_ERROR, 0); frames.c line 805 else if (!IS_BIDIR_STREAM_ID(stream_id) && !IS_LOCAL_STREAM_ID(stream_id, cnx->client_mode)) {
picoquic_connection_error(cnx, PICOQUIC_TRANSPORT_STREAM_STATE_ERROR,
picoquic_frame_type_stop_sending);
bytes = NULL; |
I've ran through a ton of tests and I cannot reproduce the issue. |
Very hard to reproduce due to it being a race condition. I believe there is only one place where the race condition could happen to cause an old stream to be marked active (creating a new stream in picoquic) on a stream that was just reset. This is a race condition of pending The fix is to change how threaded functions mark a stream active. |
Issue still present. Looks to be in picoquic causing the issue. Below is a stack trace of when it happens.
|
Problem appears to be in picoquic handling of reset ack. Spoke briefly to Christian and opened issue private-octopus/picoquic#1597. |
private-octopus/picoquic#1598 resolves the issue. |
The text was updated successfully, but these errors were encountered: