Closed strotlog closed 2 years ago
Technically this is a bug in retroarch for picking a bad port number to listen on. 55355 in the dynamic range of ports (49152 to 65535) that clients are free to pick from to bind their receiving end to.
Perhaps this could be fixed by not using the bind() mechanism? I'll have to look into it.
Repro rate data:
For whatever reason, I've been experiencing this issue pretty quickly lately while making code tweaks. Today's SNI log shows that there were only 4 minutes 37 seconds between my closing RetroArch and SNI becoming unusable due to talking to itself on port 55355. I'll upgrade to the latest SNI version just in case.
Alright I'll look into it
New record: repro 59 seconds after the last good response from RetroArch. SNI 0.0.82 this time.
Should be fixed in v0.0.84
0.0.84 has gone 72 hours with no 'expected integer' self-talk error. Many thanks!
Repro steps: 1) Use SNI 2) Use SNI+RetroArch (not sure if required) 3) Leave SNI open, and RetroArch closed for several hours
SNI log:
netstat
shows SNI listening on UDP port 55355 from this point onwards. This port number must have been chosen next after 55354 as SNI's UDP source port.SNI is stuck in this state.
Potentially this is even a bug in golang itself? I don't really know, but most programs would never want to accidentally talk to themselves when they say "connect me to localhost:port". Here, random source port 55355 == specified destination port on the same host. We end up with the UDP pipe
localhost:55355 <=> localhost:55355
.SNI believes it's talking to RetroArch and consumes RetroArch's UDP port of 55355 indefinitely. Workaround is to restart SNI.