зеркало из https://github.com/mozilla/gecko-dev.git
Backed out 3 changesets (bug 1758216, bug 1758215, bug 1441453) for causing python failures. CLOSED TREE
Backed out changeset fcfa4c342394 (bug 1758216) Backed out changeset e04c792b53e3 (bug 1441453) Backed out changeset 9b8b59c1f97e (bug 1758215)
This commit is contained in:
Родитель
9692831c13
Коммит
84cd5d2946
|
@ -425,7 +425,7 @@ rust-minidump:
|
||||||
fetch:
|
fetch:
|
||||||
type: git
|
type: git
|
||||||
repo: https://github.com/luser/rust-minidump/
|
repo: https://github.com/luser/rust-minidump/
|
||||||
revision: b6f69022333493a5981c6d639f36509a9d99faf5
|
revision: 664dcd1d8ba8c227220f8b83927095880bd68a5f
|
||||||
|
|
||||||
fix-stacks:
|
fix-stacks:
|
||||||
description: fix-stacks source code
|
description: fix-stacks source code
|
||||||
|
|
|
@ -8,7 +8,6 @@ import glob
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import shlex
|
|
||||||
import shutil
|
import shutil
|
||||||
import signal
|
import signal
|
||||||
import six
|
import six
|
||||||
|
@ -43,7 +42,6 @@ StackInfo = namedtuple(
|
||||||
"extra",
|
"extra",
|
||||||
"reason",
|
"reason",
|
||||||
"java_stack",
|
"java_stack",
|
||||||
"command_line",
|
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -62,7 +60,6 @@ def check_for_crashes(
|
||||||
dump_save_path=None,
|
dump_save_path=None,
|
||||||
test_name=None,
|
test_name=None,
|
||||||
quiet=False,
|
quiet=False,
|
||||||
keep=False,
|
|
||||||
):
|
):
|
||||||
"""
|
"""
|
||||||
Print a stack trace for minidump files left behind by a crashing program.
|
Print a stack trace for minidump files left behind by a crashing program.
|
||||||
|
@ -90,8 +87,6 @@ def check_for_crashes(
|
||||||
If `quiet` is set, no PROCESS-CRASH message will be printed to stdout if a
|
If `quiet` is set, no PROCESS-CRASH message will be printed to stdout if a
|
||||||
crash is detected.
|
crash is detected.
|
||||||
|
|
||||||
If `keep` is set, minidump files will not be removed after processing.
|
|
||||||
|
|
||||||
Returns number of minidump files found.
|
Returns number of minidump files found.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
@ -110,7 +105,6 @@ def check_for_crashes(
|
||||||
symbols_path,
|
symbols_path,
|
||||||
dump_save_path=dump_save_path,
|
dump_save_path=dump_save_path,
|
||||||
stackwalk_binary=stackwalk_binary,
|
stackwalk_binary=stackwalk_binary,
|
||||||
keep=keep,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
crash_count = 0
|
crash_count = 0
|
||||||
|
@ -125,10 +119,6 @@ def check_for_crashes(
|
||||||
stackwalk_output = [u"Crash dump filename: {}".format(info.minidump_path)]
|
stackwalk_output = [u"Crash dump filename: {}".format(info.minidump_path)]
|
||||||
if info.reason:
|
if info.reason:
|
||||||
stackwalk_output.append("Mozilla crash reason: %s" % info.reason)
|
stackwalk_output.append("Mozilla crash reason: %s" % info.reason)
|
||||||
if info.command_line:
|
|
||||||
stackwalk_output.append("Command line:")
|
|
||||||
stackwalk_output.append(" " + shlex.join(info.command_line))
|
|
||||||
stackwalk_output.append("")
|
|
||||||
if info.stackwalk_stderr:
|
if info.stackwalk_stderr:
|
||||||
stackwalk_output.append("stderr from minidump_stackwalk:")
|
stackwalk_output.append("stderr from minidump_stackwalk:")
|
||||||
stackwalk_output.append(info.stackwalk_stderr)
|
stackwalk_output.append(info.stackwalk_stderr)
|
||||||
|
@ -235,17 +225,11 @@ class CrashInfo(object):
|
||||||
will be used."""
|
will be used."""
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self, dump_directory, symbols_path, dump_save_path=None, stackwalk_binary=None
|
||||||
dump_directory,
|
|
||||||
symbols_path,
|
|
||||||
dump_save_path=None,
|
|
||||||
stackwalk_binary=None,
|
|
||||||
keep=False,
|
|
||||||
):
|
):
|
||||||
self.dump_directory = dump_directory
|
self.dump_directory = dump_directory
|
||||||
self.symbols_path = symbols_path
|
self.symbols_path = symbols_path
|
||||||
self.remove_symbols = False
|
self.remove_symbols = False
|
||||||
self.keep = keep
|
|
||||||
|
|
||||||
if dump_save_path is None:
|
if dump_save_path is None:
|
||||||
dump_save_path = os.environ.get("MINIDUMP_SAVE_PATH", None)
|
dump_save_path = os.environ.get("MINIDUMP_SAVE_PATH", None)
|
||||||
|
@ -346,7 +330,6 @@ class CrashInfo(object):
|
||||||
retcode = None
|
retcode = None
|
||||||
reason = None
|
reason = None
|
||||||
java_stack = None
|
java_stack = None
|
||||||
cmdline = None
|
|
||||||
if (
|
if (
|
||||||
self.stackwalk_binary
|
self.stackwalk_binary
|
||||||
and os.path.exists(self.stackwalk_binary)
|
and os.path.exists(self.stackwalk_binary)
|
||||||
|
@ -453,39 +436,6 @@ class CrashInfo(object):
|
||||||
else:
|
else:
|
||||||
include_stderr = True
|
include_stderr = True
|
||||||
|
|
||||||
# Temporary mechanism to extract the LinuxCmdLine. Hopefully this will
|
|
||||||
# get added to the JSON output and everything will get switched over
|
|
||||||
# to that (bug 1487410).
|
|
||||||
if rust_minidump:
|
|
||||||
# Older rust minidump-stackwalk did not support --dump. Suppress
|
|
||||||
# stderr and make this do nothing if it returns a nonzero exit.
|
|
||||||
dumper = subprocess.Popen(
|
|
||||||
[self.stackwalk_binary, "--dump", path],
|
|
||||||
stdout=subprocess.PIPE,
|
|
||||||
stderr=subprocess.DEVNULL,
|
|
||||||
universal_newlines=True,
|
|
||||||
)
|
|
||||||
cmdline = []
|
|
||||||
capture = False
|
|
||||||
for line in dumper.stdout:
|
|
||||||
line = line.rstrip()
|
|
||||||
if line.startswith("Stream LinuxCmdLine:"):
|
|
||||||
capture = True
|
|
||||||
elif capture:
|
|
||||||
# Each argument is given on a separate line, terminated
|
|
||||||
# with \0 (the literal string, not the NUL character). A
|
|
||||||
# blank line ends this stream.
|
|
||||||
if len(line) > 0 and line.endswith("\\0"):
|
|
||||||
cmdline.append(line[:-2])
|
|
||||||
else:
|
|
||||||
capture = False
|
|
||||||
|
|
||||||
if dumper.wait() != 0:
|
|
||||||
cmdline = None
|
|
||||||
|
|
||||||
if self.symbols_path:
|
|
||||||
command.append(self.symbols_path)
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
if not self.stackwalk_binary:
|
if not self.stackwalk_binary:
|
||||||
errors.append(
|
errors.append(
|
||||||
|
@ -510,9 +460,9 @@ class CrashInfo(object):
|
||||||
if self.dump_save_path:
|
if self.dump_save_path:
|
||||||
self._save_dump_file(path, extra)
|
self._save_dump_file(path, extra)
|
||||||
|
|
||||||
if os.path.exists(path) and not self.keep:
|
if os.path.exists(path):
|
||||||
mozfile.remove(path)
|
mozfile.remove(path)
|
||||||
if os.path.exists(extra) and not self.keep:
|
if os.path.exists(extra):
|
||||||
mozfile.remove(extra)
|
mozfile.remove(extra)
|
||||||
|
|
||||||
return StackInfo(
|
return StackInfo(
|
||||||
|
@ -525,7 +475,6 @@ class CrashInfo(object):
|
||||||
extra,
|
extra,
|
||||||
reason,
|
reason,
|
||||||
java_stack,
|
java_stack,
|
||||||
cmdline,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
def _parse_extra_file(self, path):
|
def _parse_extra_file(self, path):
|
||||||
|
@ -848,7 +797,6 @@ if __name__ == "__main__":
|
||||||
parser.add_argument("--stackwalk-binary", "-b")
|
parser.add_argument("--stackwalk-binary", "-b")
|
||||||
parser.add_argument("--dump-save-path", "-o")
|
parser.add_argument("--dump-save-path", "-o")
|
||||||
parser.add_argument("--test-name", "-n")
|
parser.add_argument("--test-name", "-n")
|
||||||
parser.add_argument("--keep", action="store_true")
|
|
||||||
parser.add_argument("dump_directory")
|
parser.add_argument("dump_directory")
|
||||||
parser.add_argument("symbols_path")
|
parser.add_argument("symbols_path")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
@ -859,5 +807,4 @@ if __name__ == "__main__":
|
||||||
stackwalk_binary=args.stackwalk_binary,
|
stackwalk_binary=args.stackwalk_binary,
|
||||||
dump_save_path=args.dump_save_path,
|
dump_save_path=args.dump_save_path,
|
||||||
test_name=args.test_name,
|
test_name=args.test_name,
|
||||||
keep=args.keep,
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -484,7 +484,6 @@ class StructuredLogger(object):
|
||||||
Unicode("reason", default=None, optional=True),
|
Unicode("reason", default=None, optional=True),
|
||||||
Unicode("java_stack", default=None, optional=True),
|
Unicode("java_stack", default=None, optional=True),
|
||||||
List(Unicode, "stackwalk_errors", default=None),
|
List(Unicode, "stackwalk_errors", default=None),
|
||||||
List(Unicode, "command_line", default=None),
|
|
||||||
)
|
)
|
||||||
def crash(self, data):
|
def crash(self, data):
|
||||||
if data["stackwalk_errors"] is None:
|
if data["stackwalk_errors"] is None:
|
||||||
|
|
Загрузка…
Ссылка в новой задаче