Граф коммитов

133 Коммитов

Автор SHA1 Сообщение Дата
Mike Hommey 41cd2c96c2 Bug 1743832 - Autobootstrap fix-stacks if it's not available when needed. r=firefox-build-system-reviewers,andi
Differential Revision: https://phabricator.services.mozilla.com/D134118
2021-12-17 22:47:51 +00:00
Andrew Halberstadt 225e877c2b Bug 1696531: fix dmd.py and related tools to support python 3, r=bhearsum
Depends on D109729

Differential Revision: https://phabricator.services.mozilla.com/D109731
2021-06-14 15:31:42 +00:00
Sandor Molnar 6ceb5f92a7 Backed out 10 changesets (bug 1696531) for causing mochitest failures in TypeError: cannot use a string pattern on a bytes-like object. CLOSED TREE
Backed out changeset abc85e3c21b0 (bug 1696531)
Backed out changeset 82445e26060e (bug 1696531)
Backed out changeset 97771570e425 (bug 1696531)
Backed out changeset c3f229148f6c (bug 1696531)
Backed out changeset 9557ff3065bc (bug 1696531)
Backed out changeset 98d17a5f6886 (bug 1696531)
Backed out changeset b0eee4af2caf (bug 1696531)
Backed out changeset 544be24f74be (bug 1696531)
Backed out changeset ddcc795bf838 (bug 1696531)
Backed out changeset e5e76f56ceb9 (bug 1696531)
2021-05-06 23:57:56 +03:00
Andrew Halberstadt a2d458f2a1 Bug 1696531 - Keep Python 2 compatibility in tools/rb/fix_stacks.py for now, r=bhearsum
This file is also used by some browser-chrome tests which are still Python 2
for now. So let's not drop PY2 compat just yet.

Depends on D109728

Differential Revision: https://phabricator.services.mozilla.com/D111728
2021-05-06 19:51:36 +00:00
Ben Hearsum 16e50ef8ae Bug 1696531: fix dmd.py and related tools to support python 3 r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D109731
2021-05-06 19:51:34 +00:00
Bogdan Tara 4de76f4cdf Backed out 8 changesets (bug 1696531) for test_dmd.js and test_subprocess.js xpc failures CLOSED TREE
Backed out changeset 907102743c5f (bug 1696531)
Backed out changeset c631966a64c0 (bug 1696531)
Backed out changeset 754ce2bf288a (bug 1696531)
Backed out changeset 7129c9cfe519 (bug 1696531)
Backed out changeset dba2bea61b29 (bug 1696531)
Backed out changeset 33f3e86a5ce8 (bug 1696531)
Backed out changeset 7dcbb17a1578 (bug 1696531)
Backed out changeset 1f982303513f (bug 1696531)
2021-04-14 17:49:29 +03:00
Andrew Halberstadt cc560a87f0 Bug 1696531 - Keep Python 2 compatibility in tools/rb/fix_stacks.py for now, r=bhearsum
This file is also used by some browser-chrome tests which are still Python 2
for now. So let's not drop PY2 compat just yet.

Depends on D109728

Differential Revision: https://phabricator.services.mozilla.com/D111728
2021-04-14 13:54:27 +00:00
Ben Hearsum 42620225bf Bug 1696531: fix dmd.py and related tools to support python 3 r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D109731
2021-04-14 13:54:24 +00:00
Butkovits Atila 8b7a0827b5 Backed out 7 changesets (bug 1696531) for causing mochitest failures complaining about arguments.
Backed out changeset 52ba6bf74b55 (bug 1696531)
Backed out changeset c907d8324bcc (bug 1696531)
Backed out changeset 1f7ffffa368f (bug 1696531)
Backed out changeset 5002c2053444 (bug 1696531)
Backed out changeset 0b8c56f2f5c3 (bug 1696531)
Backed out changeset a8d8adae39b6 (bug 1696531)
Backed out changeset a7f9bd32a4c9 (bug 1696531)
2021-04-12 20:48:48 +03:00
Ben Hearsum df62fb3800 Bug 1696531: fix dmd.py and related tools to support python 3 r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D109731
2021-04-12 16:31:21 +00:00
Brindusan Cristian 2586a80626 Backed out changeset d47a138a3b50 (bug 1668903) for causing xpcshell failures. CLOSED TREE 2021-03-24 23:22:21 +02:00
Emilio Cobos Álvarez 9d7bb1aa62 Bug 1668903 - Port dmd.py to python3. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D98927
2021-03-24 20:45:56 +00:00
Paul Bone fd853f4aea Bug 1687221 - Refactoring in fix_stacks.py r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D102128
2021-02-01 03:51:26 +00:00
James Graham 6b73ec608c Bug 1678663 - Swallow exceptions during shutdown of fix_stacks.py, r=bc
Under Python 3 on Windows we sometimes get an OSError which may be a
race with the process exiting. There's not much we can do about
exceptions during shutdown so just ignore them.

