e2e/stateless-reset probabilistically fails
- Dominant language
- C
- Stars
- 663
- Forks
- 131
- Avg merge
- 8h 49m
- Merged PRs (30d)
- 8
Description
As of 469ca3cbf58277c6eacc2e094620a9f49082e73d, the `stateless-reset` subtest in e2e fails probabilistically. Probability is roughly estimated ~1/100.
```
# Subtest: stateless-reset
not ok 1
# Failed test at t/e2e.t line 144.
# '{"type":"connect", "conn":0, "time":1589401175919, "version":4278190107}
# {"type":"send", "conn":0, "time":1589401175919, "state":0, "dcid":"b5b761e2ac69326c"}
# {"type":"packet-prepare", "conn":0, "time":1589401175919, "first-octet":192, "dcid":"b5b761e2ac69326c"}
# {"type":"stream-send", "conn":0, "time":1589401175919, "stream-id":-1, "off":0, "len":221, "is-fin":0}
# {"type":"quictrace-send-stream", "conn":0, "time":1589401175919, "stream-id":-1, "off":0, "len":221, "fin":0}
# {"type":"packet-commit", "conn":0, "time":1589401175919, "pn":0, "len":1280, "ack-only":0}
# {"type":"quictrace-sent", "conn":0, "time":1589401175919, "pn":0, "len":1280, "packet-type":0}
# {"type":"receive", "conn":0, "time":1589401175920, "dcid":"", "name":"0x7ffcd32750c0", "first-octet":201, "bytes-len":168}
# {"type":"crypto-decrypt", "conn":0, "time":1589401175920, "pn":0, "name":"0x7ffcd32750d4", "decrypted-len":132}
# {"type":"quictrace-recv", "conn":0, "time":1589401175920, "pn":0}
# {"type":"quictrace-recv-ack", "conn":0, "time":1589401175920, "ack-block-begin":0, "ack-block-end":0}
# {"type":"packet-acked", "conn":0, "time":1589401175920, "pn":0, "is-late-ack":0}
# {"type":"stream-acked", "conn":0, "time":1589401175920, "stream-id":-1, "off":0, "len":221}
# {"type":"quictrace-recv-ack-delay", "conn":0, "time":1589401175920, "ack-delay":0}
# {"type":"quictrace-cc-ack", "conn":0, "time":1589401175920, "min-rtt":1, "smoothed-rtt":1, "latest-rtt":1, "cwnd":16000, "inflight":0}
# {"type":"cc-ack-received", "conn":0, "time":1589401175920, "largest-acked":0, "bytes-acked":1280, "cwnd":16000, "inflight":0}
# {"type":"stream-receive", "conn":0, "time":1589401175920, "stream-id":-1, "off":0, "len":123}
# {"type":"crypto-update-secret", "conn":0, "time":1589401175920, "is-enc":0, "epoch":2, "label":"QUIC_SERVER_HANDSHAKE_TRAFFIC_SECRET", "secret":"59ec595a4020560634eef961768887f6c3901802b97c6c64b602419b95a8ce86c3ccf4ec9fe441dce57a980b4d074b60"}
# {"type":"crypto-update-secret", "conn":0, "time":1589401175920, "is-enc":1, "epoch":2, "label":"QUIC_CLIENT_HANDSHAKE_TRAFFIC_SECRET", "secret":"b51d383284478bfeb93e49f259f8682f68b1909198bd6a6e83dde0d2e49686bfdd4aa17ae305d04d14fd67a47bac61bb"}
# {"type":"crypto-handshake", "conn":0, "time":1589401175920, "ret":514}
# {"type":"receive", "conn":0, "time":1589401175920, "dcid":"", "name":"0x7ffcd3275168", "first-octet":231, "bytes-len":1112}
# {"type":"crypto-decrypt", "conn":0, "time":1589401175920, "pn":1, "name":"0x7ffcd327517b", "decrypted-len":1077}
# {"type":"quictrace-recv", "conn":0, "time":1589401175920, "pn":1}
# {"type":"stream-receive", "conn":0, "time":1589401175920, "stream-id":-3, "off":0, "len":1073}
# {"type":"crypto-handshake", "conn":0, "time":1589401175920, "ret":514}
# {"type":"receive", "conn":0, "time":1589401175921, "dcid":"", "name":"0x7ffcd32750c0", "first-octet":227, "bytes-len":204}
# {"type":"crypto-decrypt", "conn":0, "time":1589401175921, "pn":2, "name":"0x7ffcd32750d3", "decrypted-len":169}
# {"type":"quictrace-recv", "conn":0, "time":1589401175921, "pn":2}
# {"type":"stream-receive", "conn":0, "time":1589401175921, "stream-id":-3, "off":1073, "len":164}
# {"type":"crypto-update-secret", "conn":0, "time":1589401175921, "is-enc":0, "epoch":3, "label":"QUIC_SERVER_TRAFFIC_SECRET_0", "secret":"7fc02feaffd77f421ec4577922b6d489609537ff3da7f05e6ac2481e844d99fc2b4bd7a5ebbdd49c881352059b318a2c"}
# {"type":"crypto-update-secret", "conn":0, "time":1589401175921, "is-enc":1, "epoch":3, "label":"QUIC_CLIENT_TRAFFIC_SECRET_0", "secret":"cd8fdf7a3b1c23c593d4363be414e075af1eb26a5648c465bea2c6848c12b1bd8e4b309c293fa9849214591d24caafea"}
# {"type":"crypto-handshake", "conn":0, "time":1589401175921, "ret":0}
# {"type":"receive", "conn":0, "time":1589401175921, "dcid":"", "name":"0x7ffcd327518c", "first-octet":92, "bytes-len":127}
# {"type":"crypto-decrypt", "conn":0, "time":1589401175921, "pn":3, "name":"0x7ffcd327518f", "decrypted-len":108}
# {"type":"quictrace-recv", "conn":0, "time":1589401175921, "pn":3}
# {"type":"stream-receive", "conn":0, "time":1589401175921, "stream-id":-4, "off":0, "len":57}
# {"type":"crypto-handshake", "conn":0, "time":1589401175921, "ret":0}
# {"type":"new-token-receive", "conn":0, "time":1589401175921, "name":"0x7ffcd32751cd", "token-len":46}
# {"type":"send", "conn":0, "time":1589401175921, "state":1, "dcid":"86a56751bf968195"}
# {"type":"pto", "conn":0, "time":1589401175921, "inflight":0, "cwnd":16000, "pto-count":1}
# {"type":"packet-prepare", "conn":0, "time":1589401175921, "first-octet":224, "dcid":"86a56751bf968195"}
# {"type":"stream-send", "conn":0, "time":1589401175921, "stream-id":-3, "off":0, "len":52, "is-fin":0}
# {"type":"quictrace-send-stream", "conn":0, "time":1589401175921, "stream-id":-3, "off":0, "len":52, "fin":0}
# {"type":"packet-commit", "conn":0, "time":1589401175921, "pn":1, "len":95, "ack-only":0}
# {"type":"quictrace-sent", "conn":0, "time":1589401175921, "pn":1, "len":95, "packet-type":2}
# {"type":"packet-prepare", "conn":0, "time":1589401175921, "first-octet":64, "dcid":"86a56751bf968195"}
# {"type":"stream-send", "conn":0, "time":1589401175921, "stream-id":0, "off":0, "len":7, "is-fin":1}
# {"type":"quictrace-send-stream", "conn":0, "time":1589401175921, "stream-id":0, "off":0, "len":7, "fin":1}
# {"type":"packet-commit", "conn":0, "time":1589401175921, "pn":2, "len":43, "ack-only":0}
# {"type":"quictrace-sent", "conn":0, "time":1589401175921, "pn":2, "len":43, "packet-type":3}
# {"type":"receive", "conn":0, "time":1589401175921, "dcid":"", "name":"0x7ffcd32750c0", "first-octet":76, "bytes-len":38}
# {"type":"crypto-decrypt", "conn":0, "time":1589401175921, "pn":4, "name":"0x7ffcd32750c3", "decrypted-len":19}
# {"type":"quictrace-recv", "conn":0, "time":1589401175921, "pn":4}
# {"type":"quictrace-recv-ack", "conn":0, "time":1589401175921, "ack-block-begin":2, "ack-block-end":2}
# {"type":"packet-acked", "conn":0, "time":1589401175921, "pn":2, "is-late-ack":0}
# {"type":"stream-acked", "conn":0, "time":1589401175921, "stream-id":0, "off":0, "len":8}
# {"type":"crypto-send-key-update-confirmed", "conn":0, "time":1589401175921, "next-pn":16777219}
# {"type":"quictrace-recv-ack-delay", "conn":0, "time":1589401175921, "ack-delay":0}
# {"type":"quictrace-cc-ack", "conn":0, "time":1589401175921, "min-rtt":1, "smoothed-rtt":1, "latest-rtt":1, "cwnd":16043, "inflight":95}
# {"type":"cc-ack-received", "conn":0, "time":1589401175921, "largest-acked":2, "bytes-acked":43, "cwnd":16043, "inflight":95}
# {"type":"handshake-done-receive", "conn":0, "time":1589401175921}
# {"type":"stream-lost", "conn":0, "time":1589401175921, "stream-id":-3, "off":0, "len":52}
# {"type":"quictrace-recv-stream", "conn":0, "time":1589401175921, "stream-id":0, "off":0, "len":10, "fin":1}
# {"type":"stream-receive", "conn":0, "time":1589401175921, "stream-id":0, "off":0, "len":10}
# {"type":"send", "conn":0, "time":1589401175946, "state":1, "dcid":"86a56751bf968195"}
# {"type":"packet-prepare", "conn":0, "time":1589401175946, "first-octet":64, "dcid":"86a56751bf968195"}
# {"type":"packet-commit", "conn":0, "time":1589401175946, "pn":3, "len":32, "ack-only":1}
# {"type":"quictrace-sent", "conn":0, "time":1589401175946, "pn":3, "len":32, "packet-type":3}
# {"type":"send", "conn":0, "time":1589401483763, "state":1, "dcid":"86a56751bf968195"}
# {"type":"idle-timeout", "conn":0, "time":1589401483763}
# {"type":"free", "conn":0, "time":1589401483763}
# '
# doesn't match '(?^m:"type":"stateless-reset-receive",)'
1..1
# Looks like you failed 1 test of 1.
not ok 7 - stateless-reset
# Failed test 'stateless-reset'
# at t/e2e.t line 145.
```
Confirmed environment: Ubuntu 18.04 amd64 gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
Contributor guide
Research direction
Start with the stateless-reset subtest and assertions at t/e2e.t lines 144-145, then reproduce the failure repeatedly under the confirmed Ubuntu 18.04/gcc environment. Use the shown quictrace output to identify why the stateless-reset event is sometimes absent; done means the subtest passes reliably without probabilistic failures.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- networking, testing-qa
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100