wpisailbot / boat

Apache License 2.0
4 stars 2 forks source link

Clean websocket Server Shutdown #20

Open jkuszmaul opened 6 years ago

jkuszmaul commented 6 years ago

Currently, when shutting down, the websocket server will sometimes end up corrupting/overwriting random bits of memory and cause seg faults while the process is shutting down (this is mostly an issue when running tests while also having the UI open). I do not believe that there is currently a clean way to shut down the websocket server (there may or may not be any mechanism for it in the websocket library).

Reproduce by:

1) Build //control:control_test locally. 2) Open at least 3 tabs of UI pages (not sure why, but for some reason it always worked fine with just 2 windows/tabs on my machine). 3) Run //control:control_test 4) Generally speaking, it will then segfault (sometimes SIGABRT gets thrown, noting some corrupted doubly-linked list) in between Square and StartInIrons tests (may require running once or twice; I never needed more than 3 tries to reproduce the segfault, and rarely even a second). 5) If you redo this, but with the `hubmember variable in//ui:server` removed (i.e., clearing out the websocket server), then there will be no issues.