Limit the size of retrieved stdout of a task to 1 GB. Note we receive all the
bytes transmitted by the worker but only return upto 1GB to the application. We
throw away the bytes beyond 1GB.
Remove the worker on failures when retrieving the results (stdout) of a task.
Describe the recommended practice when accessing the output (stdout) buffer of a
task.
Hit nd.edu webserver instead of cse.nd.edu.
If memory allocation for stdout buffer fails, we
drop the stdout read from the link and return an empty buffer.
If link_soak failed, it will corrupt the order of
the data we expect to read next on the link. This will cause failure and
disconnection. So remove the code for checking failure of link_soak.
Use absolute path for sourcefile when using symbolic links. Otherwise, the
symlink will refer to a path relative to the directory of the destination.
Convert user specified working directory to an absolute path.
Add RESULT_STDOUT_MISSING to result codes to signal missing stdout.
If the length of stdout exceeds 1 GB or if its memory allocation fails in
process_result(), set RESULT_STDOUT_MISSING. However, this failure must be
handled after we have retrieved all the outputs of the task. So don't return
with an app-level failure.
Change return type of process_available_results().
There is no necessity to return an integer since it handles failures and the
caller doesn't have to worry if it succeeded or failed.
Evict all output files of a task from remote cache on missing stdout or output
files.
Document what happens for stdout > 1 GB.
Add "truncated" message at the end of stdout.
Add -x flag to help with debugging.
Reorganize headers and some defines.
Use 5 second stoptime.
Group globals.
fd == 0 is valid.
Abort benchmark on failure.