On Mon, Jan 15, 2018 at 12:46:52AM -0800, syzbot wrote:
>
> syzkaller hit the following crash on
> 2c1cfa49901839136e578ca516a7e230182da024
> git://
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/master
> compiler: gcc (GCC) 7.1.1 20170620
> .config is attached
> Raw console output is attached.
> C reproducer is attached
> syzkaller reproducer is attached. See
https://goo.gl/kgGztJ
> for information about syzkaller reproducers
(1) Saying that a .config is attached isn't really useful. What's
especially interesting is whether or not it reproducible or not, and
if so, whether it's available as a C reproducer, or just as a
syzkaller reproducer. So I'd suggest editing down the above.
(2) I would suggest moving the "See
https://goo.gl/kgGztJ for
information about syzkaller reproducers" to the syzkaller reproducer
as a comment. In fact, it's not immediately obvious that the
repro.txt is in fact the syzkaller reproducer. So labelling it as
such with the pointer for more information there would be useful.
(3) I would suggest moving the .config towards the end, since it's not
terribly information-dense. Forcing the developer to scroll past five
thousand plus lines of .config can be... irritating.
Also, using "savedefconfig" to create a more minimal config file[1]
(with the instruction to use "make olddefconfig" to reconstitute the
full config) might also be helpful. For example, [2] is only 174
lines and 4k, instead of 5,128 lines and 178k.
[1]
https://lwn.net/Articles/397363/
[2]
https://github.com/tytso/xfstests-bld/blob/master/kernel-configs/x86_64-config-4.14
(4) The console output with the WARN_ON or BUG is going to be the most
useful. The fact that it's located after the config file, and has a
content-type of application/octet-string, has already been discussed.
Moving it so that it is one of the first things that can be read in
the mail message would be incredibly helpful.
(5) In this case, the console log was cut off too soon:
[ 25.520375] ======================================================
[ 25.520376] WARNING: possible circular locking dependency detected
[ 25.520381] 4.15.0-rc7+ #261 Not tainted
[ 25.520383] ----------------------------------------------
The full lockdep output was not included, and that's the most
interesting part! Very often from looking at the lockdep output, the
developer can often figure out what went wrong, and perhaps craft a
fix much faster. Without the full lockdep output, you are forcing the
developer to reproduce the failure, which means building a kernel with
the given config file, running that kernel in a VM, and then building
the reproducer and running it in the kernel. This can easily take 30+
minutes before the developer can even start trying to figuring out
what the problem might be.
(6) Something else to consider is whether *all* of this information
needs to be in the mail message. If the full console log is too
large, and you can only include a subset of the log, perhaps the full
log can be made available via Google Cloud Storage?
For example, in gce-xfstests the full test artifiacts are available at
a URL such as:
gs://gce-xfstests/results/results.tytso-20180107192932.4.15.0-rc4-xfstests-00005-g22446423108f.tar.xz
... although the user just has to run a command such as:
gce-xfstests get-results --unpack tytso-20180107192932
... where "tytso-20180107192932" is in the e-mail report in a place
where it can be easily cut and pasted into a command line to get the
full test results downloaded and unpacked into a directory in /tmp.
----------------------------
In summary, if you can structure the e-mail so the most interesting
bits are towards the beginning of the message, and in application/text
form so it is easily read without having to take special action ---
and if it includes all of the interesting bits of the lockdep report,
it's likely this will make syzkaller reports much more likely to be
acted upon.
Hopefully most of the suggestions in this e-mail are relatively low
effort for the Syzkaller team, and will have a large impact out of
proportion of the work needed to implement them.
Cheers,
- Ted