3abd4d9a3d
Refactor all tests to use the MemoryLeakTestSuite.
2023-09-11 13:44:29 +02:00
a7d27e8f65
Add missing error log statements.
...
When "markRunnerAsUsed" fails, we silently ignored it. Only, when additionally the return of the runner failed, we threw the error.
When a Runner is destroyed, we are only notified that Nomad removed the allocation, but cannot tell about the reason.
For "the execution did not stop after SIGQUIT" we did not log the belonging runner id.
2023-08-21 22:40:37 +02:00
89c18ad45c
Refactor to WithoutCancel context.
...
With Go 1.21 the WithoutCancel context was introduced. This way we can keep the values passed in a new context without having the new context being canceled together with its parent. This behavior suits well for two occurrences where we explicitly had to copy one required value instead of implicitly keeping all values.
2023-08-16 15:13:05 +02:00
90092c48c1
Fix incomplete debug message
...
that is created by sending SIGQUIT to the bash process
by not processing output after the the client disconnected / we have sent the SIGQUIT.
2023-08-14 11:37:51 +02:00
eb818f92f7
Refactor Runner Destroy Reason Masking
...
and ignore expected reasons such when the runner got destroyed by an API request.
2023-07-24 11:48:14 +01:00
6a1677dea0
Introduce reason for destroying runner
...
in order to return a specific error for OOM Killed Executions.
2023-07-21 15:30:21 +02:00
bfb5977d24
Destroy runner on allocation stopped
...
Destroying the runner when Nomad informs us about its allocation being stopped, fixes the error of executions running into their timeout even if the allocation was stopped long ago.
2023-07-21 15:30:21 +02:00
d64d8995bd
Refactor monitoring of runner and environment id.
2023-07-15 21:46:56 +02:00
e7df777db4
Always log Runner and Environment ID.
...
Systematically log the runner id and the environment id by adding the information at the findRunnerMiddleware.
2023-07-15 21:46:56 +02:00
2aa10a130f
Introduce context for the codeOceanOutputWriter
...
that represents its lifespan.
2023-04-11 20:45:30 +01:00
0c8fa9ccfa
Add context to log statements.
2023-04-11 20:45:30 +01:00
7dadc5dfe9
Refactor Nomad Command Generation.
...
- Abstracting from the exec form while generating.
- Removal of single quotes (usage of only double-quotes).
- Bash-nesting using escaping of special characters.
2023-03-14 23:42:19 +01:00
4550a4589e
Dangerous Context Enrichment
...
by passing the Sentry Context down our abstraction stack.
This included changes in the complex context management of managing a Command Execution.
2023-02-03 10:29:18 +00:00
2650efbb38
Sentry Tracing Identifier
2023-02-03 10:29:18 +00:00
f2c205a8ed
Add additional performance spans
2023-02-03 10:29:18 +00:00
8950ab3776
Add single quotes for inner command.
...
Change to bash as interpreter.
Forbid single quotes for user commands.
2022-11-04 15:15:43 +01:00
28fb0ca61c
Catch context canceled error
2022-10-25 09:36:52 +02:00
5d54b0f786
Fix wrong environment id at monitoring
...
data for created or updated environments.
2022-10-24 13:15:14 +02:00
195f88177e
Add Content-Length and Content-Disposition Header
...
for GetFileContent route.
2022-10-05 12:11:47 +01:00
0c70ad3b24
Enable unprivileged retrieve of file listing and content.
2022-10-05 12:11:47 +01:00
3469d0ce77
Specify http not found exit code
...
by replacing it with StatusGone (410) for a missing runner and StatusFailedDependency (424) for missing or not accessible files.
2022-10-05 12:11:47 +01:00
fc77f11d4d
Enquote file path for shell execution.
...
Also, fix json of 500 response.
2022-10-05 12:11:47 +01:00
152b77afe5
Add listing of runners file system.
2022-10-05 12:11:47 +01:00
c7ee7c1e25
Remove superfluous response.WriteHeader call
...
as the Write of the responseWriter automatically sends also the Header.
2022-10-05 12:11:47 +01:00
f2b25566dd
#136 Copy files back from Nomad runner.
2022-10-05 12:11:47 +01:00
1a5a49d7c8
Explicitly switch user for code execution.
...
Co-authored-by: Maximilian Pass <maximilian.pass@student.hpi.uni-potsdam.de >
2022-09-24 23:09:23 +02:00
d10b31a1fb
Remove static (nil) return value.
2022-08-01 11:24:56 +02:00
498e8f5ff5
#110 Refactor influxdb monitoring
...
to use it as singleton.
This enables the possibility to monitor processes that are independent of an incoming request.
2022-07-01 15:29:31 +02:00
203d5a3a4f
#155 refactor and synchronise writing to CodeOcean. ( #174 )
...
* #155 refactor and synchronise writing to CodeOcean.
* Reduce complexity of input parsing.
* Update typo in internal/api/ws/codeocean_writer.go
Co-authored-by: Sebastian Serth <MrSerth@users.noreply.github.com >
2022-06-26 20:19:23 +02:00
3afe8ddb66
#155 Enable stopping of the CodeOcean WebSocket read independently of writing to CodeOcean.
2022-06-21 12:13:33 +02:00
3d1ed7cb0f
#155 Minimise timing issues with websocket close.
2022-06-21 12:13:33 +02:00
79dc3a94da
#155 Add log statement for further investigations ( #164 )
2022-06-12 11:10:57 +02:00
ecce3c294f
#155 Add log statement for further investigations
2022-06-09 22:34:43 +02:00
1e59c1146e
Fix CodeQL log injection warning
...
by removing newlines from logged user input.
2022-06-07 17:21:05 +02:00
25f92e5f94
Add environment specific data to the influxdb data.
2022-04-18 13:17:49 +02:00
eabe3a1b27
Add the Environment ID to the influxdb data.
...
Also move the interface of an execution environment into its own file, execution_environment.go.
2022-04-18 13:17:49 +02:00
8feffdae3a
Add initial structure of influxdb monitoring.
2022-04-18 13:17:49 +02:00
e4ebb5b384
Add trace statements for WebSocket messages
...
* With `logger.level: TRACE`, the content of WebSocket messages is logged
together with the corresponding timestamp.
* The input is not further sanitized as this log level
is not intended for production use.
2022-04-15 12:39:03 +02:00
6123d20525
Implement core functionality of AWS integration
2022-02-28 14:54:40 +01:00
dd41e0d5c4
Generate structures for an AWS environment and runner
2022-02-28 14:54:40 +01:00
0ef5a4e39f
Make Execution Environment interface Nomad independent
2022-02-28 14:54:40 +01:00
ba43f667c2
Add architecture for multiple managers
...
using the chain of responsibility pattern.
2022-02-28 14:54:40 +01:00
d57a0c07b8
Implement review suggestions
2021-12-22 17:30:16 +01:00
2f5b30702a
Fix early write
...
Because some clients fail receiving a response before the body is sent entirely. See https://github.com/openHPI/poseidon/issues/54
2021-12-16 23:44:13 +01:00
f3929cbf50
Fix webSocket error
...
that was introduced by closing the WebSocket connection without stopping the inputLoop.
2021-12-16 15:05:47 +01:00
feefe2c1ed
Fix third goroutine leak and refactor proxy cancellation.
...
Fix goroutine leak in the Read function of the codeOceanToRawReader: Blocking Select statement.
2021-12-14 13:24:53 +01:00
c565ca217e
Fix goroutine leak when reading the client WebSocket
2021-12-14 13:24:53 +01:00
e95e07e426
Catch the client connection "Close normal" error
...
* Catch the client connection "Close normal" error
* Reduce cognitive complexity of the input read loop
2021-12-09 10:02:26 +01:00
1de559cebc
Add statistics route for execution environments
...
* Add statistics route for execution environments
* Add maximum to port api definition
Co-authored-by: Sebastian Serth <MrSerth@users.noreply.github.com >
2021-12-08 12:08:22 +01:00
a6eaa45097
Stop stdout & stderr after timeout
...
Co-authored-by: Sebastian Serth <MrSerth@users.noreply.github.com >
2021-11-25 21:08:56 +01:00