Commit Graph

7885 Commits

Author SHA1 Message Date
Christian Holler
53f361c007 Bug 1635762 - Switch libFuzzer upstream to git and add local patches. r=truber
Differential Revision: https://phabricator.services.mozilla.com/D74040
2020-05-11 12:45:07 +00:00
Mihai Alexandru Michis
2df205e3f0 Backed out changeset 14b092e7a974 (bug 1635762) for causing failures in browser_Telemetry_timestamp_test.js
CLOSED TREE
2020-05-11 17:00:53 +03:00
Christian Holler
b8917ab3a4 Bug 1635762 - Switch libFuzzer upstream to git and add local patches. r=truber
Differential Revision: https://phabricator.services.mozilla.com/D74040
2020-05-11 12:45:07 +00:00
Sylvestre Ledru
1929dd1ab3 Bug 1519636 - Reformat recent changes to the Google coding style r=andi
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D73347
2020-05-09 14:51:53 +00:00
Jon Bauman
ff79fde159 Bug 1624056 - Properly vendor mp4parse-rust. r=kinetik
This requires --build-peers-said-large-imports-were-ok since
third_party/rust/mp4parse/src/lib.rs is 113KB. This code is just moving from
media/mp4parse-rust to third_party/rust, so it's not really adding to net code
size.

Differential Revision: https://phabricator.services.mozilla.com/D74488
2020-05-09 00:36:48 +00:00
Chris Fronk
af8a02cc9d Bug 1512991 - Add JsonWriteFunc::Write to take string length. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D72560
2020-05-08 16:24:31 +00:00
thomasmo
59be1c47cd Bug 1635608 - Update OpenVR source code to use Unix line endings r=daoshengmu
This change simply changes line endings to make diffing easier with updates from OpenVR, which have Unix line endings.
Further, .clang-format-ignore, does not seem to work for wildcard to match a directory and subdirectory, so all files are listed individually.

Differential Revision: https://phabricator.services.mozilla.com/D74100
2020-05-07 20:20:39 +00:00
Geoff Brown
99f9b87119 Bug 1603510 - Allow multi-word $EDITOR in 'mach try syntax --edit-presets'; r=bc
Differential Revision: https://phabricator.services.mozilla.com/D74416
2020-05-08 17:54:10 +00:00
Gerald Squelart
3b34acf6e6 Bug 1632750 - Tweak MOZ_PROFILER_STARTUP_ENTRIES default values - r=canaltinova
These defaults were per process and there are usually around 8 processes.
Now these sizes apply to all processes, so they can be 8 times as big (but less on Android where memory may be more limited.)

Not changing Base Profiler defaults, as its buffer is not cross-process controlled.

Differential Revision: https://phabricator.services.mozilla.com/D73215
2020-05-08 03:36:10 +00:00
Gerald Squelart
a36880438c Bug 1632750 - ProfilerChild handling update and destruction requests - r=canaltinova
This implement the child side:
When the first request for update arrives, it connects to the local chunk manager, to receive its updates.
If multiple updates are received, they are folded into one.
If there are both an update and a pending request, the request is fulfilled with the update and local data is reset.
And ProfilerChild handles "destroy" instructions to destroy local chunks.

At this point, the whole machinery is in place, and all combined profile buffers used in all processes should use around the maximum amount allowed.
A bit more memory may still be used, e.g., due to IPC delays, and because of recycling which keeps some unused chunks alive for later reuse. But overall that should be a small amount compared to the usual user-requested limit.

Differential Revision: https://phabricator.services.mozilla.com/D72369
2020-05-08 03:35:42 +00:00
Gerald Squelart
9456ec87dd Bug 1632750 - ProfileBufferGlobalController::HandleChunkManagerUpdate logic - r=canaltinova
The logic part of the controller receives all updates, and makes decisions to destroy old chunks when the memory limit is reached.

