Commit graph

48 commits

Author SHA1 Message Date
Omar Brikaa
c4afd97a38 Use pkgdir inside isolate sandbox to account for packages that have been built with a custom PREFIX
closes #686
2024-09-15 20:48:45 +03:00
Omar Brikaa
ecdced9ee7 Add SIGKILL signal for output limits and timeout, add status for output limits 2024-09-13 16:19:09 +03:00
Omar Brikaa
bd42fe3357
Improve isolation, execution limits and execution metrics by using Isolate (#683)
* Initial: use Isolate for isolation

* Continue: use Isolate for isolation

* Bug fixes

* timeout is wall-time for backward compatibility

* Documentation, signal names, reported time in ms

* Report memory usage in bytes

* Add privileged flags where needed

* Remove tmpfs

* Remove tmpfs

* Fix package installation

* Fix path, fix Zig: CRLF -> LF
2024-09-08 13:58:40 +12:00
Ahmed Wael
647bc3a7c7
handle stdout and stderr limits properly (#643)
* handle stdout and stderr limits proberly

Co-authored-by: Omar Brikaa <brikaaomar@gmail.com>

* added environment to docker compose

---------

Co-authored-by: Omar Brikaa <brikaaomar@gmail.com>
2024-01-26 19:41:28 +13:00
Shubham Sahai
d8af1ee301 Try-Catch process kills to handle dead processes 2023-10-30 20:09:01 +08:00
Shubham Sahai
dc4bb294b6 bugfix: catch error - "e is not defined" 2023-10-26 02:42:28 +08:00
Pablo Pozo
11841b3202 Backport engineer-man#519 parallel requests fix 2023-07-14 13:55:40 +03:00
Neysan Foo
52dd07ce20 fixed try catch 2022-07-04 15:24:10 +08:00
Thomas Hobson
0c0be54505
Fix #495 2022-07-02 01:46:44 +12:00
Thomas Hobson
81e315609d
Use timeout as fallback for killing process 2022-04-27 03:05:29 +12:00
Thomas Hobson
0ab66f4f5f
Cleanup all zombie processes
Prevents process table exhaustion
2022-04-27 02:51:10 +12:00
Thomas Hobson
c091c117c7
api(job): Decrease safe_call CPU time
By increasing the niceness value of child processes, the scheduler gives less CPU Time to them.
This allows the node process to get more CPU time, and can work through the event queue faster.
2021-11-11 21:34:30 +13:00
Thomas Hobson
c7efa5372a
api(job): Switch process cleanup to sync
The system used to use async.
This would result in execution is handed off to other processes.
In the case of a forkbomb was used, it could circumvent the janitor as it consumed more CPU time which would prevent the process janitor from reading the process information in.
2021-11-11 19:27:54 +13:00
Brikaa
64833a0408 pkg(file-0.0.1): Run executable 2021-10-16 11:49:59 +02:00
Thomas Hobson
0faea205db
Only compile/run files in utf8 encoding 2021-10-14 01:36:29 +13:00
Thomas Hobson
24a352699d
Support for uploading files in base64/hex format 2021-10-14 00:46:49 +13:00
Thomas Hobson
94a5568121
Merge pull request #371 from Brikaa/timeout
-1 for no timeout (infinite timeout)
2021-10-13 23:15:29 +13:00
Brikaa
2f114d6e54 Fix important constraints bug 2021-10-10 19:20:17 +02:00
Brikaa
f973ecf281 Add infinite timeout 2021-10-10 17:18:31 +02:00
Brikaa
f2c91acbe6 Piston lint 2021-10-09 18:10:58 +02:00
Brikaa
adae6fde2f pkg(dotnet-5.0.201): Added F#.net, F# interactive and VB.net 2021-10-04 17:25:11 +02:00
Brikaa
a5c3858100 Add per-language constraint overrides 2021-10-04 17:11:46 +02:00
Thomas Hobson
36d72383a5 rework process janitor
Old process janitor required starting a `ps` process.
This was problematic, as `ps` requires another entry in the process table, which in some cases was impossible as it was exhausted.
2021-10-04 17:11:46 +02:00
Thomas Hobson
5d392effcc api: maximum concurrent jobs and potential fix for gcc 2021-10-04 17:11:46 +02:00
Thomas Hobson
7d05f4e305
Merge branch 'master' into websocket 2021-09-22 08:21:31 +12:00
Thomas Hobson
2386684a05
api: fix file cleanup edge case
Processes could still be spawned writing files after the app has cleaned the dir out, and is ready to clear it out.
Dumb edge case, but oh well.
2021-08-20 01:05:13 +12:00
Thomas Hobson
5cd84ae816
api: allow paths when writing files (#302) 2021-07-22 14:58:41 +12:00
Thomas Hobson
3436648add
api: signaling process via ws 2021-07-17 00:22:55 +12:00
Thomas Hobson
de89acb617
api: Implement Websocket transport for live data 2021-07-16 23:10:44 +12:00
Thomas Hobson
b3be57e0b4
lint like rest of codebase 2021-05-08 12:30:40 +12:00
Thomas Hobson
4259e89bb2
lint api 2021-05-08 12:20:21 +12:00
Brian Seymour
de449c6d56 validate json instead of a json header, and lots of cleanup 2021-05-07 14:22:25 -05:00
Thomas Hobson
0da1cd5867
use real uid for killing processes instead of using euid (#206) 2021-05-07 22:11:28 +12:00
Felix
fb102ebe83
Improved memory limits (#248)
* Added optional compile_memory_limit and run_memory_limit parameters

* Combined memory limit parameters into one
2021-05-07 20:21:25 +12:00
Thomas Hobson
9590d5afbc
Patch for race condition with filesystem and process cleanup 2021-05-07 19:23:34 +12:00
Thomas Hobson
5509492a99
uncomment the fix 2021-04-28 16:11:49 +12:00
Thomas Hobson
3bd73d07a9
file persistance fix 2021-04-28 16:03:35 +12:00
Thomas Hobson
a6bc24e22e
Fix issue where large files can be written to exhaust space
**BREAKING CHANGE**
Requires manually editing the config file, or deleting the config file entirely!
2021-04-28 15:39:23 +12:00
Thomas Hobson
9a52e369f2
fix forking exploits 2021-04-26 19:37:40 +12:00
Thomas Hobson
6fe0da030d
edge case 2021-04-26 13:37:50 +12:00
Thomas Hobson
3673b4e403
zombie process handler 2021-04-26 13:00:34 +12:00
Thomas Hobson
347f2d56d7
use a compatible waitpid library 2021-04-26 11:32:10 +12:00
Thomas Hobson
dd31873700
free zombie processes from proctable 2021-04-26 11:22:28 +12:00
Thomas Hobson
72bda367e0
cleanup all runner user processes 2021-04-26 10:35:34 +12:00
Thomas Hobson
3b0f2a0013
remove useless kill 2021-04-26 03:15:49 +12:00
Thomas Hobson
349beeb45a
Warn on errors when killing process group 2021-04-26 03:01:08 +12:00
Thomas Hobson
f9b8fbd9c0
correct logging contexts 2021-04-25 21:01:16 +12:00
Thomas Hobson
3928bace86
refactor 2021-04-25 20:55:20 +12:00
Renamed from api/src/executor/job.js (Browse further)