Commit Graph

163 Commits

Author SHA1 Message Date
Omar Brikaa 24c5c05308 Give friendlier messages when cgroup v2 is not enabled 2024-10-04 19:31:12 +03:00
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 a99ce9ae47 Remove nosocket, update security principles in docs 2024-09-13 15:14:16 +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
Thomas Hobson 37141e87f6
Merge pull request #624 from Brikaa/fix-job-cleanup-evasion-vulnerability
Fix job cleanup evasion vulnerability, improve job execution error handling
2023-10-09 10:49:47 +13:00
Omar Brikaa fef00b96f1 Improve containers stopping performance by handling SIGTERM 2023-10-03 13:59:23 +03:00
Omar Brikaa 6a47869578 Comments explaining the try-catch flow 2023-09-16 21:37:09 +03:00
Omar Brikaa 040e19fdc2 Interactive execution: run job cleanup regardless of errors 2023-09-15 20:39:15 +03:00
Omar Brikaa fe2fc374aa Improve normal execution error handling
- Properly differentiate between bad requests and internal server errors
- Avoid clean up evasion by putting the cleanup in the finally block
2023-09-15 20:26:10 +03:00
Pablo Pozo 11841b3202 Backport engineer-man#519 parallel requests fix 2023-07-14 13:55:40 +03:00
Luka Barbić e86c19b007 return 200 and piston ver on /, fix empty content-type header validation 2023-01-11 18:59:29 +01: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
Omar Brikaa 5526071f00 Set jobs permissions on startup 2022-06-30 13:19:44 +02: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 f113a18cef
Merge pull request #425 from Brikaa/checksum-app-use
checksum fail message undefined, app.use() duplicate
2022-02-26 10:20:55 +13:00
Omar Brikaa 9760f8fcf9 config.js: index by key, bug fix and more refactoring 2022-01-30 13:35:16 +02:00
Omar Brikaa 416ade1b76 Refactor config.js 2022-01-28 17:58:00 +02:00
Omar Brikaa 3372ca1954 checksum fail message undefined, app.use() duplicate 2022-01-22 18:56:33 +02:00
Thomas Hobson 142e7912fa
api(config): respect $PORT as used by heroku if no explicit bind address provided 2021-11-26 02:32:28 +13: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 19252467cb Use some() instead of filter() in v2.js 2021-10-16 11:50:07 +02:00
Brikaa 64833a0408 pkg(file-0.0.1): Run executable 2021-10-16 11:49:59 +02:00
Brikaa 6ca9606f81 Adhere to project let, const practices in my code 2021-10-16 11:01:17 +02:00
Thomas Hobson 7e5844bcb1
require arleast 1 utf-8 encoded file 2021-10-15 16:14:06 +13: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
Thomas Hobson e97b6d426d
Merge pull request #367 from Brikaa/constraints-bug
Fix important constraints bug
2021-10-13 06:43:26 +13:00
Brikaa afd71cc82d Fix env_val bug 2021-10-10 22:08:55 +02: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
Brikaa c0f203537c config.js: timeout, overrides 2021-10-04 17:11:46 +02:00
Brikaa 883d584c15 pkg(iverilog-11.0.0): Added iverilog 11.0.0 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
Dan Vargas 15e2e81d96 fix stdin for normal execute 2021-09-22 16:39:26 -05: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 5ace2bf0e4
api: websocket init timeout 2021-07-17 00:25:19 +12:00