Differential Revision: https://phabricator.services.mozilla.com/D99434
2020-12-14 14:11:10 +00:00
Ricky Stewart 02a7b4ebdf Bug 1654103: Standardize on Black for Python code in `mozilla-central`.
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.

5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-26 18:34:53 +00:00
Bogdan Tara da1098d4aa Backed out 10 changesets (bug 1654103, bug 1672023, bug 1518999) for PanZoomControllerTest.touchEventForResult gv-junit failures CLOSED TREE
Backed out changeset ff3fb0b4a512 (bug 1672023)
Backed out changeset e7834b600201 (bug 1654103)
Backed out changeset 807893ca8069 (bug 1518999)
Backed out changeset 13e6b92440e9 (bug 1518999)
Backed out changeset 8b2ac5a6c98a (bug 1518999)
Backed out changeset 575748295752 (bug 1518999)
Backed out changeset 65f07ce7b39b (bug 1518999)
Backed out changeset 4bb80556158d (bug 1518999)
Backed out changeset 8ac8461d7bd7 (bug 1518999)
Backed out changeset e8ba13ee17f5 (bug 1518999)
2020-10-24 03:36:18 +03:00
Ricky Stewart c0cea3b0fa Bug 1654103: Standardize on Black for Python code in `mozilla-central`. r=remote-protocol-reviewers,marionette-reviewers,webdriver-reviewers,perftest-reviewers,devtools-backward-compat-reviewers,jgilbert,preferences-reviewers,sylvestre,maja_zf,webcompat-reviewers,denschub,ntim,whimboo,sparky
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.

5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-23 20:40:42 +00:00
Dorel Luca 1ff59cb7a3 Backed out changeset 7558c8821a07 (bug 1654103) for multiple failures. CLOSED TREE 2020-10-22 03:51:06 +03:00
Ricky Stewart 50762dacab Bug 1654103: Standardize on Black for Python code in `mozilla-central`. r=remote-protocol-reviewers,marionette-reviewers,webdriver-reviewers,perftest-reviewers,devtools-backward-compat-reviewers,jgilbert,preferences-reviewers,sylvestre,maja_zf,webcompat-reviewers,denschub,ntim,whimboo,sparky
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-21 21:27:27 +00:00
Mike Hommey 6db78719c3 Bug 1662037 - Update fix-stacks to a version that does not need fileid. r=njn
Differential Revision: https://phabricator.services.mozilla.com/D88959
2020-09-01 08:58:14 +00:00
Geoff Brown cb19f2147e Bug 1647362 - Improve py3 compat in fix_stacks.py; r=bc
Use universal_newlines as a convenient way of treating the process I/O as text,
so string read/writes continue to succeed under python 3.

Differential Revision: https://phabricator.services.mozilla.com/D81774
2020-06-30 22:17:38 +00:00
Bob Clary 5cd323cd6f Bug 1642044 - Python 3 tools/rb/fix_stacks.py r=gbrown
Depends on D77660

Differential Revision: https://phabricator.services.mozilla.com/D77661
2020-06-01 23:14:05 +00:00
Bob Clary 450ddd2d42 Bug 1642044 - Python 3 tools/rb/find_leakers.py r=gbrown
Differential Revision: https://phabricator.services.mozilla.com/D77660
2020-06-01 23:14:30 +00:00
Nicholas Nethercote 9404f0620e Bug 1636859 - Shut down the `fix-stacks` child process when `fix_stacks.py` exits. r=glandium
Hopefully this will avoid some intermittent failures that occur when
`fix-stacks` is deleted at the end of a test run.

Differential Revision: https://phabricator.services.mozilla.com/D76980
2020-05-28 00:34:30 +00:00
Nicholas Nethercote e1d0a44791 Bug 1633901 - Add support for hiding `fix-stacks` errors. r=erahm
Differential Revision: https://phabricator.services.mozilla.com/D72958
2020-04-28 23:55:57 +00:00
Csoregi Natalia 1b3a4cf0fe Backed out changeset 9f796abfd8ca (bug 1629789) for causing issues on fixSymbols. CLOSED TREE 2020-04-28 14:47:30 +03:00
Nicholas Nethercote 9d10f25a39 Bug 1629789 - Suppress `fix-stacks` errors on web platform tests. r=erahm,jgraham
Because the web platform test harness doesn't recognize them and annotates them
with `CRITICAL`, which is disconcerting, even though those errors are typically
not harmful.

