ID:2244626
 
(See the best response by Nadrew.)
Hi, I'm using Windows 7 Ultimate, the BYOND Client to connect to servers and did a clean installation of the new update just in case, yet whenever I click join, the client downloads and loads the files correctly, launches the game and then IMMEDIATELY crashes with no warning, message or explanation.

Then launches another instance that never connects to a server.
What could be the problem, and how do I fix that stuff?
If you have a crash, please post the crash details from the Windows event viewer.
If they are trying to connect to /tg/ or one of our downstreams(hippie, citadel), what they are likely seeing is the anti-cid-spoof protection closing the current window and opening a new one.

The fact its not connecting when it re-opens is likely a bug, but if it is a bug, it's most likely to be the byond bug where sometimes the message sent to clients just before a disconnect doesn't show to the client if this happens in client/New(). We do it after ..() but the error message not showing is still an issue that happens to some clients.

I couldn't find any recent connections in our db from them, but the detector runs before that is logged.

Athalid, try connecting to the https://tgstation13.org/ Sybil server and post here when you do, and i'll confirm or deny if its that.
So, launched to Sybil and THIS HAPPENED
http://imgur.com/a/pCXQC

U wot m8

I have NO CLUE

Also, Lummox, which ID should I look for in the WEV?
New thing happened when I tried to connect to Hippiestation now.
THIS http://imgur.com/a/LuAba showed up out of nowhere without creating a second, enlessly not-connecting instance.
So it seems like your computer is having issues re-connecting on the cid randomizer check. the server never gets the new connection.

This could be the cause of faulty firewall software or router that is getting confused by consecutive connections to the same ip/port, or a bug in byond software.

When happens if you click that link on sybil?
Opens a second instance that ACTUALLY LOADS and works.
ok, so the bug seems to be that the second instance should be loading automatically and the first one should exit automagically, but that isn't happen. That is done via a ie interface window it loads, lummox, any idea what could cause that to not load?

Here is the code that does that: https://github.com/tgstation/tgstation/blob/ 9fff652370e0321b9a2851d948e6366ef9f65dff/code/modules/ client/client_procs.dm#L538
Best response
Have you tried using link() instead of forcing a byond:// link to execute? link() has different behavior, namely not asking the person if they want to connect to the new world and being able to bypass an ad play if both servers are on the same box.
Which is it that isn't happening? The connection or the close?

I can't explain why in Athalid's last screenshot there was a failed connection, other than that maybe that was a fluke of the network.

As far as the code you showed me, I have a working theory. The link you're spawning via window.location isn't really calling back to the pager to create a new instance, but should instead behave like link(). However, the .quit call might possibly happen first, which would basically prevent the connection from spawning; and it's possible that there's a race condition involved, since the .quit and the byond:// re-link are in competition. (I don't actually see any reason why .quit shouldn't process first.) Since linking to the new URL should behave like link() AFAIK, the .quit is actually redundant anyway.
In response to Nadrew
link() keeps the window and DS process, i need a new window/process to spawn because the cid randomizer that this system detects keeps the cid between sessions of the same DS process, so it wouldn't actually change. By forcing a new DreamSeeker process to spawn, users of the cid spoofer dll would get a new cid, and this would detect that and reject them.

Anywho, this system has been in play for over a year without issue. This is the first i've heard of a repeating fluke in the system, I'd more likely contribute it to an issue in the users system, something hooking in to IE windows rejecting the link or the location command or the user disabling javascript.

as for hippie station, it could be their firewall seeing multiple connections on the same port from the same ip and rejecting the latter, but if it was, we would have seen reports of the issue sooner.

There was also a bug with the system recently when client/New() went under some changes, I patched the bug pretty quick but hippie station might have the bug but not the patch.
In response to Lummox JR
Lummox JR wrote:
Which is it that isn't happening? The connection or the close?

both it would seem

As far as the code you showed me, I have a working theory. The link you're spawning via window.location isn't really calling back to the pager to create a new instance, but should instead behave like link(). However, the .quit call might possibly happen first, which would basically prevent the connection from spawning; and it's possible that there's a race condition involved, since the .quit and the byond:// re-link are in competition. (I don't actually see any reason why .quit shouldn't process first.) Since linking to the new URL should behave like link() AFAIK, the .quit is actually redundant anyway.

The window.location is just for the .quit, the launching of the link is done via .click() to make it open in a new window. if the byond:// handler is properly installed into IE, by the time the .click() function returns, the new dream seeker process has already been launched.
CLOSE THE CASE I FOUND THE WAY TO FIX IT.
It was Adobe flash player having problems with older versions because Adobe flash player.

GEE GEE GENTLEMEN, WE GOT SPECKLEDORF'D.

How did it get fixed? Guess... Try to guess...


THAT'S RIGHT, UNINSTALL AND DOWNLOAD NEWEST.




FUCK ME IN THE ASS AND CALL ME CHARLIE SHEEN.