Differential Revision: https://phabricator.services.mozilla.com/D72368
2020-05-08 03:35:25 +00:00
Gerald Squelart
80fd31a8c3 Bug 1632750 - ProfileBufferGlobalController - r=canaltinova
When there is at least one ProfilerParent (i.e., we are interacting with at least one child process) AND the parent profiler is running, the ProfilerParentTracker sets up the ProfileBufferGlobalController that will manage all chunks.
As a first step, it connects with the local chunk manager (to receive chunk updates), and sends update requests to all children.

(The actual controller logic is not implemented in this patch, nor is the ProfilerChild side, see following patches.)

Differential Revision: https://phabricator.services.mozilla.com/D72367
2020-05-08 03:35:12 +00:00
Gerald Squelart
811ee56c78 Bug 1632750 - New profiler IPDL functions to manage chunks across processes - r=canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D72366
2020-05-08 03:34:55 +00:00
Gerald Squelart
ddf7f185a4 Bug 1632750 - ProfilerParent::ProfilerWillStopIfStarted - r=canaltinova
The Gecko Profiler can notify the ProfilerParent when it's about to stop (if it was started, but the notification will happen even when it's not started).

Differential Revision: https://phabricator.services.mozilla.com/D72365
2020-05-08 03:34:32 +00:00
Gerald Squelart
f1439fbad0 Bug 1632750 - profiler_get_controlled_chunk_manager - r=canaltinova
The Gecko Profiler can provide its current controlled chunk manager.
It is the responsibility of the caller to keep track of the state of the profiler, to avoid using the chunk manager after it's discarded.

Differential Revision: https://phabricator.services.mozilla.com/D72364
2020-05-08 03:34:30 +00:00
Greg Tatum
6066dc40b3 Bug 1628073 - Make the defaults for the profiler settings nicer for mochitests; r=gerald
The defaults should serve our users. I did some profiling with mochitests
and the defaults weren't ideal. It would be nice if the profiler "just worked"
for most of the situations. It would be great to teach the environment variables
about presets, but for now this will make the profiler easier to use for our
users in the general case.

This patch adds both screenshots and updates the entries count. This causes
additional overhead, but people on low-end devices can still tweak the settings
to remove that overhead.

Differential Revision: https://phabricator.services.mozilla.com/D70091
2020-05-08 00:48:55 +00:00
Jonathan Watt
c6c74ac1f0 Bug 1636304. Fix and improve the Mermaid documentation. r=sylvestre
The second example, when copied and pasted, is completely borked since it
is not preceeded by the line that declares what follows to be a Mermaid
diagram. This change fixes that.

It also fixes the prose to read slightly less awkwardly in places.

Finally, this change also adds a link to the Mermaid Live Editor to make
readers aware of this useful tool.

Differential Revision: https://phabricator.services.mozilla.com/D74338
2020-05-07 23:16:00 +00:00
Simon Giesecke
61ad805d68 Bug 1626570 - Use CopyableTArray in ipdlc as member type for now. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D73685
2020-05-07 08:11:08 +00:00
Cosmin Sabou
c263a2a867 Merge mozilla-central to autoland. 2020-05-07 02:33:29 +03:00
Cosmin Sabou
5704c50d45 Merge autoland to mozilla-central. a=merge 2020-05-07 00:50:37 +03:00
Kartikaya Gupta
03498b143d Bug 1635142 - Update github-sync to use Authorization header instead of deprecated HTTP auth mechanism. r=kvark
Depends on D74066

Differential Revision: https://phabricator.services.mozilla.com/D74067
2020-05-06 16:09:40 +00:00
Kartikaya Gupta
447162a66b Bug 1635809 - Use |file| instead of |modifies| in the hg revset query to catch file deletions. r=kvark
Closer look at the man pages shows that the file() query will catch any file
changes, whereas the modifies() query will only capture files that were
modified, which excludes strict deletions.

Depends on D74065

Differential Revision: https://phabricator.services.mozilla.com/D74066
2020-05-06 16:09:23 +00:00
Kartikaya Gupta
2c61b5048f Bug 1635809 - Prevent crash in converter.py on debug output with non-ascii hg log data. r=kvark
This is just in debug output, so the fact that we ignore non-utf-8 chars is ok.

