Mercurial > hg
annotate contrib/showstack.py @ 52053:af54626bf358
dirstate-map: add a missing debug wait point when accessing the v2 docket
fc8e37c380d3 added synchronization points to the dirstate to allow for race
condition testing without actually requiring a time-based race condition
to happen.
This changes adds the `pre-read-file` wait point before we read the docket,
since callers might ask for the parents before anything else is
read, leading to the first read being done before the wait point.
This removes some differences in test output which were presumed to be
speed related, but weren't.
author | Raphaël Gomès <rgomes@octobus.net> |
---|---|
date | Mon, 14 Oct 2024 14:14:21 +0200 |
parents | 6000f5b25c9b |
children |
rev | line source |
---|---|
26123
bdac264e5ed4
contrib: add showstack extension
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
1 # showstack.py - extension to dump a Python stack trace on signal |
bdac264e5ed4
contrib: add showstack extension
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
2 # |
bdac264e5ed4
contrib: add showstack extension
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
3 # binds to both SIGQUIT (Ctrl-\) and SIGINFO (Ctrl-T on BSDs) |
41548
6dae1f31c6c9
showstack: use raw docstring
Gregory Szorc <gregory.szorc@gmail.com>
parents:
40036
diff
changeset
|
4 r"""dump stack trace when receiving SIGQUIT (Ctrl-\) or SIGINFO (Ctrl-T on BSDs) |
35656
c9eb92fb87b7
showstack: add an extension docstring
Boris Feld <boris.feld@octobus.net>
parents:
28522
diff
changeset
|
5 """ |
26123
bdac264e5ed4
contrib: add showstack extension
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
6 |
28522
f2fe7b199bb4
showstack: use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
26123
diff
changeset
|
7 import signal |
f2fe7b199bb4
showstack: use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
26123
diff
changeset
|
8 import sys |
f2fe7b199bb4
showstack: use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
26123
diff
changeset
|
9 import traceback |
26123
bdac264e5ed4
contrib: add showstack extension
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
10 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41548
diff
changeset
|
11 |
26123
bdac264e5ed4
contrib: add showstack extension
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
12 def sigshow(*args): |
bdac264e5ed4
contrib: add showstack extension
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
13 sys.stderr.write("\n") |
bdac264e5ed4
contrib: add showstack extension
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
14 traceback.print_stack(args[1], limit=10, file=sys.stderr) |
bdac264e5ed4
contrib: add showstack extension
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
15 sys.stderr.write("----\n") |
bdac264e5ed4
contrib: add showstack extension
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
16 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41548
diff
changeset
|
17 |
40036
acf5dbe39478
showstack: also handle SIGALRM
Augie Fackler <augie@google.com>
parents:
35656
diff
changeset
|
18 def sigexit(*args): |
acf5dbe39478
showstack: also handle SIGALRM
Augie Fackler <augie@google.com>
parents:
35656
diff
changeset
|
19 sigshow(*args) |
acf5dbe39478
showstack: also handle SIGALRM
Augie Fackler <augie@google.com>
parents:
35656
diff
changeset
|
20 print('alarm!') |
acf5dbe39478
showstack: also handle SIGALRM
Augie Fackler <augie@google.com>
parents:
35656
diff
changeset
|
21 sys.exit(1) |
acf5dbe39478
showstack: also handle SIGALRM
Augie Fackler <augie@google.com>
parents:
35656
diff
changeset
|
22 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41548
diff
changeset
|
23 |
26123
bdac264e5ed4
contrib: add showstack extension
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
24 def extsetup(ui): |
bdac264e5ed4
contrib: add showstack extension
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
25 signal.signal(signal.SIGQUIT, sigshow) |
40036
acf5dbe39478
showstack: also handle SIGALRM
Augie Fackler <augie@google.com>
parents:
35656
diff
changeset
|
26 signal.signal(signal.SIGALRM, sigexit) |
26123
bdac264e5ed4
contrib: add showstack extension
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
27 try: |
bdac264e5ed4
contrib: add showstack extension
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
28 signal.signal(signal.SIGINFO, sigshow) |
bdac264e5ed4
contrib: add showstack extension
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
29 except AttributeError: |
bdac264e5ed4
contrib: add showstack extension
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
30 pass |