| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
This should fix our broken bisections.
Closes #6136.
|
| |
|
|
| |
./tools/syz-env bin/golangci-lint run ./... --fix
|
| |
|
|
|
|
| |
What we need is the category for "matched unknown KASAN bug".
This king on bugs should be recategorised.
The final goal is to keep this category empty.
|
| |
|
|
| |
We want to prioritize KASAN bugs differently.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There's no sense to react to `git checkout` or `git fetch` which failed
due to network problems by re-cloning the whole repository - that
operation will fail just as well.
Detect at least one kind of such problems and just return an error from
the Poll() method, without wiping everything out.
For now, don't add tests as we would need some real remote git server
implementation to properly test it. Using a folder as a "remote"
repository, like we do in other tests, won't ever trigger networking
errors.
Closes #6099.
|
| |
|
|
|
|
|
| |
This partially reverts commit 43f51a00700e5960fc890e6c3d596846757bf29d
to restore vcs.TreeLink and html.SetGlobSearchPath.
This broke internal code.
|
| |
|
|
|
|
|
|
|
|
| |
Rename the method to LatestCommit and make it more flexible:
1) Return the commit date alongside the commit hash.
2) Rename the time filter to highlight that it's non-inclusive.
3) Make it possible to query the commits newer than the specified commit
hash.
It will let us poll lore archives more efficiently.
|
| |
|
|
|
| |
Otherwise we need to backport too many fix commits to address build/boot
errors.
|
| |
|
|
|
|
|
|
| |
The bug is easily triggerable during fuzzing / running reproducers and
it was present in torvalds for ~1.5 months.
Backport it when building these revisions in order to not derail the
bisections.
|
| |
|
|
|
| |
Otherwise we will not be able to bisect 3 months of Linux kernel
history.
|
| |
|
|
|
|
|
| |
The commit should fix the bisections for the period of 2-3 months.
See e.g. this failed bisection:
https://syzkaller.appspot.com/x/bisect.txt?x=124a9200580000
|
| | |
|
| |
|
|
|
| |
go install golang.org/x/tools/cmd/deadcode@latest
deadcode -test ./...
|
| |
|
|
| |
They are shorter, more readable, and don't require temp vars.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The current common vcs interface and its implementations are designed to
support a very big number of situations (git modules, cleaning up
complex state, etc), which is too heavy and restrictive when we just
need a thin wrapper over the git command that supports a few basic
operations.
Refactor pkg/vcs to split out the wrapper code from the big git
implementation of the vcs.Repo interface.
Export the wrapper to enable reuse in other parts of the system.
|
| |
|
|
| |
Support filtering by the commit date.
|
| |
|
|
|
|
| |
Invoke `jiri update` twice (once from the fuchsia
bootstrap script, then as a standalone command) when
initializing a new fuchsia checkout.
|
| |
|
|
| |
It unblocks the bisection for the period of Jan 2021-Mar 2021.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a temporary workaround for managing a
fuchsia checkout:
- Mark the repo as "precious" so that checkout
operations don't delete GN args and other build
configuration state. In a follow-up, this will
be replaced by a fuchsia-specific `repair` method
using `fx clean`.
- Checkout operations apply only to fuchsia.git, which
has a chance of creating inconsistencies between
versions of fuchsia and its dependencies. The main
poll workflow (using `jiri`) is not affected by this
problem, but bisection workflows may fail. This will
be fixed in a follow-up by checking out branches and
commits from fuchsia's global integration repo.
|
| |
|
|
| |
Co-authored-by: eep@google.com
|
| |
|
|
| |
Provide a functionality to extract the files affected by a git patch.
|
| | |
|
| |
|
|
| |
Add Commit.Patch with patch body.
|
| |
|
|
|
|
|
| |
Currently we have HeadCommit function that returns info
about the HEAD commit. Change it to a more flexible Commit
function that can return info about any commit.
This will be used in future changes.
|
| |
|
|
|
|
|
| |
Some commits don't live long remotely.
It sometimes happens we need them later to:
1. Merge coverage.
2. Mention during communication.
|
| |
|
|
|
| |
Every commit checkout takes >3 seconds.
Let's optimize this operation to save on large merges.
|
| |
|
|
|
| |
Lint started warning about duplicate "gvisor" const in pkg/cover.
Add gvisor/starnix consts to sys/targets package to avoid duplication.
|
| |
|
|
|
| |
Fix checking of Logf, it has string in 0-th arg.
Add checking of t.Errorf/Fatalf.
|
| |
|
|
|
|
|
| |
Akaros support is unused, it was shutdown on syzbot for a while,
the akaros development seems to be frozen for years as well.
We have a bunch of hacks for Akaros since it supported
only super old gcc and haven't supported Go. Remove it.
|
| |
|
|
|
|
|
|
|
|
|
| |
There's unfortunately no consistency in how mail.ParseAddress reacts to
parentheses in display names.
Versions before 1.22 used to keep them, 1.22+ cut them out.
For syzbot operation the difference is not very significant, but it makes
our tests too version dependent. Let's just omit parentheses from the
test cases.
|
| |
|
|
|
|
|
| |
Bisection should not fail if the Kconfig or the baseline config have issues.
Broken kernel sources might lead to issues when parsing Kconfig, ignore this and
proceed with the original config. If the baseline config is not parseable,
proceed anyway as this is an optional parameter to begin with.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The approach we used works perfectly for all commits, but they must be
referenced by the full 40 character hash. In almost all cases, users
would prefer to use the shorter one.
If the commit hash is not 40 characters long, fetch the whole git tree.
The only unsupported scenario is fetching a commit that is referenced by
custom refs/* by its short hash. It's unlikely there's anything we can
do here.
|
| |
|
|
|
|
|
|
|
| |
This should make syzkaller only fetch the commits relevant for further
processing. Also, specifying the exact commit/branch name to fetch
allows us to access commits from custom refs.
Test the new behaviour and double-check that remote tags fetch was not
broken.
|
| |
|
|
| |
It's not needed anymore.
|
| |
|
|
| |
To unblock #4285.
|
| |
|
|
|
|
|
|
|
|
| |
If the remote repo's tags conflict with the local ones, `git fetch` may
fail with `error: cannot lock ref %: % exists`.
It seems that the only way to restore the repository in this case is to
do `git fetch` with `--prune --prune-tags`. Since this also forces the
repository to forget all tags not present in the remote, let's do it
only when we got the error message.
|
| |
|
|
|
|
|
|
|
|
| |
For older bugs (or for bugs on stable trees), our cause bisection
strategy times out while trying to iterate over all reachable tags.
Try to be smarter and only take a subset of them, thus limiting the time
we spend detecting the bug-free release.
Closes #3376.
|
| |
|
|
| |
First check if the cmdline config is already present.
|
| |
|
|
|
|
|
|
|
|
| |
The following error appears when bisecting older Linux versions:
check.c: In function 'validate_call':
check.c:2865:58: error: '%d' directive output may be truncated
writing between 1 and 10 bytes into a region of size 9
[-Werror=format-truncation=]
2865 | snprintf(pvname, sizeof(pvname), "pv_ops[%d]", idx);
|
| |
|
|
| |
Also, slightly refactor the code to facilitate testing.
|
| |
|
|
|
|
|
|
| |
These backports are also specified in syz-ci configs, which are stored
as plain JSON files.
Add a special dummy field that will be used for remembering the
rationale for the backport as well as useful links.
|
| |
|
|
|
|
|
|
| |
If the guilty commit is recent enough, it is possible that we'll be
testing a revision where the problem is not yet introduced.
Add a new field that holds the guilty revision and check for it every
time a patch is to be applied.
|
| |
|
|
|
|
| |
The transform() call is assumed to be idempotent, so let's also run it
before all predicate runs. It will ensure that we return exactly the
same config from getConfig() as the one that was actually tested.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
So far we don't really need it.
There's also a problem that we only find commits within a certain time
frame (5 years fro, now), so for old-introduced problems we cannot
reliably determine their presence.
It does not seem to be worth it to re-write the GetCommitsByTitles logic
now.
|
| |
|
|
|
|
|
|
| |
It might be the case that the kernels that are being fuzzed on syz-ci
require their own backports to build/test older revisions during
bisection.
Let users specify it in the syz-ci config.
|
| |
|
|
|
|
| |
Factor out the code that cherry-picks missing fixes to a Linux repo.
Add two more commits that address issues with older kernel revisions.
|
| |
|
|
|
| |
We also need to disable CONFIG_PROVE_LOCKING, which forces
CONFIG_LOCKDEP to be enabled.
|
| |
|
|
|
|
|
|
| |
Let's keep it enabled for newer Linux kernel versions as it keeps the
environment closer to the one where the bug happened.
We disable KCOV in baseline configs, so we'll try to drop it at the
kernel config bisection stage anyway.
|