Closed Bug 919145 Opened 6 years ago Closed 3 years ago

Symbolize ASan traces for jit-tests in test package

Categories

(Firefox Build System :: General, defect, major)

x86_64
Linux
defect
Not set
major

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: decoder, Assigned: decoder)

References

(Blocks 1 open bug)

Details

(Keywords: sec-want)

In bug 917242, I added support for symbolizing ASan traces in automation, including jit-tests. However, ted told me that jit-tests are being moved out of make check into their own test package (horray for that!).

This bug is about making sure that we have symbolizing support even when running the jit-tests in the test-package.


Right now, in js/src/Makefile.in we have this (now on inbound):

> ifdef MOZ_ASAN
> ifneq ($(LLVM_SYMBOLIZER),)
> # Use the LLVM symbolizer when running jit-tests under ASan, if available
> JITTEST_ASAN_ENV=ASAN_SYMBOLIZER_PATH='$(LLVM_SYMBOLIZER)'
> endif
> endif
>...
>check-jit-test::
>        $(JITTEST_ASAN_ENV) $(wildcard $(RUN_TEST_PROGRAM)) $(PYTHON) -u $(srcdir)/jit->test/jit_test.py ...


So we're just setting the symbolizer path and then passing an environment variable. We can do the same thing when running from the test package, the only differences are:

1) The symbolizer binary path is different, it is packaged with the browser build, so it's in the same location as the js shell and the firefox binary.

2) We don't know if it's there, so we have to make the stuff conditional.

Dan, where I should I start working on this, or do you need help with anything else from my side here first?
Flags: needinfo?(dminor)
In mozharness we figure out the url for the js shell here [1] and retrieve it here [2]. You can add something similar for the symbolizer binary, but allow for the download to fail. The runtime environment is set up at [3], so you could set your variables there, provided the download was successful.

Besides desktop_unittest.py, you would also need to make similar changes to the android_panda.py script.

[1] https://github.com/mozilla/build-mozharness/blob/master/mozharness/mozilla/testing/testbase.py#L78
[2] https://github.com/mozilla/build-mozharness/blob/master/scripts/desktop_unittest.py#L319
[3] https://github.com/mozilla/build-mozharness/blob/master/scripts/desktop_unittest.py#L390
Flags: needinfo?(dminor)
decoder: is this still an issue?
Flags: needinfo?(choller)
I haven't heard of any problems related to symbolizing of JS crashes, so I'll just assume this is working. Also, since this bu has filed, the way we run tests and package jit-tests has changed multiple times so I guess we should file new bugs if we hit any problems with it.
Status: NEW → RESOLVED
Closed: 3 years ago
Flags: needinfo?(choller)
Resolution: --- → WORKSFORME
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.