ClangToTLinuxASan tester failing media_unittests with signal 11 SEGV_MAPERR 000000000000 in AudioSystemImplTest |
|||||
Issue descriptionFirst failing build: https://build.chromium.org/p/chromium.fyi/builders/ClangToTLinuxASan%20tester/builds/1982 (Also has unit_tests memory leaks, which are being tracked in https://bugs.chromium.org/p/chromium/issues/detail?id=709095) Logs: https://luci-logdog.appspot.com/v/?s=chromium%2Fbb%2Fchromium.fyi%2FClangToTLinuxASan_tester%2F1982%2F%2B%2Frecipes%2Fsteps%2Fmedia_unittests%2F0%2Fstdout 22 tests crashed: AudioSystemImplTest.GetDefaultOutputStreamParameters/0 (../../media/audio/audio_system_impl_unittest.cc:143) AudioSystemImplTest.GetDefaultOutputStreamParameters/1 (../../media/audio/audio_system_impl_unittest.cc:143) AudioSystemImplTest.GetInputDeviceDescriptions/0 (../../media/audio/audio_system_impl_unittest.cc:143) AudioSystemImplTest.GetInputDeviceDescriptions/1 (../../media/audio/audio_system_impl_unittest.cc:143) AudioSystemImplTest.GetInputDeviceDescriptionsNoInputDevices/0 (../../media/audio/audio_system_impl_unittest.cc:143) AudioSystemImplTest.GetInputDeviceDescriptionsNoInputDevices/1 (../../media/audio/audio_system_impl_unittest.cc:143) AudioSystemImplTest.GetInputStreamParameters/0 (../../media/audio/audio_system_impl_unittest.cc:143) AudioSystemImplTest.GetInputStreamParameters/1 (../../media/audio/audio_system_impl_unittest.cc:143) AudioSystemImplTest.GetInputStreamParametersNoDevice/0 (../../media/audio/audio_system_impl_unittest.cc:143) AudioSystemImplTest.GetInputStreamParametersNoDevice/1 (../../media/audio/audio_system_impl_unittest.cc:143) AudioSystemImplTest.GetOutputDeviceDescriptions/0 (../../media/audio/audio_system_impl_unittest.cc:143) AudioSystemImplTest.GetOutputDeviceDescriptions/1 (../../media/audio/audio_system_impl_unittest.cc:143) AudioSystemImplTest.GetOutputDeviceDescriptionsNoInputDevices/0 (../../media/audio/audio_system_impl_unittest.cc:143) AudioSystemImplTest.GetOutputDeviceDescriptionsNoInputDevices/1 (../../media/audio/audio_system_impl_unittest.cc:143) AudioSystemImplTest.GetOutputStreamParametersNoDevice/0 (../../media/audio/audio_system_impl_unittest.cc:143) AudioSystemImplTest.GetOutputStreamParametersNoDevice/1 (../../media/audio/audio_system_impl_unittest.cc:143) AudioSystemImplTest.GetStreamParameters/0 (../../media/audio/audio_system_impl_unittest.cc:143) AudioSystemImplTest.GetStreamParameters/1 (../../media/audio/audio_system_impl_unittest.cc:143) AudioSystemImplTest.HasInputDevices/0 (../../media/audio/audio_system_impl_unittest.cc:143) AudioSystemImplTest.HasInputDevices/1 (../../media/audio/audio_system_impl_unittest.cc:143) AudioSystemImplTest.HasNoInputDevices/0 (../../media/audio/audio_system_impl_unittest.cc:143) AudioSystemImplTest.HasNoInputDevices/1 (../../media/audio/audio_system_impl_unittest.cc:143)
,
Apr 7 2017
With Clang r299785 and Chromium a9cdd67d441f3dfd2ec334edd678ea1a011caa64 (last revision known to pass), the error still occurs. Switching Clang to r299647 (last revision known to pass) makes the problem go away. This looks like a Clang bug.
,
Apr 8 2017
Looks like LLVM r299697 is what broke it (when I revert that change, the crashes stop and the tests pass).
,
Apr 10 2017
,
Apr 11 2017
Interesting. I'll make sure to check this test before reapplying r299697.
,
May 3 2017
I've reapplied r299697, and the test is failing again.
,
May 3 2017
(gdb) info symbol 0x04245778 vtable for media::MockAudioManager + 16 in section .data.rel.ro of /code/chromium/src/out/asan/media_unittests (gdb) x/16x 0x04245778 0x4245778 <_ZTVN5media16MockAudioManagerE+16>: 0x016094d0 0x00000000 0x016098a0 0x00000000 0x4245788 <_ZTVN5media16MockAudioManagerE+32>: 0x015be130 0x00000000 0x01609c20 0x00000000 0x4245798 <_ZTVN5media16MockAudioManagerE+48>: 0x015be150 0x00000000 0x015bead0 0x00000000 0x42457a8 <_ZTVN5media16MockAudioManagerE+64>: 0x015bf2d0 0x00000000 0x015bfbd0 0x00000000 (gdb) info symbol 0x016094d0 media::AudioManagerPulse::HasAudioOutputDevices() in section .text of /code/chromium/src/out/asan/media_unittests Wow.
,
May 3 2017
MockAudioManager and AudioManagerPulse somehow have identical, but distinct vtables
,
May 4 2017
And the mystery is solved! https://cs.chromium.org/chromium/src/media/audio/audio_low_latency_input_output_unittest.cc?l=106&rcl=be67624e633fc0d3bd8a221707eebf0815c3ca8b ODR as usual.
,
May 10 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/97228865445e54c1dbdf9ea04f3ad4b900451af9 commit 97228865445e54c1dbdf9ea04f3ad4b900451af9 Author: eugenis <eugenis@chromium.org> Date: Wed May 10 21:11:21 2017 Move one test in an anonymous namespace. This avoids ODR violation on media::MockAudioManager. BUG= 709536 R=tommi@chromium.org,hans@chromium.org CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Review-Url: https://codereview.chromium.org/2858383002 Cr-Commit-Position: refs/heads/master@{#470708} [modify] https://crrev.com/97228865445e54c1dbdf9ea04f3ad4b900451af9/media/audio/audio_low_latency_input_output_unittest.cc
,
May 15 2017
|
|||||
►
Sign in to add a comment |
|||||
Comment 1 by inglorion@chromium.org
, Apr 7 2017