Differential Revision: https://phabricator.services.mozilla.com/D71485
2020-04-28 09:28:15 +00:00
Cosmin Sabou 53c2d5ebb9 Backed out 2 changesets (bug 1628527) for causing wpt failures and a spike in bug 1622119. CLOSED TREE
Backed out changeset d9dfb6439761 (bug 1628527)
Backed out changeset 8235287622a8 (bug 1628527)
2020-04-21 23:12:09 +03:00
Nicholas Nethercote 88cd51aa6d Bug 1628527 - Introduce explicit initialization and finalization of `fix-stacks`. r=erahm,perftest-reviewers,sparky,gbrown
Currently AWSY-with-DMD doesn't work on Windows. This is because `fix-stacks`
is initialized lazily, and by the time the initialization happens some file
descriptors for files are open, and that leads to some major Python2-on-Windows
sadness as described in the big comment in the commit.

To fix the problem, this commit adds an `init` function to `fix_stacks.py` so
that `fix-stacks` can be initialized eagerly, hopefully before any file
descriptors for files are open.

For `dmd.py`, other than fixing the AWSY problems, this has little effect,
because `fix-stacks` is always initialized.

For `utils.py`, which is used to process the output of most tests, this has a
more noticeable effect: the `fix-stacks` process is always spawned, rather than
being spawned only when needed. If no stack traces appear in the test output,
this means that `fix-stacks` is spawned unnecessarily. But it's cheap to spawn;
the expensive part only happens when stack traces start getting fixed. So I
think this change in behaviour is acceptable.

Furthermore, the commit adds a `finish` function to `fix_stacks.py`, so that
the `fix-stacks` process can be explicitly shut down. This has never been done
for processes spawned for any of the stack fixing scripts. It's never caused
problems on Linux/Mac, but it seems to be necessary on Windows to avoid
similar "this file is locked" problems with the test_dmd.js test.

The commit also renames some things to more standard Python style, e.g.
`json_mode` instead of `jsonMode`.

Finally, Android tests use `utils.py` from the repository but `fix_stacks.py`
from the Android host utils. Because the two scripts must be updated in tandem,
this commit also updates the Android host utils to a version that contains the
updated `fix_stacks.py`. Thanks to aerickson for packaging up the new Android
host utils and providing the change to the `hostutils.manifest` file.

Differential Revision: https://phabricator.services.mozilla.com/D69478
2020-04-20 22:43:25 +00:00
Nicholas Nethercote 8139b4051e Bug 1619840 - Remove `fix_{linux,macosx}_stack.py` and `fix_stack_using_bpsyms.py`. r=erahm
This commit removes `test_fix_stack_using_bpsyms.py`. That test can't easily be
modified to work with `fix_stacks.py` because it relies on internal
implementation details of `fix_stack_using_bpsym.py`. The unit testing done in
the `fix-stacks` repo provides test coverage that is as good or better.

Differential Revision: https://phabricator.services.mozilla.com/D66924

--HG--
extra : moz-landing-system : lando
2020-04-08 06:55:54 +00:00
Bogdan Tara 7d56f86092 Backed out changeset 916894e8b8fc (bug 1626272) for frequent test_dmd.js failures CLOSED TREE 2020-04-07 03:52:49 +03:00
Nicholas Nethercote ba62a51069 Bug 1626272 - Make `fix-stacks` initialization eager. r=erahm
Currently AWSY-with-DMD doesn't work on Windows. This is because `fix-stacks`
is initialized lazily, and by the time the initialization happens some file
descriptors for files are open, and that leads to some major Python2-on-Windows
sadness as described in the big comment in the commit.

To fix the problem, this commit adds an `init` function to `fix_stacks.py` so
that `fix-stacks` can be initialized eagerly, hopefully before any file
descriptors for files are open.

For `dmd.py`, other than fixing the AWSY problems, this has little effect,
because `fix-stacks` is always initialized.

For `utils.py`, which is used to process the output of most tests, this has a
more noticeable effect: the `fix-stacks` process is always spawned, rather than
being spawned only when needed. If no stack traces appear in the test output,
this means that `fix-stacks` is spawned unnecessarily. But it's cheap to spawn;
the expensive part only happens when stack traces start getting fixed. So I
think this change in behaviour is acceptable.

The commit also renames some things to more standard Python style, e.g.
`json_mode` instead of `jsonMode`.

