| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
API requests episodically fail due to internal datastore errors, some timeouts, etc.
Failure of some requests is especially unpleasant and leads to lots of wasted work
(uploading of syz-ci build info, job completion, etc). So we retry requests
several times. We do this always for all requests, since we don't expect any of them
to legitimately fail (we don't send malformed requests), and it won't harm for any
request types.
|
| |
|
|
| |
Any is the preferred over interface{} now in Go.
|
| |
|
|
|
| |
The API method can be used to send a raw email on behalf of the GAE
instance.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Context: #5829.
Let's not pretend that the revoked reproducer never existed and still
report it. It will avoid unexpected side-effects for the higher-level
logic.
There may be better ways to resolve the bug, but let's first just get it
fixed to prevent syzbot from spamming the mailing lists.
Add a test to verify the new behavior.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previous implementation store only the summary of processed records.
The summary was <1GB and single processing node was able to manipulate the data.
Current implementation stores all the details about records read to make post-processing more flexible.
This change was needed to get access to the source manager name and will help to analyze other details.
This new implementation requires 20GB mem to process single day records.
CSV log interning experiment allowed to merge using 10G.
Quarter data aggregation will cost ~100 times more.
The alternative is to use stream processing. We can process data kernel-file-by-file.
It allows to /15000 memory consumption.
This approach is implemented here.
We're batching coverage signals by file and store per-file results in GCS JSONL file.
See https://jsonlines.org/ to learn about jsonl.
|
| | |
|
| |
|
|
| |
It may help to compress huge coverage json w/o OOM.
|
| |
|
|
|
|
|
| |
I don't see any visible problems but the records in DB are not created.
Let's report the amount of records created at the end of the batch step.
+log the names of the managers
|
| |
|
|
| |
It enables us to see the manager unique coverage.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Syscall attributes are extended with a fsck command field which lets
file system mount definitions specify a fsck-like command to run. This
is required because all file systems have a custom fsck command
invokation style.
When uploading a compressed image asset to the dashboard, syz-manager
also runs the fsck command and logs its output over the dashapi.
The dashboard logs these fsck logs into the database.
This has been requested by fs maintainer Ted Tso who would like to
quickly understand whether a filesystem is corrupted or not before
looking at a reproducer in more details. Ultimately, this could be used
as an early triage sign to determine whether a bug is obviously
critical.
|
| | |
|
| | |
|
| |
|
|
| |
dashboard/app knows about subsystems more
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
This format is much better suitable for our API since we're including a
potentially very big binary blob into every request.
No changes have to be made on the server side -- it already supports
both formats.
Hopefully it will help remediate #4495.
|
| |
|
|
|
|
|
|
| |
Poll missing backport commits and, once a missing backport is found to
be present in the fuzzed trees, don't display it on the web dashboard
and send an email with the suggestion to close the bug.
Closes #4425.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
In some cases, we derail during bug reproduction and end up finding and
reporting a reproducer for another issue. It causes no problems since
it's bucketed using the new title, but it's difficult to trace such
situations - on the original bug page, there are no failed reproduction
logs and on the new bug page it looks as if we intended to find a
reproducer for the bug with the new title.
Let's record bug reproduction logs in this case, so that we'd also see
a failed bug reproduction attempt on the original bug page.
|
| |
|
|
|
|
|
|
|
|
|
| |
There are cases when syz-manager is killed before it could finish bug
reproduction. If the bug is frequent, it's not a problem - we might have
more luck next time. However, if the bug happened only once, we risk
never finding a repro.
Let syz-managers periodically query dashboard for crash logs to
reproducer. Later we can reuse the same API to move repro sharing
functionality out from syz-hub.
|
| |
|
|
|
| |
This statistics allows us to better estimate the amount of coverage that
is lost after every syzbot instance is restarted.
|
| |
|
|
| |
Define a pkg-only view of the required dashapi methods.
|
| |
|
|
|
| |
It will help users better focus on the problems they have identified as
important themselves.
|
| |
|
|
|
|
| |
Make the tool more flexible by supporting two modes of operation:
1) The already existing mode -- upload the results to dashboard.
2) The local mode -- save parsed LKML discussions as JSON files.
|
| |
|
|
|
|
|
| |
This will help analyze reasons for bug reproduction failures.
This commit does not include visual display of the results, it will
follow later.
|
| |
|
|
|
| |
Add a new CrossTree field to dashapi.BisectResult in order to
distinguish fix candidate results from normal fix bisections.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
If tree origin assessment code has identified that the bug is not
reproducible in a tree from which we merge/cherry-pick commits, use fix
bisection to identify that commit. This can e.g. be used to find fixing
commits that were not backported from Linux kernel mainline into LTS
branches.
In case of bisection errors, re-do such jobs every 30 days.
Remember in the Bug structure whether there's a fix candidate and return
the details in the full bug info API query.
|
| |
|
|
|
|
|
| |
For bisections, only return it if it's successful. We don't seem to be
interested in specific values for jobs anyway.
Do the same for KernelCommitDate.
|
| |
|
|
|
| |
This will let us use the same code for sampling-based generation of
bisection jobs as well.
|
| | |
|
| |
|
|
|
| |
De-facto BugReport anyway refers to a specified crash and not just to
the bug in general. Let's also include the Manager field there.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
Changes to our rootfs, compilers or bisection logic regularly cause
regressions in our bisection accuracy. Retrying them currently entails
fiddling with the GCP datastore directly or mass deleting all failed
bisections.
This change will allow us to retry specific bisections with a single
click.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
If the label is not user-set and the config specifies a message for it,
send a bug notification.
If the label is related to bug origin testing, attach the list of tested
trees.
|
| | |
|
| |
|
|
|
| |
Display them as a collapsible block on the bug info page. Use colors to
distinguish results.
|
| |
|
|
|
|
|
| |
This is a quite generic information that can be useful not just for
templating, but also for API calls.
Reuse the already existing dashapi.Commit structure.
|
| |
|
|
|
| |
If the bisection failed due to infrastructure problems, let's retry it
in 7 days.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
If merge base repo & branch are specified, syz-ci will first calculate
the merge base between KernelRepo + KernelBranch and MergeBaseRepo +
MergeBaseBranch and then it will execute patch testing on the latest
commit reachable from both.
If there's no such commit or several ones are equally good, abort the
job with an error.
Also, support a TreeOrigin job flag that will be needed later.
|
| |
|
|
|
| |
To make reports better distinguishable, include the month and the year
when the report was generated. E.g. "Monthly ext4 report (Jan 2000)".
|
| |
|
|
|
|
| |
DiscussionReport are the discussions started by syzbot.
All other discussions that Cc syzbot or mention its bugs are
DiscussionMention.
|
| |
|
|
|
|
|
|
| |
Bugs are also mentioned in mass reminders, treat it as a separate
discussion type.
Later we'll want to limit the number of DiscussionReminder discussions
we show on a bug page, so this information will be very useful.
|
| |
|
|
|
|
|
|
|
| |
Collect the information about the discussions under bug reports and
patches that target the reported bugs.
For now only Lore discussions are supported.
Display the discussion list on the bug info page.
|
| |
|
|
| |
This will make FullBugInfo's contents much more useful.
|
| |
|
|
|
|
| |
If the `#syz regenerate` command is sent in response to a bug list,
dashboard will schedule its regeneration the next time the corresponding
cron job is run.
|
| |
|
|
|
|
|
|
|
| |
Once in a month, collect for each subsystem the list of bugs that are
still open on the syzbot dashboard and send an email to the
corresponding mailing list.
Support manual moderation of such reminders, we'll need that at least
for the time being.
|
| |
|
|
|
|
| |
Only include the question mark sign for automatically inferred
subsystems. For user-set subsystems, just put tags in the brackets:
[net] [fs].
|