| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
Any is the preferred over interface{} now in Go.
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
| |
./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.
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
| |
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.
|
| |
|
|
|
| |
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.
|
| |
|
|
|
| |
The linters are complaining about a too high cyclomatic complexity.
Split out a ManagerConfig.validate() method.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
We used GetCommitsByTitles() for commit info querying and it looks quite
far back into the history. But the ListRecentCommits() call only looked
at the last 1.5 years, which was causing problems for bugs that were
fixed a long time ago.
Use GetCommitsByTitles() in Manager's pollCommits(). Sample commits in
case dashboard requests too many to be checked.
Test pollCommits().
Closes #4347.
|
| |
|
|
|
| |
filepath.Join() will ignore empty parameters, so we don't need these
checks.
|
| |
|
|
|
| |
This is used to add a suffix to the kernel_src config field. This is
used in Android where kernel source is under .../kernel/aosp/.
|
| |
|
|
|
|
| |
Now that we also support checking whether the guilty commit is present,
we can afford to share the custom backport list among all syz-ci
managers in a number of cases.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
Earlier `syz-ci: don't publish uploaded files` commit completely
disabled the GCS object publishing after each object.
However, it turns out that otherwise the objects quickly lose the
`public to internet` flag.
Make the option configurable.
|
| |
|
|
| |
This will enable automatic subsystem assignment.
|
| |
|
|
|
| |
It should be defined by the bucket's settings and not for individual
files.
|
| |
|
|
|
| |
1) Set the name of the instace to improve log analysis.
2) Use log.Errorf for errors that deserve human attention.
|