Please sign in to comment.
termio.py: Changed the logic that finalizes session logs in Multiplex…
…POSIXIOLoop.terminate() from using a double os.fork() to using a multiprocessing.Process(). It is a lot faster and memory efficient this way. It also lets Gate One restart immediately after being shut down (no more waiting a few seconds for the port to become free!). termio.py: For whatever reason IOLoop.set_blocking_signal_threshold() wasn't working to kick off the _blocked_io_handler() so I've gone ahead and wrapped self.term.write() in utils.timeout_func() to ensure that if it takes too long to process the incoming stream it will call _blocked_io_handler(). Also, this change has a nice bonus: Other terminals/users will continue to operate (albeit slowly) when such a situation occurs. Using the old logic they would've had to wait 5 seconds for Gate One to start responding again. termio.py: _blocked_io_handler() will now call terminate() if sending a Ctrl-c fails to put an end to an out-of-control process. terminal.py: Fixed a bug where Terminal() could get stuck thinking it was capturing an image eternally. The behavior now will be like this: If an image hasn't completed capture within one second the buffer will be discarded and a message will be displayed indicating as such. terminal.py: Renamed terminal_reset() to just reset() since terminal.Terminal.terminal_reset seemed just a *bit* redundant =) Logging Plugin: Updated retrieve_log_playback() to use the same logic as retrieve_log_flat() for tracking child processes. Also updated the logic that removes any existing IOLoop handlers to prevent a transient exception from showing up in the logs when the level is set to "debug". utils.py: Modified timeout_func() so that if the *default* argument is a function that function will be called in the event of a timeout (e.g. to make it work more like termio's expect() *errorback* argument--consistency). gateone.js: When the rate limiter is engaged a message will be displayed to the user indicating as such along with a message that if a Ctrl-c doesn't fix the out-of-control process it will be terminated. Playback Plugin: Made some more tweaks to save memory. After a while Chrome still starts consuming memory like crazy though--for no apparent reason. Having it run in the background seems to double the likelihood this will happen. Playback Plugin: Fixed the bug where shift+scroll wasn't working to go back/forward in the playback buffer. NEW TEST: Added floot_output.sh to the tests directory. It disables the use of Ctrl-c and repeats, "Kill Me!" as fast as possible. It is meant to test Gate One's ability to prevent out-of-control processes from ruining everything.
- Loading branch information...
Showing with 173 additions and 75 deletions.
Oops, something went wrong.