-
Tomáš Pecka authored
In case the worker segfaults (ALT unfortunately sometimes segfaults) then the job is not acknowledged to the server. This causes another worker to pick up the job and segfault too. Invoking acknowledge before evaluation is not possible; the server could assign us a new job before finishing this one and whole load balancing would be useless. Hence I propose splitting worker into two executables. The first one, evaluator, would simply read json from input, evaluate and compose a json output. Nothing more. The second one, worker, would manage all the queue stuff (receiving, sending, acknowledging, ...) and it runs the evaluator in a forked job. This way we can not only handle timeouts but we can also see when the child segfaults and report it properly to the server. Closes #44
2610a8da