-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Using recv with small buffer can crash Urbit #490
Comments
I'm having trouble reproducing this on my Ubuntu machine with the instructions you provided here; would you mind posting a more detailed reproduction? Which environment are you seeing this, and have you changed the ships' states? I will continue tinkering in the meantime. |
@matthew-levan Issue should probably be moved to here, since it's not an issue with |
@ashelkovnykov We observed it in production, without using |
@matthew-levan I added a reproducer to the https://github.com/guaraqe/urbit-benchmark repo, in this commit: guaraqe/urbit-benchmark@499ef77 I couldn't reproduce it with
|
@guaraqe Right, my apologies - misread |
@guaraqe the expected behavior on early disconnection is that those errors are printed and the socket is closed, but the ship should stay up and not crash. Is that what you're seeing? The newt wire-framing includes a 5 byte header: one tag byte ( |
The unexpected behavior is the ship crashing. |
Hello, I just attempted to reproduce this using your
It did not crash. Here is the output from executing the Python script:
|
Which environment are you testing this? I tried this on my |
I tried on Linux, and we observed that in GCloud Linux VMs too. |
Thanks; I can confirm reproduction on my
|
See #494. |
It is possible to crash a Urbit by taiking to its socket (such as in
click
), but reading too few bytes. To test, you can run a command withclick
, but change the script so the size of the buffer innc
is something very small, such as 2.This has affected hosting, when reading the vats of ships with too many apps installed. This is under control already, but it would be nice to solve.
@lukebuehler
The text was updated successfully, but these errors were encountered: