Release v4.8: fix rare crash from endpoint thrash on a dual-address peer (#16)
The same singer hit a rare crash: their transmitter (COMP3) was reachable at two addresses at once — the VPN address 10.8.0.1 they chose and that machine's wireless 192.168.3.245 — and the discovery-driven endpoint-follow ping-ponged the connection between the two (the log shows four moves in 58 ms) right where the process died with no shutdown line, no managed exception, no dialog: a hard crash from the receiver audio-session teardown/rebuild churn the thrash caused. Fix: the follow loop now never moves off an endpoint that's still answering heartbeats, only follows once the current one has been unreachable for a sustained grace period (6 s), only to an address that is itself answering, and never more than once per cooldown (15 s) — so it can't thrash, and a peer reached on a working address stays put (honours the singer's "just stay on 10.8.0.1"). New endpointUnreachableSinceUtc + lastEndpointMoveUtc state; genuine DHCP/network moves are still followed a few seconds later. Also: a global crash handler (Program.WriteCrashReport on AppDomain.UnhandledException + TaskScheduler.UnobservedTaskException) writes a crash-*.txt into the logs folder, so a future "RemSound just vanished" report leaves a stack behind. Removed a stale doc comment left over from the v4.7 adoption removal. Manual gains a "RemSound closed unexpectedly" troubleshooting entry. Version 4.8; About + RELEASE_NOTES updated. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
64d5cb5a86
commit
0df2a576fc
@@ -20,6 +20,26 @@ internal sealed class AboutDialog : Form
|
||||
/// updates" path.</summary>
|
||||
private const string ReleaseNotes =
|
||||
"""
|
||||
RemSound v4.8
|
||||
|
||||
A rare crash fixed, and crash reports for next
|
||||
time.
|
||||
|
||||
If a peer was reachable at two addresses at once
|
||||
— for example over a VPN and the local network at
|
||||
the same time — RemSound could rapidly flip the
|
||||
connection between the two, and in a fast enough
|
||||
flip it could close unexpectedly. It now settles
|
||||
on whichever address is working and stays there,
|
||||
so that flipping (and the crash it could cause)
|
||||
is gone.
|
||||
|
||||
And if RemSound ever does close unexpectedly, it
|
||||
now writes a small crash file into your logs
|
||||
folder. There's nothing for you to do with it,
|
||||
but it means a problem that used to leave no
|
||||
trace can now be sent in and pinned down.
|
||||
|
||||
RemSound v4.7
|
||||
|
||||
Sound now comes back on its own after a reboot.
|
||||
|
||||
Reference in New Issue
Block a user