1dce6c59ab
Add note about default ACL for Docker mount dir
2021-11-08 22:39:10 +01:00
5401ebb54d
Revert "DCP: previous_data match should be non-greedy"
...
This reverts commit 328055e6e8
due to dramatically slower processing.
2021-11-08 20:06:55 +01:00
328055e6e8
DCP: previous_data match should be non-greedy
2021-11-01 17:13:15 +01:00
65fe1d902d
DCP: Match java@hostname output
2021-11-01 17:13:15 +01:00
d16917261b
Prevent inactivityTimeout from being smaller than permitted_execution_time
2021-11-01 17:13:14 +01:00
475aa8c512
DCP: Allow increasing the pool size when previously empty
2021-11-01 17:13:13 +01:00
eaa06ee528
DCP: Prevent double deletion of runner
2021-11-01 17:13:13 +01:00
6a902c41db
DCP: Refactor container
method and usage
2021-11-01 17:13:12 +01:00
537d8bfc95
DCP: Add handling of inactivity timer
2021-11-01 17:13:12 +01:00
dcafbb9d46
DCP: Change HTTP verbs
2021-11-01 17:13:12 +01:00
6209e25ee2
DCP: Move pool location to code_ocean.yml
2021-11-01 17:13:12 +01:00
7bb2ef8588
DCP: Forward data before matching stdout termination
2021-11-01 17:13:12 +01:00
dfdec92c6e
Use ping option only for DCP WebSocket
...
* The Faye::WebSocket library will "buffer" some output of the connection and emit the `on :message` events in the order of the messages. However, when a ping is sent while the connection has already been closed, it will emit the `on :close` event immediately and drop all other messages (in that "buffer"). This is problematic for very short running executions that generate a long output (as this will be cut off without a proper exit message sent by Poseidon).
2021-11-01 17:13:11 +01:00
01ec9343cf
Remove usage of DockerClient
2021-11-01 17:13:10 +01:00
b13a3b084d
Use new available_images routes from DCP
2021-11-01 17:13:10 +01:00
ada438b230
Add release and pool_size methods to DCP
2021-11-01 17:13:07 +01:00
6d1b388e3c
Reorder methods in strategy classes
2021-11-01 17:13:07 +01:00
e33af5760d
Delegate initialization to Runner::Strategy
2021-11-01 17:13:07 +01:00
2b98905acb
Remove usage of DockerClient from execution_environments_controller.rb
2021-11-01 17:13:07 +01:00
87c5302336
Switch logging to milliseconds and add more details
...
* By design, most logging happens in an `ensure` block. This ensures that no return value is modified unexpectedly.
2021-11-01 17:13:06 +01:00
2ad4eb7625
DCP: Escape command for RegEx
2021-11-01 17:13:04 +01:00
68c8f1dbdf
DCP: Set sticky bit for folder and secure delete
2021-11-01 17:13:04 +01:00
04c896c7de
DCP: Listen for Python exit handler
2021-11-01 17:13:03 +01:00
58e923abd8
Add custom websocket header to strategy class
2021-11-01 17:12:59 +01:00
a074a5cb0d
Add buffering to output received from runner
2021-11-01 17:12:58 +01:00
3240ea7076
Forward input as raw_event to runner
...
* Also, rename #send to #send_data in order to prevent debugging issues in RubyMine
2021-11-01 17:12:58 +01:00
cc98dc2229
Split WebSocket event in multiple lines before processing
2021-11-01 17:12:58 +01:00
09b672eb08
DCP strategy: Use stdout for most test results
2021-11-01 17:12:56 +01:00
30603cb7ab
Generalize method and constant names for runner management
2021-11-01 17:12:53 +01:00
9e2cff7558
Attach connection errors to socket
...
Raising the errors would crash the current thread. As this thread
contains the Eventmachine, that would influence other connections
as well. Attaching the errors to the connection and reading them
after the connection was closed ensures that the thread stays
alive while handling the errors in the main thread of the current
request.
2021-11-01 17:12:53 +01:00
c7369366d5
Ensure that only one EventMachine is running
2021-11-01 17:12:52 +01:00
2dff81a510
Attach duration information to the exception object
2021-11-01 17:12:52 +01:00
f98a8b9e7a
Resolve error handling todos in dcp strategy
2021-11-01 17:12:52 +01:00
d1a5773e60
Add debug log statements to runner connection
2021-11-01 17:12:51 +01:00
cc412b73bc
Introduce more error types
2021-11-01 17:12:51 +01:00
704407b9fc
Add strategy for DockerContainerPool
...
In order to provide an alternative to Poseidon, a strategy for the
DockerContainerPool is added that is used by the runner model.
Co-authored-by: Sebastian Serth <Sebastian.Serth@hpi.de >
2021-11-01 17:12:51 +01:00