Depends on D74064

Differential Revision: https://phabricator.services.mozilla.com/D74065
2020-05-06 16:08:58 +00:00
Kartikaya Gupta
21f0ab510f Bug 1635809 - Update readme.md to include some semblance of debugging instructions. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D74064
2020-05-06 17:29:52 +00:00
Gerald Squelart
9eb780f5ef Bug 1635338 - profiler_is_locked_on_current_thread() now also checks for the buffer lock - r=gregtatum,canaltinova
profiler_is_locked_on_current_thread() is used to help users avoid calling `profiler_...` functions when the profiler may already have a lock in place, which would prevent a 2nd recursive lock (resulting in a crash or a never-ending wait).
So we must return `true` for any of:
- The main profiler mutex, used by most functions, and/or
- The buffer mutex, used directly in some functions without locking the main mutex, e.g., marker-related functions.

Differential Revision: https://phabricator.services.mozilla.com/D73789
2020-05-06 12:45:40 +00:00
Greg V
e65e9412b0 Bug 1634205 - Support Gecko Profiler and Base Profiler on FreeBSD r=mstange
- supports amd64 and arm64 (aarch64)
- uses LUL for stack walking

Differential Revision: https://phabricator.services.mozilla.com/D73162
2020-05-06 17:44:19 +00:00
Mihai Alexandru Michis
6c13bc9a50 Backed out changeset 2f5143da4986 (bug 1631584) for causing gv jobs to fail as exceptions.
CLOSED TREE
2020-05-06 02:23:54 +03:00
Markus Stange
16fc9519a1 Bug 1578726 - Stop looking for non-existent EnterJIT frames. r=gerald
At the time this code was written, JavaScript JIT entry trampolines were
emitting EnterJIT label frames that carried a stack address. From this stack
address, register values could be recovered that would allow native stack
unwinding to resume after getting lost in JIT code.

The EnterJIT label frame was removed in bug 1057082.

Differential Revision: https://phabricator.services.mozilla.com/D73939
2020-05-05 22:53:45 +00:00
Gerald Squelart
29ec866e31 Bug 1635196 - Make sure GetSymbolTableMozPromise promise is always fulfilled - r=mstange
In rare cases, a dispatch may fail (e.g., threads are shutting down), we should handle this failure by rejecting the promise on the spot.

Depends on D73791

Differential Revision: https://phabricator.services.mozilla.com/D73792
2020-05-05 21:06:15 +00:00
Gerald Squelart
32a725405b Bug 1635196 - GetSymbolTableMozPromise can fulfill the promise on any thread - r=mstange
It is not necessary to dispatch another task to the main thread to resolve/reject a MozPromiseHolder, because wherever this happens, the attached `Then` will do its own dispatch to the main thread.
Also, this removes a dispatch that could potentially fail, leaving the promise unfulfilled.

Depends on D73790

Differential Revision: https://phabricator.services.mozilla.com/D73791
2020-05-05 21:07:24 +00:00
Gerald Squelart
52ffb43ad5 Bug 1635196 - Make sure profile-gathering promise is fulfilled before destroying holder - r=mstange
While gathering profiles from child processes, some actions (e.g., shutting down, restarting the profiler) may reset the gathering operation.
In this case we must ensure that the promise is rejected if not already fulfilled, so that anyone waiting on it won't be blocked forever (and MozPromise enforces it in a MOZ_DIAGNOSTIC_ASSERT).

Differential Revision: https://phabricator.services.mozilla.com/D73790
2020-05-05 21:07:34 +00:00
Markus Stange
6725e6df9a Bug 1634784 - Remove MOZ_BASE_PROFILER and replace it with MOZ_GECKO_PROFILER everywhere. r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D73526
2020-05-05 21:44:11 +00:00
Markus Stange
1bb0550030 Bug 1631584 - Add profiler labels for JNI binding method/getter/setter/constructor calls. r=gerald,snorp,geckoview-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D71645
2020-05-05 21:42:21 +00:00
Ian Moody
a52653c73c Bug 1536556 - Extend no-throw-cr-literal ESLint rule to forbid and fix throw new Error(Cr.ERROR);. r=Standard8
Code should be using `throw Components.Exception("", Cr.ERROR);` instead,
since `new Error()` just converts the int value of the Cr.ERROR into a string,
whereas `Exception` constructs an Exception object with the result property set
to the Cr.ERROR value, so other code can identify it.

