You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Measured on a throttled Android emulator with the request logging from the
previous commit: a single Avalanche wallet opens 12 concurrent mixnet requests
during one sync. mix-fetch v1 has a history of serving one request per host at
a time, which this module used to work around with a per-host queue removed in
5916d9d on the understanding that 1.4.2 had fixed it.
Cap the mixnet at 6 concurrent requests overall and 2 per host, queueing the
rest. Measured before and after on the same emulator against the live mixnet:
peak in-flight drops from 12 to 6, per-request latency is unchanged (p50 2666ms
vs 2669ms), and every request still settles.
Also drop the per-request timeout from 300s to 60s. Healthy requests measure
2-4 seconds, so five minutes only ever meant that a request the mixnet never
answered pinned its caller for five minutes. On the send screen that is the
'Calculating Fee' spinner that QA reports as an infinite hang.
Neither change touches the request logging, which is still needed to attribute
the remaining NYM-internal failure.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,6 +3,8 @@
3
3
## Unreleased
4
4
5
5
- added: Log the lifecycle of every NYM mixnet request (method, host, path, duration, HTTP status or error, and in-flight count), plus mixFetch setup timing. A request that logs a start with no terminal line identifies the host whose request never returned, which the previous logging could not attribute. These log at `warn` so they survive the default `warn` log level and appear in a log export without the user first enabling verbose logging.
6
+
- fixed: Bound NYM mixnet requests to 6 concurrent overall and 2 per host. A single Avalanche wallet was measured opening 12 concurrent mixnet requests during one sync, and a full wallet list multiplies that; mix-fetch v1 has a history of serving one request per host at a time.
7
+
- fixed: Reduce the NYM per-request timeout from 300 seconds to 60. At five minutes, a request the mixnet never answered held the send screen on "Calculating Fee" long enough to read as a permanent hang rather than an error.
0 commit comments