| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
Dedup code in syz-ci and syz-hub.
|
| |
|
|
| |
Any is the preferred over interface{} now in Go.
|
| |
|
|
|
|
|
|
|
| |
Instantiating the JobManager will fail if you don't specify a dashboard
address, which is an optional field in the syz-ci config. There's no point
having a JobManager without a dashboard, so just skip this completely when
there's no dashboard.
Signed-off-by: Andrew Donnellan <ajd@linux.ibm.com>
|
| |
|
|
|
|
|
| |
Rename the JobManager struct in main() from "jp" to "jm", to match the
conventions used in jobs.go and avoid confusion with JobProcessors.
Signed-off-by: Andrew Donnellan <ajd@linux.ibm.com>
|
| |
|
|
|
|
|
|
| |
Semaphore is a very low-level primitive type,
while pkg/instance is a very high-level package with lots of deps.
Semaphore does not belong there, and may lead to cyclic deps
if we use it more. Move it to pkg/osutil. It's not really OS-specific,
but we don't have a better package.
|
| |
|
|
|
|
| |
Factor syzkaller updating functionality out of syz-ci
so that it can be reused in other binaries.
No functional changes intended.
|
| |
|
|
|
| |
After this change it fits more naturally into the Go's error
functionality.
|
| |
|
|
|
|
|
|
| |
1. recover the removed comment
2. unnecessary leading newline
3. unnecessary brackets
4. restore dropped "..."
5. use bytes.Equal instead of conversion to string
|
| |
|
|
| |
./tools/syz-env bin/golangci-lint run ./... --fix
|
| |
|
|
|
|
|
|
|
|
|
| |
After #6066, we have started to see a number of log messages about
bench/corpus uploads aborted due to context cancelation. These messages
are not of any value.
Ignore Errorf() calls where one of the arguments encloses a
context.Canceled error. This is probably a bit hacky, but at least
prevents repeating errors.Is(err, context.Canceled) for every call that
may be canceled.
|
| |
|
|
|
| |
1. Use context for the goroutines termination.
2. uploadCoverJSONLToGCS reached 8 params, refactor.
|
| | |
|
| |
|
|
|
| |
Each fuzzing session costs 2G-13G now. It looks too much.
The data is highly redundant (jsonl) thus compression should help.
|
| |
|
|
|
|
| |
Some functions are not the struct members now.
Some functions deleted.
Client mock generated.
|
| |
|
|
|
| |
PublishGCS param now controls the CoverProgramsPath targets too.
Previously it controlled only CoverUploadPath and CorpusUploadPath.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
Move the logic from syz-ci to pkg/instance to make it reusable.
In case of a failure without a crash report, report the issue as a
SYZFATAL crash instead of just printing to the error log.
|
| |
|
|
|
|
|
|
| |
We don't really need an HTTP server when running syz-manager during kernel
image testing and when running syz-diff automatically.
Don't require the config to be set and don't start the HTTP server in
this case.
|
| |
|
|
|
|
| |
ManagerCmd transparently restarts the instance in case of crashes, so we
should better be cleaning up the bench file within its loop, rather than
in manager.go.
|
| |
|
|
|
|
|
| |
The introduction of the ManagerDashapi interface
unintentionally overrode the nil checks on the manager's
dashboard value. This change sets the interface value
only if there is a valid dashboard.
|
| |
|
|
|
|
| |
This unifies the build() and clean() interfaces such that if a custom
compiler or make binary is provided in the manager or bisection config,
they can be taken into account by the clean() interface.
|
| |
|
|
|
|
| |
Certain environments might need a specific make command or wrap make
calls with extra logic. This lets users provide a path to a custom make
binary.
|
| |
|
|
|
|
|
| |
Some commits don't live long remotely.
It sometimes happens we need them later to:
1. Merge coverage.
2. Mention during communication.
|
| |
|
|
|
|
|
| |
We currently observe episodic "job: reproducer consistency is empty"
error messages, but there's little one can do with them.
Make them more actionable.
|
| |
|
|
|
| |
Let's have a bit more introspection into the asset storage deprecation
code.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
If we failed to build/test the current tip of the tree, it seems that we
still stay on that commit, which may lead to problems in fix commit
collection, coverage report generation and in determining the right
people to Cc.
Always reset to the last successfully built kernel commit before
restarting a syz-manager instance.
Closes #5333.
|
| |
|
|
|
|
|
| |
Handle SIGKILL (exit code = 137) on osutil.Run() during Linux kernel image
building and return build.InfraError without reporting.
Fixes: https://github.com/google/syzkaller/issues/5317
|
| |
|
|
|
| |
Collect and periodically upload the bench information for every running
syz-manager.
|
| |
|
|
| |
The latter is a better suitable name.
|
| |
|
|
|
| |
The parameter defines the maximum number of CPUs involved in the kernel
build process.
|
| | |
|
| |
|
|
|
|
|
| |
Move all syz-fuzzer logic into syz-executor and remove syz-fuzzer.
Also restore syz-runtest functionality in the manager.
Update #4917 (sets most signal handlers to SIG_IGN)
|
| |
|
|
|
| |
For GCE-based fuzzing, we need to bind to a real networking interface to
accept connections from the VMs.
|
| |
|
|
|
| |
Currently they can collide with the main instance and fail.
Use unique ports for test instances.
|
| |
|
|
|
| |
Add smoke testing mode to manager and use it in syz-ci
instead of pkg/instance which uses syz-fuzzer binary.
|
| |
|
|
|
|
|
|
| |
This shouldn't be needed now.
After copying files we need to regenerate syzkaller descriptions,
but all make steps that build Go binaries already depend on "descriptions" target.
We also need to update executor/common_ext.h for C repros,
but after switching to go:embed, this shuold be handled automatically as well.
|
| |
|
|
|
| |
Flush manager coverage report generator after requesting JSONL report.
We won't use coverage reports after this point, but it consumes gigs of RAM.
|
| |
|
|
|
| |
I observe the reports with 0 len.
I'm sure it happens because of the connection timeouts etc.
|
| |
|
|
| |
It currently uses ci level dashboard_client.
|
| |
|
|
|
| |
dashboard_client maps 1:1 to the namespace
upstream is the only exception with 2 clients
|
| | |
|
| | |
|
| |
|
|
| |
Let's have more insight into the individual syz-managers.
|
| |
|
|
| |
If there's no newer kernel revision, do not stop kernel fuzzing.
|
| |
|
|
|
| |
If the kernel build is broken, we must have already filed a bug for it.
Let's just print to the logs instead of recording an error.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Introduce a new manager config -- the maximum allowed (non-)freshness of
the kernel image that we fuzz. Once the kernel image is old enough and
we're unable to build a newer version, don't start the instance.
Enforce the restriction only after we have tried to build a newer kernel
and failed.
|
| |
|
|
|
|
|
| |
Fix to
[4f9b680](https://github.com/google/syzkaller/commit/4f9b680bf7d56a0023c4ec0e87207c77de7d276a),
which broke kernel builds by changing build directory when
kernel_src_suffix is used.
|