Differential Revision: https://phabricator.services.mozilla.com/D69478

--HG--
extra : moz-landing-system : lando
2020-04-06 19:49:54 +00:00
Nicholas Nethercote 9a11249061 Bug 1621468 - Stop using `fix_stack_using_bpsyms.py` in `dmd.py`. r=gsvelto
This uses `fix-stacks`'s new Breakpad symbols support from
https://github.com/mozilla/fix-stacks/pull/16.

The patch also updates some comments in `dmd.py` to account for some very
slight changes in `fix-stacks`'s output.

Differential Revision: https://phabricator.services.mozilla.com/D66363

--HG--
extra : moz-landing-system : lando
2020-03-16 01:15:27 +00:00
Nicholas Nethercote d17a9a9a55 Bug 1602717 - Re-enable stackwalking on local macOS builds. r=erahm
Now that `fix_stacks.py` is being used instead of `fix_macosx_stack.py`,
stack-fixing time has dropped from about 14 minutes to about 30 seconds on my
new MacBook Pro.

Also, print a warning about stacks not being fixed if `MOZ_DISABLE_STACK_FIX`
is set. This warning shows up at the start of the test run.

Also, print a warning about stack fixing slowness, because 30 seconds is long
enough to possibly be surprising. This warning shows up just before the first
stack frame is fixed, like this:
```
Assertion failure: false (BEEP BOOP), at /home/njn/moz/au3/dom/base/nsGlobalWindowOuter.cpp:1342
Initializing stack-fixing for the first stack frame, this may take a while...
#01: nsGlobalWindowOuter::nsGlobalWindowOuter(unsigned long) (/home/njn/moz/au3/dom/base/nsGlobalWindowOuter.cpp:1342)
#02: ...
```

Differential Revision: https://phabricator.services.mozilla.com/D65676

--HG--
extra : moz-landing-system : lando
2020-03-12 22:03:19 +00:00
Nicholas Nethercote 821fa0d573 Bug 1619837 - Make `fix_stacks.py` more like `fix_linux_stacks.py`. r=erahm
Specifically:
- handle input that doesn't end in a newline;
- only pass lines that match the regexp to `fix-stacks`.

These changes are needed for `utils.py` to use `fix_stacks.py` without
problems.

Differential Revision: https://phabricator.services.mozilla.com/D65944

--HG--
extra : moz-landing-system : lando
2020-03-10 06:19:21 +00:00
Nicholas Nethercote c22c891c55 Bug 1604095 - Add `fix_stacks.py`, which uses `fix-stacks`, and use it in DMD. r=gsvelto
On Linux and Mac, this makes `dmd.py` *much* faster when it is first run on a
DMD data file.

On Windows, this makes DMD actually usable locally. Previously the stacks
weren't fixed and so were rubbish.

Differential Revision: https://phabricator.services.mozilla.com/D57271

--HG--
extra : moz-landing-system : lando
2020-03-05 00:24:23 +00:00
Edwin Takahashi af0fda47bc Bug 1559977 - Remove tools/rb from py3/py2 linter exclusion list r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D35238

--HG--
extra : moz-landing-system : lando
2019-10-15 20:58:35 +00:00
Andrew Halberstadt 898dfb96b4 Bug 1567642 - [lint.flake8] Fix misc flake8 under Python 3 lint issues r=gbrown
Differential Revision: https://phabricator.services.mozilla.com/D45417

--HG--
extra : moz-landing-system : lando
2019-09-24 14:44:01 +00:00
Nicholas Nethercote 953ed1dcc1 Bug 1499907 - Add a `jsonEscape` argument to `fixSymbols`. r=erahm
So that dmd.py isn't broken by function names that, after stack fixing, contain
escape-worthy chars such as " and /.

--HG--
extra : rebase_source : 625cef56e4599bbb810273ef04af2b971e777b58
2018-11-21 10:28:00 +11:00
Gabriele Svelto 1b38644136 Bug 1493365 - Reduce the amount of memory consumed when reading symbol files r=ted
When reworking the script each entry holding a function name was replaced by a
dictionary holding both the function name and its size. This significantly
increased memory consumption as using a full-fledged dictionary for only two
fields is very space inefficient. This patch uses a named tuple instead of a
dictionary for every entry, reducing memory consumption by almost four times.

Differential Revision: https://phabricator.services.mozilla.com/D6603

