Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
70 lines (49 sloc) 3 KB
== What JSBugMon is ==
JSBugMon is a tool for automated tracking of JavaScript engine bug reports in
Mozilla's Bugzilla database. It is capable of automatically extracting tests
from bug reports that crash or assert. It is also able to extract the affected
revision, guess required runtime options and architecture and determine what
build type is required to reproduce.
== What JSBugMon needs to track a bug ==
In order to track a bug, JSBugMon must first be able to find a working test
(that crashes or asserts). The test can be an attachment to the bug or be part
of the first comment (comment 0), even if the comment includes other text that
does not belong to the test. The second requirement is an HG revision specified
in comment 0.
Using this data, JSBugMon will try to build a JS shell with the specified HG
revision and try to reproduce the problem using the given test. It try different
build types, runtime options and architectures, but will prefer the architecture
specified in the bug. If tracking for a bug was requested, but JSBugMon was not
able to reproduce/track the bug, it will state this in the bug comments.
== How JSBugMon can be used ==
While Mozilla's JSBugMon instance performs several tasks on its own and fully
automatic (e.g. verification of fixed security bugs), most interaction needs to
be explicitly requested using the whiteboard. Commands for JSBugMon are added in
the whiteboard with a special tag that looks like this:
Valid commands are:
update - The most basic command, it requests tracking for the bug. JSBugMon will
first attempt to reproduce the bug. If reproduction fails, it will comment and
unset the update flag. If reproduction succeeds, it will remain quiet and
comment once the bug no longer reproduces.
reconfirm - Only valid together with the update command. It will perform the
same steps as for tracking, but even on successful reproduction, it will comment
in the bug. After doing so, it will ignore the bug (by setting the ignore flag,
see below) until otherwise requested.
ignore - JSBugMon will ignore any bug that has this command in it, regardless of
other commands. JSBugMon also sets this flag automatically after certain
bisect - This command will cause JSBugMon to perform a bisection to find the
regressing changeset (the changeset that introduced the bug).
bisectfix - This command will cause JSBugMon to perform a bisection to find the
fixing changeset in case the bug does no longer reproduce.
verify-branch=b1;b2;b3.. - Using this command, it is possible to check if the
test reproduces on one or more specified branches (e.g. mozilla-aurora).
JSBugMon will comment with the result for every branch in the bug.
== What JSBugMon currently supports (or does not support) ==
JSBugMon currently only works with regular 32 and 64 bit Linux builds. It does
not support:
* Threadsafe builds
* Builds with additional flags like --enable-more-determinism
or --enable-root-analysis
* Checking a test with Valgrind or ASan