Compare commits

...

7 Commits

Author SHA1 Message Date
Thomas Hobson a7fa1b47fe
Merge pull request #632 from ssahai/bugfix/catch_error
Handle process kills gracefully
2023-11-01 14:06:28 +13:00
Thomas Hobson 48102b612f
Merge pull request #623 from devnote-dev/update-crystal
Replace old Crystal version
2023-11-01 14:04:34 +13:00
Thomas Hobson f785f655d5
Merge pull request #630 from Aetheridon/master
Added files for Python 3.11.0
2023-11-01 14:04:06 +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
Aetheridon 18743a3369 Added files for Python 3.11.0 2023-10-19 14:47:45 +01:00
devnote-dev f70ecdd8b4 feat(packages): replace old crystal version 2023-09-03 20:29:22 +01:00
12 changed files with 91 additions and 27 deletions

View File

@ -204,7 +204,16 @@ class Job {
(timeout >= 0 &&
set_timeout(async _ => {
this.logger.info(`Timeout exceeded timeout=${timeout}`);
try {
process.kill(proc.pid, 'SIGKILL');
}
catch (e) {
// Could already be dead and just needs to be waited on
this.logger.debug(
`Got error while SIGKILLing process ${proc}:`,
e
);
}
}, timeout)) ||
null;
this.#active_timeouts.push(kill_timeout);
@ -214,7 +223,16 @@ class Job {
event_bus.emit('stderr', data);
} else if (stderr.length > this.runtime.output_max_size) {
this.logger.info(`stderr length exceeded`);
try {
process.kill(proc.pid, 'SIGKILL');
}
catch (e) {
// Could already be dead and just needs to be waited on
this.logger.debug(
`Got error while SIGKILLing process ${proc}:`,
e
);
}
} else {
stderr += data;
output += data;
@ -226,7 +244,16 @@ class Job {
event_bus.emit('stdout', data);
} else if (stdout.length > this.runtime.output_max_size) {
this.logger.info(`stdout length exceeded`);
try {
process.kill(proc.pid, 'SIGKILL');
}
catch (e) {
// Could already be dead and just needs to be waited on
this.logger.debug(
`Got error while SIGKILLing process ${proc}:`,
e
);
}
} else {
stdout += data;
output += data;
@ -397,7 +424,7 @@ class Job {
// Then clear them out of the process tree
try {
process.kill(proc, 'SIGKILL');
} catch {
} catch (e) {
// Could already be dead and just needs to be waited on
this.logger.debug(
`Got error while SIGKILLing process ${proc}:`,

View File

@ -2,6 +2,6 @@
PREFIX=$(realpath $(dirname $0))
curl -L "https://github.com/crystal-lang/crystal/releases/download/0.36.1/crystal-0.36.1-1-linux-x86_64.tar.gz" -o crystal.tar.gz
curl -L "https://github.com/crystal-lang/crystal/releases/download/1.9.2/crystal-1.9.2-1-linux-x86_64.tar.gz" -o crystal.tar.gz
tar xzf crystal.tar.gz --strip-components=1
rm crystal.tar.gz

View File

@ -1,5 +1,5 @@
{
"language": "crystal",
"version": "0.36.1",
"version": "1.9.2",
"aliases": ["crystal", "cr"]
}

21
packages/python/3.11.0/build.sh vendored Normal file
View File

@ -0,0 +1,21 @@
#!/bin/bash
PREFIX=$(realpath $(dirname $0))
mkdir -p build
cd build
curl "https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz" -o python.tar.gz
tar xzf python.tar.gz --strip-components=1
rm python.tar.gz
./configure --prefix "$PREFIX" --with-ensurepip=install
make -j$(nproc)
make install -j$(nproc)
cd ..
rm -rf build
bin/pip3 install numpy scipy pandas pycryptodome whoosh bcrypt passlib sympy xxhash base58 cryptography PyNaCl

1
packages/python/3.11.0/environment vendored Normal file
View File

@ -0,0 +1 @@
export PATH=$PWD/bin:$PATH

5
packages/python/3.11.0/metadata.json vendored Normal file
View File

@ -0,0 +1,5 @@
{
"language": "python",
"version": "3.11.0",
"aliases": ["py", "py3", "python3", "python3.11"]
}

3
packages/python/3.11.0/run vendored Normal file
View File

@ -0,0 +1,3 @@
#!/bin/bash
python3.11 "$@"

7
packages/python/3.11.0/test.py vendored Normal file
View File

@ -0,0 +1,7 @@
working = True
match working:
case True:
print("OK")
case False:
print()