--HG--
extra : moz-landing-system : lando
2018-09-24 20:43:37 +00:00
Gabriele Svelto e9f4d4c3af Bug 1470223 - Prefer FUNC entries to PUBLIC entries when fixing symbols r=ted
This patch changes the way we search symbols when fixing up a stack.
Previously we would find the closest PUBLIC or FUNC entry lower than a given
address. Because of how symbol files were processed we preferred PUBLIC
entries to FUNC ones. Now we look first for the function that contains the
address (obtained from the FUNC entries) then if none is available we look for
the closest, lower PUBLIC entry.

Differential Revision: https://phabricator.services.mozilla.com/D5033

--HG--
extra : moz-landing-system : lando
2018-09-21 12:50:32 +00:00
Gabriele Svelto b0e9d95a41 Bug 1309172 - Updated breakpad to version 69c2c51dd89965d234eec16e3a9353634831916b; r=ted.mielczarek
This includes both the vanilla sources we haven't forked and the client
sources that we have. Client patches were applied manually up to version
69c2c51dd89965d234eec16e3a9353634831916b. The following changes were not
included as they break merging segments corresponding to libxul.so in the
module list:

8915f7be39448d9257b6da3ad0233944d1d9a92a
17ad0c18b179c135fc5a3d2bba199c3fa4276035
94b6309aecaddfcf11672f6cfad9575d68ad3b40

With these changes applied two entries for libxul.so are generated, the second
one is bogus and prevents symbolication from working correctly.

The build system and some of the tools relying on breakpad were also updated
to work with the new version.

--HG--
extra : source : fe4d49307f8890a0c430c257c96f74a9552eeb31
extra : histedit_source : bc84861445bd93856cd0d0c864fd15ad7d9ccc12%2C1efd65797da46e33481afa61a302098780b0f107
2018-06-19 13:47:13 +02:00
Sylvestre Ledru a0ab39f145 Bug 1438839 - Fix the remaining flake8 issues by hand r=ahal
MozReview-Commit-ID: Fv1MZIpCL8Z

--HG--
extra : rebase_source : 804567a78a5696997e2aa511814a4f8ff22d9c31
extra : histedit_source : 88401e831d81708b6ed6122666ba9fa8c1de23d5
2018-03-15 11:34:03 +01:00
Sylvestre Ledru ef5ad1811f Bug 1438839 - autopep8 -i --max-line-length 99 on the tools/ r=ahal
MozReview-Commit-ID: KSKbctxjxl0

--HG--
extra : rebase_source : feebd58ff005750face884035f85a55e0ff638c8
extra : histedit_source : 5d7464caeb41bad25bc99d3b2e32ea5285464499
2018-03-15 11:32:42 +01:00
Nicholas Nethercote b7e4754837 Bug 1331310 - Remove unbufferedLineConverter in fix_linux_stacks.py. r=glandium.
subprocess.Popen is much simpler. Also, addr2line's stderr is now ignored,
which avoids some intermittent problems with DMD output.
2017-01-18 13:57:39 +11:00
Ralph Giles abf915d42c Bug 1275630 - Update breakpad documentation links. r=ted
These locations have changed since the end of Google Code.

MozReview-Commit-ID: FSGhFBDaTCq

--HG--
extra : rebase_source : 4ef004b2d0b8f1a6331db0f44ccf70d05ad62774
2016-05-25 10:01:52 -07:00
Ralph Giles f123b681bb Bug 1270091 - Handle missing function names. r=dminor
If the symbols file doesn't give a function name, substitute
'unnamed_function'. A more complete fix would be to catch
all ValueError exceptions and continue sensibly, but this
addresses the immediate issue with the output from `rustc -g`.

MozReview-Commit-ID: 666ruvLlJ5t
2016-05-10 16:15:17 -07:00
Henry Chang 3ca7032d96 Bug 1270002 - Use sliced array to ignore trailing tokens. r=mccr8 2016-05-04 00:17:00 -04:00
Chris Manchester 7c92933074 Bug 1216681 - Add a windows version of fileid to extract a guid from windows binaries. r=jimm,ted
This patch introduces a small utility program to extract a guid from a shared library
or executable on windows to identify the correct symbol file to read in fix_stack_using_bpsyms.py.
In order for this to work correctly on windows, the library name provided by
MozDescribeCodeAddress needs to be a full path, so the LoadedImageName field
from the IMAGEHLP_MODULE64 structure is used here instead of the ModuleName
field.

MozReview-Commit-ID: 8zkfLWjKVs2
2015-10-29 13:25:03 -07:00
Phil Ringnalda d7b348b2df Back out ff446e81eaf5 (bug 1216681) for Linux PGO bustage
CLOSED TREE
2016-02-11 20:27:36 -08:00