Differential Revision: https://phabricator.services.mozilla.com/D28074
2020-05-05 17:43:39 +00:00
Ian Moody
85f9392bc8 Bug 1536556 - Add custom no-throw-cr-literal ESLint rule, and enable it by default. r=Standard8
This rule is based on the ESLint built-in no-throw-literal. Cr.ERRORs are also
literals since they are just integers and so have all the same disadvantages of
no stack info.

TestInterfaceJS.js is explicitly testing handling of throwing raw Cr.ERRORs and
thus needs to stay.

Differential Revision: https://phabricator.services.mozilla.com/D28072
2020-05-05 15:00:50 +00:00
Ian Moody
011b59d595 Bug 1536556 - Replace raw thrown Cr.ERRORs with Components.Exception. r=mossop,remote-protocol-reviewers,marionette-reviewers,whimboo,necko-reviewers,geckoview-reviewers,valentin,agi
Raw Cr.ERROR don't get stack information, same as throwing JS literals instead
of `new Error()`s.

This was done automatically with a new eslint rule that will be introduced in
the next commit.  One instance of a raw Cr.ERROR was not replaced since it is
used in a test that specifically checks the preservation of raw Cr values in
XPCJS.  The rule will be disabled for that instance.

Differential Revision: https://phabricator.services.mozilla.com/D28073
2020-05-05 17:41:36 +00:00
Julien Wajsberg
a128c0d95a Bug 1589568 - Add some more logs in an intermittent profiler test r=gregtatum
Differential Revision: https://phabricator.services.mozilla.com/D73836
2020-05-05 14:57:45 +00:00
Julien Wajsberg
bd12d00b60 Bug 1589568 - Always stop the profiler after browser tests r=gregtatum
Differential Revision: https://phabricator.services.mozilla.com/D73835
2020-05-05 14:57:43 +00:00
undef1nd
42c2a99b17 Bug 1633130 - Add expected version for rustfmt lint,r=sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D72710
2020-05-05 09:56:50 +00:00
Gerald Squelart
bccea8601e Bug 1571171 - Clamp profiler capacity to allowed values - r=canaltinova
The profiler can be given any power of two, but there were no safety checks to ensure that the buffer had a minimum workable capacity (to hold at least 4 chunks, each capable of holding at least one stack sample), and also to prevent large buffers that could break the currently-supported 2GiB limit.

This fixes the issue with test_merged_stacks.js, which was requesting a too-small buffer. (This started when we switched to the chunk-based buffer, because the profiler was blindly using the provided number as maximum, and dividing that size by 4 for each chunk, which was not enough to hold a full sample in some builds.)

Differential Revision: https://phabricator.services.mozilla.com/D73212
2020-05-04 12:49:30 +00:00
Mitchell Hentges
ef1e204860 Bug 1635204: Mark flaky test, registers with bug r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D73733
2020-05-04 19:16:11 +00:00
Andrew Halberstadt
3220639fe4 Bug 1634484 - [tryselect] Change default ./mach try auto strategy to 'bugbug_reduced', r=marco
Depends on D73349

Differential Revision: https://phabricator.services.mozilla.com/D73350
2020-04-30 21:50:40 +00:00
Michael Hoffmann
595db05652 Bug 1545069 - report the mime type as specified by the response headers r=julienw,gerald,mayhemer
Differential Revision: https://phabricator.services.mozilla.com/D68481
2020-05-04 07:13:47 +00:00
Mitchell Hentges
6e1e037cd3 Bug 1569115 - Don't throw TypeError exception when using |./mach try chooser| r=rstewart
This was an issue around "six" and "click", this thread sheds some light:
https://github.com/pallets/click/issues/564.

