Godot: Game force closed "shit?: No such file or directory"

Created on 7 Sep 2017  路  9Comments  路  Source: godotengine/godot

Operating system or device, Godot version, GPU Model and driver (if graphics related):
Windows 7 64-bit. Godot 2.1.4

Issue description:
I was running my game through the editor when the game forced closed and the following was displayed in the editor.

shit?: No such file or directory
ERROR: StreamPeerWinsock::read: Sesrhvietr? di:s conInnevcatleidd!
r
ume n t At
 plaEtRfoRrOmR\:w iSntdorwesa\msPtereeraWmi_pneseorc_kw:i:nrseoacdk:. cpp:S2e0r2
v
r disconnected!

   At: platform\windows\stream_peer_winsock.cpp:202

I have no idea what it means. I haven't altered the format of the output.

Steps to reproduce:
I haven't been able to reproduce it but I was having issues with my wifi at the time. As there appears to be some sort of connection issue, perhaps it is related.

I was running my game through the editor while windows was troubleshooting the problems with my wifi in the background. The game might have closed when the network adapter was resetting.

bug windows editor

Most helpful comment

Could "shit?" be replaced with something less explicit like f.i. "poop"? OK seriously now, can we change it into "Errorcode"? Where code says more about the error. Considering this gets output to users...

All 9 comments

The unreadable part is just superimposed error messages.

shit?: Invalid argument
ERROR: StreamPeerWinsock::read: Server disconnected!
At platform\windows\stream_peer_winsock.cpp:202
ERROR: StreamPeerWinsock::read: Server disconnected!
At: platform\windows\stream_peer_winsock.cpp:202

Looks like a duplicate of #10503

It's the same error but there are some differences.

I didn't compile the engine myself and this project was built originally in 2.1.3 and continued in 2.1.4. (I just simply downloaded 2.1.4-stable and kept going)

Does the error happen in 2.1.3-stable, or is it a regression?

Shot in the dark: cc @Faless @RandomShaper @Geequlim

Honestly based on the circumstances in which the crash occurred and the fact that it cannot be reproduced, it seems like something nasty was happing inside the OS at the time (WiFi drivers. Windows Troubleshooter, etc...). Maybe a race condition since the text is all messed up.

EDIT:
I'll try to check if I can generate a crash by abnormally terminating the TCP stream while debugging

EDIT 2:
It seems not to crash when abnormally terminating the TCP stream (tried both with iptables and tcpkill)

shit?: No such file or directory

This is the result of perror interpreting errno, the file descriptor for the socket seems to be gone when calling ::recv (windows/drivers/troubleshooter messup I suspect).

shit?: Invalid argument

This is trickier, why was ::read called again after failing?
Invalid argument error is probably the result of calling ::recv with a sockfd == INVALID_SOCKET. (after the first failure, godot calls disconnect on the socket and resets it to invalid)

Could "shit?" be replaced with something less explicit like f.i. "poop"? OK seriously now, can we change it into "Errorcode"? Where code says more about the error. Considering this gets output to users...

Ha yes, I did raise my eyebrow at that.

The issue seems to be not reproducible and might have been caused by windows trobleshooter.

shit? was replaced with a more appropriate message.
Closing this.

Was this page helpful?
0 / 5 - 0 ratings