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.
Use string_format() to store absolute pathname.
Merge branch 'workerpathfixes' of git://github.com/dpandiar/cctools into dpandiar-workerpathfixes

Fixes #345 by converting the specified relative path to absolute.

Uses absolute path for source when symlinking. Previously, the symlink was
created relative to the current directory. Here is an example of the problem:
consider a directory containing 2 subdirs - cache and t.1.

When we symlink a file a.in in cache into t.1 as ln -s cache/a.in t.1/a.in then
t.1/a.in will simply point to a non-existent file as the link will be traversed
relative to t.1.
Solaris needs limits.h for PATH_MAX.
Use floats to print messages for max stdout.
Merge pull request #361 from btovar/dpandiar-wqbigstdout

Gracefully handle failure to allocate memory for storing stdout of a task (2)
Allow minimum workers in wq pool to be set to zero.

As requested by Peter Sempolinksi