def parse_helper_file_error(proc, executor, name, stderr, time_limit, memory_limit): if proc.is_tle: error = '%s timed out (> %d seconds)' % (name, time_limit) elif proc.is_mle: error = '%s ran out of memory (> %s Kb)' % (name, memory_limit) elif proc.protection_fault: syscall, callname, args = proc.protection_fault error = '%s invoked disallowed syscall %s (%s)' % (name, syscall, callname) elif proc.returncode: if proc.returncode > 0: error = '%s exited with nonzero code %d' % (name, proc.returncode) else: error = '%s exited with %s' % (name, strsignal(proc.signal)) feedback = Result.get_feedback_str(stderr, proc, executor) if feedback: error += ' with feedback %s' % feedback else: return raise InternalError(error)
def parse_helper_file_error(proc: 'TracedPopen', executor: 'BaseExecutor', name: str, stderr: bytes, time_limit: int, memory_limit: int) -> None: if proc.is_tle: error = f'{name} timed out (> {time_limit} seconds)' elif proc.is_mle: error = f'{name} ran out of memory (> {memory_limit} KB)' elif proc.protection_fault: syscall, callname, args, update_errno = proc.protection_fault error = f'{name} invoked disallowed syscall {syscall} ({callname})' elif proc.returncode: if proc.returncode > 0: error = f'{name} exited with nonzero code {proc.returncode}' else: assert proc.signal is not None error = f'{name} exited with {strsignal(proc.signal)}' feedback = Result.get_feedback_str(stderr, proc, executor) if feedback: error += f' with feedback {feedback}' else: return raise InternalError(error)