| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
Enable external abortion of the instance creation process. This is
especially useful for the qemu case where we retry the creation/boot up
to 1000 times, which can take significant time (e.g. it timeouts
syz-cluster pods on unstable kernels).
The context can be further propagated to WaitForSSH, but that requires
another quite significant vm/ refactoring.
|
| |
|
|
| |
Move boot error reporting to a separate function.
|
| |
|
|
|
|
|
| |
React on the context cancellation even if the boot error channel is
blocked.
Add a test that verifies this behavior.
Print a log message if the channel is full.
|
| |
|
|
|
|
|
|
|
|
| |
Make the pool.Run() function take a context.Context to be able to abort
the callback passed to it or abort its scheduling if it's not yet
running.
Otherwise, if the callback is not yet started and the pool's Loop is
aborted, we risk waiting for pool.Run() forever. It prevents the normal
shutdown of repro.Run() and, consequently, the DiffFuzzer functionality.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
The pause function is useful to make manager stop consuming CPU
for some time, e.g. when it runs on a shared machine,
and a user wants to use CPU for something else.
Previously one would need to kill the manager process and
restart later to achieve this, but the restart is costly,
and aborts all bug reproductions.
|
| |
|
|
| |
Stop all default VMs and restart them with the new handler.
|
| |
|
|
|
| |
The test should aid the Go race detector to detect bugs in the
dispatcher.Pool code.
|
| |
|
|
|
|
|
|
| |
It was possible for poolInstance.reserve() and free() to race with
instance restart in Pool.Loop().
Add more locking to poolInstance. Remove locks in one case where it was
excessive.
|
| |
|
|
|
| |
This should be calculated in dispatcher.Pool that actually does boot
VMs.
|
| |
|
|
|
|
|
|
|
| |
There was a race between starting the job and resetting the reserved VM
count.
Rewrite the test to let it run regardless of the thread interleaving.
Closes #5090.
|
|
|
The pool operates on a low level and assumes that there's one default
activity (=fuzzing) that is performed by the VMs and that there are
also occasional non-default activities that must be performed by some
VMs (=bug reproduction).
|