Debug VideoDecodeAcceleratorUnittest crashed at ~GLRenderingVDAClient |
|||||||||||
Issue descriptionVersion: ChromeOS peach pi 8799.0.0 with chrome HEAD=17fe3c43c3dcfa4c81486e63548a3f985402f68f. What steps will reproduce the problem? (1) Run VDA unittest. ./video_decode_accelerator_unittest --test_video_data='test-25fps.vp8:320:240:250:250:35:150:11' --gtest_filter=ReplayAfterEOS/VideoDecodeAcceleratorParamTest.TestSimpleDecode/0 --v=4 What do you see instead? Crashed. [1010/230034:VERBOSE3:v4l2_video_decode_accelerator.cc(690)] Destroy(): [1010/230034:VERBOSE3:v4l2_video_decode_accelerator.cc(1693)] DestroyTask(): [1010/230034:VERBOSE3:v4l2_video_decode_accelerator.cc(1739)] StopDevicePoll(): [1010/230034:VERBOSE3:generic_v4l2_device.cc(110)] SetDevicePollInterrupt() [1010/230034:VERBOSE3:generic_v4l2_device.cc(122)] ClearDevicePollInterrupt() [1010/230034:VERBOSE3:v4l2_video_decode_accelerator.cc(1759)] StopDevicePoll(): device poll stopped [1010/230034:VERBOSE3:v4l2_video_decode_accelerator.cc(1764)] StopOutputStream(): [1010/230034:VERBOSE3:v4l2_video_decode_accelerator.cc(1788)] StopInputStream(): [1010/230034:VERBOSE3:v4l2_video_decode_accelerator.cc(2355)] DestroyInputBuffers(): [1010/230035:VERBOSE3:v4l2_video_decode_accelerator.cc(2378)] DestroyOutputBuffers(): [1010/230035:VERBOSE1:v4l2_video_decode_accelerator.cc(2400)] DestroyOutputBuffers(): dismissing PictureBuffer id=1 [1010/230035:VERBOSE1:v4l2_video_decode_accelerator.cc(2400)] DestroyOutputBuffers(): dismissing PictureBuffer id=2 [1010/230035:VERBOSE1:v4l2_video_decode_accelerator.cc(2400)] DestroyOutputBuffers(): dismissing PictureBuffer id=3 [1010/230035:VERBOSE1:v4l2_video_decode_accelerator.cc(2400)] DestroyOutputBuffers(): dismissing PictureBuffer id=4 [1010/230035:VERBOSE1:v4l2_video_decode_accelerator.cc(2400)] DestroyOutputBuffers(): dismissing PictureBuffer id=5 [1010/230035:VERBOSE1:v4l2_video_decode_accelerator.cc(2400)] DestroyOutputBuffers(): dismissing PictureBuffer id=6 [1010/230035:VERBOSE1:v4l2_video_decode_accelerator.cc(2400)] DestroyOutputBuffers(): dismissing PictureBuffer id=7 [1010/230035:VERBOSE1:v4l2_video_decode_accelerator.cc(2400)] DestroyOutputBuffers(): dismissing PictureBuffer id=8 [1010/230035:VERBOSE1:v4l2_video_decode_accelerator.cc(2400)] DestroyOutputBuffers(): dismissing PictureBuffer id=9 [1010/230035:VERBOSE1:v4l2_video_decode_accelerator.cc(2400)] DestroyOutputBuffers(): dismissing PictureBuffer id=10 [1010/230035:VERBOSE1:v4l2_video_decode_accelerator.cc(2400)] DestroyOutputBuffers(): dismissing PictureBuffer id=11 [1010/230035:VERBOSE1:v4l2_video_decode_accelerator.cc(2400)] DestroyOutputBuffers(): dismissing PictureBuffer id=12 [1010/230035:VERBOSE3:v4l2_video_decode_accelerator.cc(1153)] ServiceDeviceTask(): [1010/230035:VERBOSE2:v4l2_video_decode_accelerator.cc(1162)] ServiceDeviceTask(): early out: kError state [1010/230035:FATAL:lock_impl_posix.cc(65)] Check failed: rv == 0 (22 vs. 0). Invalid argument #0 0x0000b5c2764e base::debug::StackTrace::StackTrace() #1 0x0000b5b5cdf2 logging::LogMessage::~LogMessage() #2 0x0000b5bbafe0 base::internal::LockImpl::Lock() #3 0x0000b5860900 base::Lock::Acquire() #4 0x0000b5860948 base::AutoLock::AutoLock() #5 0x0000b5851bbe media::ClientStateNotification<>::Notify() #6 0x0000b584b1f6 media::(anonymous namespace)::GLRenderingVDAClient::SetState() #7 0x0000b584947a media::(anonymous namespace)::GLRenderingVDAClient::~GLRenderingVDAClient() #8 0x0000b5849560 media::(anonymous namespace)::GLRenderingVDAClient::~GLRenderingVDAClient() #9 0x0000b58558c2 std::default_delete<>::operator()() #10 0x0000b5852f50 std::unique_ptr<>::~unique_ptr() #11 0x0000b585b660 std::_Destroy<>() #12 0x0000b5859cec std::_Destroy_aux<>::__destroy<>() #13 0x0000b58578c8 std::_Destroy<>() #14 0x0000b5855436 std::_Destroy<>() #15 0x0000b5852ade std::vector<>::~vector() #16 0x0000b5855c0c std::default_delete<>::operator()() #17 0x0000b5853608 std::unique_ptr<>::~unique_ptr() #18 0x0000b585c984 _ZN4base8internal13FunctorTraitsIPFvSt10unique_ptrISt6vectorIS2_IN5media12_GLOBAL__N_120GLRenderingVDAClientESt14default_deleteIS6_EESaIS9_EES7_ISB_EEEvE6InvokeIJSD_EEEvSF_DpOT_ #19 0x0000b585b7da _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKPFvSt10unique_ptrISt6vectorIS4_IN5media12_GLOBAL__N_120GLRenderingVDAClientESt14default_deleteIS8_EESaISB_EES9_ISD_EEEJSF_EEEvOT_DpOT0_ #20 0x0000b585a206 _ZN4base8internal7InvokerINS0_9BindStateIPFvSt10unique_ptrISt6vectorIS3_IN5media12_GLOBAL__N_120GLRenderingVDAClientESt14default_deleteIS7_EESaISA_EES8_ISC_EEEJNS0_13PassedWrapperISE_EEEEEFvvEE7RunImplIRKSG_RKSt5tupleIJSI_EEJLj0EEEEvOT_OT0_NS_13IndexSequenceIJXspT1_EEEE #21 0x0000b5857fc6 _ZN4base8internal7InvokerINS0_9BindStateIPFvSt10unique_ptrISt6vectorIS3_IN5media12_GLOBAL__N_120GLRenderingVDAClientESt14default_deleteIS7_EESaISA_EES8_ISC_EEEJNS0_13PassedWrapperISE_EEEEEFvvEE3RunEPNS0_13BindStateBaseE #22 0x0000b5840d18 base::internal::RunMixin<>::Run() Repro rate: 5/5
,
Oct 10 2016
,
Oct 10 2016
Uploaded a fix. https://codereview.chromium.org/2407863002
,
Oct 10 2016
,
Oct 11 2016
I tested the fix on elm. There is another crash. [----------] 1 test from Thumbnail/VideoDecodeAcceleratorParamTest [ RUN ] Thumbnail/VideoDecodeAcceleratorParamTest.TestSimpleDecode/0 [1011/112603:WARNING:screen_manager.cc(101)] Display controller (crtc=30) already present. ../../media/gpu/video_decode_accelerator_unittest.cc:1426: Failure Value of: video_file->num_frames Actual: 250 Expected: client->num_decoded_frames() Which is: 245 [1011/112604:INFO:video_decode_accelerator_unittest.cc(1434)] Decoder 0 fps: 225.795 [1011/112605:ERROR:video_decode_accelerator_unittest.cc(1471)] Unknown thumbnails MD5: a0c8198e7b924fde1780dbb5acb40c1f ../../media/gpu/video_decode_accelerator_unittest.cc:1480: Failure Expected: (match) != (golden_md5s.end()), actual: 4-byte object <48-64 61-F9> vs 4-byte object <48-64 61-F9> [1011/112605:FATAL:weak_ptr.cc(20)] Check failed: sequence_checker_.CalledOnValidSequence() || HasOneRef(). WeakPtrs must be invalidated on the same sequenced thread. #0 0x0000f60ff18e base::debug::StackTrace::StackTrace() #1 0x0000f60338c6 logging::LogMessage::~LogMessage() #2 0x0000f60380e2 base::internal::WeakReference::Flag::Invalidate() #3 0x0000f60383e4 base::internal::WeakReferenceOwner::Invalidate() #4 0x0000f603833c base::internal::WeakReferenceOwner::~WeakReferenceOwner() #5 0x0000f5d2573c base::WeakPtrFactory<>::~WeakPtrFactory() #6 0x0000f5d1d440 media::(anonymous namespace)::GLRenderingVDAClient::~GLRenderingVDAClient() #7 0x0000f5d1d51c media::(anonymous namespace)::GLRenderingVDAClient::~GLRenderingVDAClient() #8 0x0000f5d2990a std::default_delete<>::operator()() #9 0x0000f5d26f84 std::unique_ptr<>::~unique_ptr() #10 0x0000f5d2f6d0 std::_Destroy<>() #11 0x0000f5d2dd48 std::_Destroy_aux<>::__destroy<>() #12 0x0000f5d2b918 std::_Destroy<>() #13 0x0000f5d2947a std::_Destroy<>() #14 0x0000f5d26b12 std::vector<>::~vector() #15 0x0000f5d23634 media::(anonymous namespace)::VideoDecodeAcceleratorParamTest_TestSimpleDecode_Test::TestBody() #16 0x0000f6171738 testing::internal::HandleSehExceptionsInMethodIfSupported<>() #17 0x0000f616f37e testing::internal::HandleExceptionsInMethodIfSupported<>() #18 0x0000f6163c5a testing::Test::Run() #19 0x0000f616426e testing::TestInfo::Run() #20 0x0000f616476a testing::TestCase::Run() #21 0x0000f6169526 testing::internal::UnitTestImpl::RunAllTests() #22 0x0000f6171780 testing::internal::HandleSehExceptionsInMethodIfSupported<>() #23 0x0000f616f3ea testing::internal::HandleExceptionsInMethodIfSupported<>() #24 0x0000f61687a6 testing::UnitTest::Run() #25 0x0000f5d353ea RUN_ALL_TESTS() #26 0x0000f5d252f6 main #27 0x0000f56c6308 __libc_start_main
,
Oct 11 2016
#5 is another bug.
,
Oct 11 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/dc834a8f5707c31894ddebc8f12faf2cd4d2d434 commit dc834a8f5707c31894ddebc8f12faf2cd4d2d434 Author: wuchengli <wuchengli@chromium.org> Date: Tue Oct 11 04:19:37 2016 VDA unittest: fix ~GLRenderingVDAClient crash in debug build. This was introduced by 386d72414e61c5e8155b66e2986fa0039f4b010a. GLRenderingVDAClient uses ClientStateNotification and must be deleted first. BUG= 654429 TEST=Run VDA unittest on peach pi. Review-Url: https://codereview.chromium.org/2407863002 Cr-Commit-Position: refs/heads/master@{#424366} [modify] https://crrev.com/dc834a8f5707c31894ddebc8f12faf2cd4d2d434/media/gpu/video_decode_accelerator_unittest.cc
,
Oct 11 2016
I'm requesting a merge to M55. This only changes the test and is a low risk fix. Without the fix, ChromeOS autotest video_VideoDecodeAccelerator may randomly fail.
,
Oct 12 2016
Your change meets the bar and is auto-approved for M55 (branch: 2883)
,
Oct 15 2016
This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible! If all merges have been completed, please remove any remaining Merge-Approved labels from this issue. Thanks for your time! To disable nags, add the Disable-Nags label. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Oct 17 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c3ed32e48a48ad27f1a5ccd248b9533aada75b29 commit c3ed32e48a48ad27f1a5ccd248b9533aada75b29 Author: Kuang-che Wu <kcwu@chromium.org> Date: Mon Oct 17 05:01:58 2016 VDA unittest: fix ~GLRenderingVDAClient crash in debug build. This was introduced by 386d72414e61c5e8155b66e2986fa0039f4b010a. GLRenderingVDAClient uses ClientStateNotification and must be deleted first. BUG= 654429 TEST=Run VDA unittest on peach pi. Review-Url: https://codereview.chromium.org/2407863002 Cr-Commit-Position: refs/heads/master@{#424366} (cherry picked from commit dc834a8f5707c31894ddebc8f12faf2cd4d2d434) Review URL: https://codereview.chromium.org/2427463002 . Cr-Commit-Position: refs/branch-heads/2883@{#135} Cr-Branched-From: 614d31daee2f61b0180df403a8ad43f20b9f6dd7-refs/heads/master@{#423768} [modify] https://crrev.com/c3ed32e48a48ad27f1a5ccd248b9533aada75b29/media/gpu/video_decode_accelerator_unittest.cc
,
Oct 17 2016
,
Oct 27 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c3ed32e48a48ad27f1a5ccd248b9533aada75b29 commit c3ed32e48a48ad27f1a5ccd248b9533aada75b29 Author: Kuang-che Wu <kcwu@chromium.org> Date: Mon Oct 17 05:01:58 2016 VDA unittest: fix ~GLRenderingVDAClient crash in debug build. This was introduced by 386d72414e61c5e8155b66e2986fa0039f4b010a. GLRenderingVDAClient uses ClientStateNotification and must be deleted first. BUG= 654429 TEST=Run VDA unittest on peach pi. Review-Url: https://codereview.chromium.org/2407863002 Cr-Commit-Position: refs/heads/master@{#424366} (cherry picked from commit dc834a8f5707c31894ddebc8f12faf2cd4d2d434) Review URL: https://codereview.chromium.org/2427463002 . Cr-Commit-Position: refs/branch-heads/2883@{#135} Cr-Branched-From: 614d31daee2f61b0180df403a8ad43f20b9f6dd7-refs/heads/master@{#423768} [modify] https://crrev.com/c3ed32e48a48ad27f1a5ccd248b9533aada75b29/media/gpu/video_decode_accelerator_unittest.cc
,
Nov 4 2016
[Automated comment] removing mislabelled merge-merged-2840
,
Nov 4 2016
[Automated comment] removing mislabelled merge-merged-2840
,
Apr 17 2017
,
May 23 2017
|
|||||||||||
►
Sign in to add a comment |
|||||||||||
Comment 1 by wuchengli@chromium.org
, Oct 10 2016