Issue #56 shows zombie SSH processes.
We fix this by actually Close()ing the RWC in job pull.
If this fixes#56 it also fixes#6 --- it's the same issue.
Additionally, debugging around this revealed another issue: just
Close()ing the sshbytestream in job source will apparently outpace the
normal data stream of stdin and stdout (URG or PUSH flags?). leading
to ugly errors in the logs.
With proper TCP connections, we would simply set the connection to
linger and close it, letting the kernel handle the final timeout. Meh.
refs #56
refs #6
- make TCPOutlet fully asynchronous, dropping messages if connection is
not fast enough
- syslog is just fine for now, local anyways
- stdout same thing
refs #26
An instance of Task tracks a single thread of activity that is part of a Job.
While the docs already use this terminology of tasks being composed of jobs,
the code did not have an object to represent these semantics.
Now it does:
* A task t is initialized with a root activity, which is its name
* t can t.Enter() and t.Finish() an activity, building
a stack of activities
* t's code can get a logger t.Log() whose logTaskField is set to the
concatenated stack of activities
* t's code can update IO progress it made since leaving idle state
* t's code's log output vie t.Log() is captured since leaving idle
state
* FIXME: find a way to bound that buffer
refs #10
refs #48
Didn't notice it because vendor/ was already populated on my dev
machine, but did notice it in Docker build.
Docker build now consumes devsetup like regular user, so this should
catch future problems.
Remove remaining curl|shit functionality from lazy.sh (no checkout logic
needed anymore).
refs #35
sphinx-versioning only build branches / commits with a 'docs/conf.py',
otherwise:
=> Gathering info about the remote git repository...
=> Getting list of all remote branches/tags...
=> Found: docs_theme master resumable_send_recv 0.0.1 0.0.2
=> With docs: 0.0.2
=> Root ref master not found in: 0.0.2
refs #35
Version is autodetected on build using git
If it cannot be detected with git, an override must be provided.
For tracability of distros, the distroy packagers should override as
well, which is why I added a README entry for package mainatiners.
refs #35