This issue was reproducible by having a local python 2 flask app with Flask==1.0.2, Werkzeug==0.14.1 and Click==7.0. Upon self-shutdown, the TypeError was raised.

Upgrading Click to 7.1.2 resolves this issue both in that separate "reproduce app" and here in-tree.

Differential Revision: https://phabricator.services.mozilla.com/D73351
2020-05-01 14:45:40 +00:00
Matthew Gaudet
fd2c42d1ce Bug 1628343 - Remove Windows and OSX builds from sm-shell preset, and add 'sm-shell-all' preset r=tcampbell
After this patch:

```
$ ./mach try --no-push --preset=sm-shell
Task configuration changed, generating target task set
estimates: Runs 17 tasks (17 selected, 0 dependencies)
estimates: Total task duration 7:51:00
estimates: In the 61% percentile
estimates: Should take about 1:26:32 (Finished around 2020-05-01 08:30)
Commit message:
Fuzzy query=!win !osx 'spidermonkey | 'shell-haz

Pushed via `mach try fuzzy`
Calculated try_task_config.json:
{
    "env": {
        "TRY_SELECTOR": "fuzzy"
    },
    "tasks": [
        "hazard-linux64-shell-haz/debug",
        "spidermonkey-sm-arm-sim-linux32/debug",
        "spidermonkey-sm-arm64-sim-linux64/debug",
        "spidermonkey-sm-asan-linux64/opt",
        "spidermonkey-sm-compacting-linux64/debug",
        "spidermonkey-sm-fuzzing-linux64/opt",
        "spidermonkey-sm-gdb-linux64/debug",
        "spidermonkey-sm-mozjs-sys-linux64/debug",
        "spidermonkey-sm-nojit-linux64/opt",
        "spidermonkey-sm-nonunified-linux64/debug",
        "spidermonkey-sm-package-linux64/opt",
        "spidermonkey-sm-plain-linux64/debug",
        "spidermonkey-sm-plain-linux64/opt",
        "spidermonkey-sm-rootanalysis-linux64/debug",
        "spidermonkey-sm-rust-bindings-linux64/debug",
        "spidermonkey-sm-tsan-linux64/opt",
        "spidermonkey-sm-warp-linux64/debug"
    ],
    "version": 1
}
```

Differential Revision: https://phabricator.services.mozilla.com/D73439
2020-05-01 13:17:55 +00:00
David Teller
ded0c0d4ee Bug 1580448 - JSProcessActor tests;r=nika
Differential Revision: https://phabricator.services.mozilla.com/D69819
2020-04-30 16:45:14 +00:00
Simon Giesecke
4a9809b4f9 Bug 1626570 - Improve handling of copying arrays in tools/profiler/gecko. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D72317
2020-04-30 09:36:07 +00:00
Stefan Hindli
e22cd35728 Backed out 9 changesets (bug 1580448) for linux build bustages in /builds/worker/workspace/obj-build/dist/include/mozilla/dom/JSWindowActorChild.h CLOSED TREE
Backed out changeset 6b4db1a501df (bug 1580448)
Backed out changeset 677257a41457 (bug 1580448)
Backed out changeset 6db8de5fc125 (bug 1580448)
Backed out changeset fd7527c86239 (bug 1580448)
Backed out changeset bfbd3330b0a5 (bug 1580448)
Backed out changeset dafa80c63322 (bug 1580448)
Backed out changeset 2a1701831a6a (bug 1580448)
Backed out changeset 9b548bd38671 (bug 1580448)
Backed out changeset 358f764ae48b (bug 1580448)
2020-04-30 10:58:27 +03:00
David Teller
f700c5624c Bug 1580448 - JSProcessActor tests;r=nika
Differential Revision: https://phabricator.services.mozilla.com/D69819
2020-04-30 07:36:29 +00:00
Mitchell Hentges
26afa282b0 Bug 1634116 - Removes "mach try again" history migration r=rstewart
The history migration has been around since February 2019 and is ready for cleanup.

Differential Revision: https://phabricator.services.mozilla.com/D73099
2020-04-29 19:40:51 +00:00