mirror of
https://github.com/engineer-man/piston.git
synced 2025-05-13 23:26:27 +02:00
Compare commits
No commits in common. "a7fa1b47feb7c935e90e34060e65661b69c0961c" and "37141e87f66e3ab179018f33a7f02829dbe37d63" have entirely different histories.
a7fa1b47fe
...
37141e87f6
12 changed files with 27 additions and 91 deletions
|
@ -146,7 +146,7 @@ class Job {
|
|||
'--nofile=' + this.runtime.max_open_files,
|
||||
'--fsize=' + this.runtime.max_file_size,
|
||||
];
|
||||
|
||||
|
||||
const timeout_call = [
|
||||
'timeout',
|
||||
'-s',
|
||||
|
@ -158,7 +158,7 @@ class Job {
|
|||
prlimit.push('--as=' + memory_limit);
|
||||
}
|
||||
|
||||
const proc_call = [
|
||||
const proc_call = [
|
||||
'nice',
|
||||
...timeout_call,
|
||||
...prlimit,
|
||||
|
@ -204,16 +204,7 @@ 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
|
||||
);
|
||||
}
|
||||
process.kill(proc.pid, 'SIGKILL');
|
||||
}, timeout)) ||
|
||||
null;
|
||||
this.#active_timeouts.push(kill_timeout);
|
||||
|
@ -223,16 +214,7 @@ 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
|
||||
);
|
||||
}
|
||||
process.kill(proc.pid, 'SIGKILL');
|
||||
} else {
|
||||
stderr += data;
|
||||
output += data;
|
||||
|
@ -244,16 +226,7 @@ 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
|
||||
);
|
||||
}
|
||||
process.kill(proc.pid, 'SIGKILL');
|
||||
} else {
|
||||
stdout += data;
|
||||
output += data;
|
||||
|
@ -281,7 +254,7 @@ class Job {
|
|||
if (this.state !== job_states.PRIMED) {
|
||||
throw new Error(
|
||||
'Job must be in primed state, current state: ' +
|
||||
this.state.toString()
|
||||
this.state.toString()
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -298,22 +271,22 @@ class Job {
|
|||
const { emit_event_bus_result, emit_event_bus_stage } =
|
||||
event_bus === null
|
||||
? {
|
||||
emit_event_bus_result: () => { },
|
||||
emit_event_bus_stage: () => { },
|
||||
}
|
||||
emit_event_bus_result: () => {},
|
||||
emit_event_bus_stage: () => {},
|
||||
}
|
||||
: {
|
||||
emit_event_bus_result: (stage, result, event_bus) => {
|
||||
const { error, code, signal } = result;
|
||||
event_bus.emit('exit', stage, {
|
||||
error,
|
||||
code,
|
||||
signal,
|
||||
});
|
||||
},
|
||||
emit_event_bus_stage: (stage, event_bus) => {
|
||||
event_bus.emit('stage', stage);
|
||||
},
|
||||
};
|
||||
emit_event_bus_result: (stage, result, event_bus) => {
|
||||
const { error, code, signal } = result;
|
||||
event_bus.emit('exit', stage, {
|
||||
error,
|
||||
code,
|
||||
signal,
|
||||
});
|
||||
},
|
||||
emit_event_bus_stage: (stage, event_bus) => {
|
||||
event_bus.emit('stage', stage);
|
||||
},
|
||||
};
|
||||
|
||||
if (this.runtime.compiled) {
|
||||
this.logger.debug('Compiling');
|
||||
|
@ -379,9 +352,9 @@ class Job {
|
|||
const [_, ruid, euid, suid, fuid] = uid_line.split(/\s+/);
|
||||
|
||||
const [_1, state, user_friendly] = state_line.split(/\s+/);
|
||||
|
||||
|
||||
const proc_id_int = parse_int(proc_id);
|
||||
|
||||
|
||||
// Skip over any processes that aren't ours.
|
||||
if (ruid != this.uid && euid != this.uid) return -1;
|
||||
|
||||
|
@ -389,7 +362,7 @@ class Job {
|
|||
// Zombie process, just needs to be waited, regardless of the user id
|
||||
if (!to_wait.includes(proc_id_int))
|
||||
to_wait.push(proc_id_int);
|
||||
|
||||
|
||||
return -1;
|
||||
}
|
||||
// We should kill in all other state (Sleep, Stopped & Running)
|
||||
|
@ -424,7 +397,7 @@ class Job {
|
|||
// Then clear them out of the process tree
|
||||
try {
|
||||
process.kill(proc, 'SIGKILL');
|
||||
} catch (e) {
|
||||
} catch {
|
||||
// Could already be dead and just needs to be waited on
|
||||
this.logger.debug(
|
||||
`Got error while SIGKILLing process ${proc}:`,
|
||||
|
|
2
packages/crystal/1.9.2/build.sh → packages/crystal/0.36.1/build.sh
vendored
Normal file → Executable file
2
packages/crystal/1.9.2/build.sh → packages/crystal/0.36.1/build.sh
vendored
Normal file → Executable file
|
@ -2,6 +2,6 @@
|
|||
|
||||
PREFIX=$(realpath $(dirname $0))
|
||||
|
||||
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
|
||||
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
|
||||
tar xzf crystal.tar.gz --strip-components=1
|
||||
rm crystal.tar.gz
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"language": "crystal",
|
||||
"version": "1.9.2",
|
||||
"version": "0.36.1",
|
||||
"aliases": ["crystal", "cr"]
|
||||
}
|
21
packages/python/3.11.0/build.sh
vendored
21
packages/python/3.11.0/build.sh
vendored
|
@ -1,21 +0,0 @@
|
|||
#!/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
1
packages/python/3.11.0/environment
vendored
|
@ -1 +0,0 @@
|
|||
export PATH=$PWD/bin:$PATH
|
5
packages/python/3.11.0/metadata.json
vendored
5
packages/python/3.11.0/metadata.json
vendored
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"language": "python",
|
||||
"version": "3.11.0",
|
||||
"aliases": ["py", "py3", "python3", "python3.11"]
|
||||
}
|
3
packages/python/3.11.0/run
vendored
3
packages/python/3.11.0/run
vendored
|
@ -1,3 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
python3.11 "$@"
|
7
packages/python/3.11.0/test.py
vendored
7
packages/python/3.11.0/test.py
vendored
|
@ -1,7 +0,0 @@
|
|||
working = True
|
||||
|
||||
match working:
|
||||
case True:
|
||||
print("OK")
|
||||
case False:
|
||||
print()
|
Loading…
Add table
Add a link
Reference in a new issue