deqp/functional/gles3/texturespecification/basic_teximage2d_cube_* tests crashing inside v8::internal::NewSpace::AllocateRaw |
|||||||||||
Issue descriptionBot: https://ci.chromium.org/buildbot/chromium.gpu.fyi/Mac%20GPU%20ASAN%20Release/ Test: gpu_tests.webgl_conformance_integration_test.WebGLConformanceIntegrationTest.WebglConformance_deqp_functional_gles3_texturespecification_basic_texsubimage2d_cube_* Out of the last 4 runs, one of these cube map test has failed 3 times. It appears to be crashing in V8: 1 Chromium Framework!__Z8V8_FatalPKciS0_z + 0x1ba 2 Chromium Framework!__ZN2v84base12_GLOBAL__N_120DefaultDcheckHandlerEPKciS3_ + 0x2f 3 Chromium Framework!__ZN2v88internal8NewSpace11AllocateRawEiNS0_19AllocationAlignmentE + 0x3f9 4 Chromium Framework!__ZN2v88internal4Heap11AllocateRawEiNS0_15AllocationSpaceENS0_19AllocationAlignmentE + 0x298 5 Chromium Framework!__ZN2v88internal4Heap20AllocateFillerObjectEibNS0_15AllocationSpaceE + 0x23 6 Chromium Framework!__ZN2v88internal7Factory15NewFillerObjectEibNS0_15AllocationSpaceE + 0x26 7 Chromium Framework!__ZN2v88internalL36__RT_impl_Runtime_AllocateInNewSpaceENS0_9ArgumentsEPNS0_7IsolateE + 0x1ad 8 Chromium Framework!__ZN2v88internal26Runtime_AllocateInNewSpaceEiPPNS0_6ObjectEPNS0_7IsolateE + 0x325 9 0x137204224 10 0x137214771 11 0x137d9f2cb 12 0x137da4851 13 0x13721a7fa 14 0x13721a7fa 15 0x13721a7fa 16 0x13721a7fa 17 0x13721a7fa 18 0x137215858 19 0x13720d37f 20 Chromium Framework!__ZN2v88internal12_GLOBAL__N_16InvokeEPNS0_7IsolateEbNS0_6HandleINS0_6ObjectEEES6_iPS6_S6_NS0_9Execution15MessageHandlingE + 0x1076 21 Chromium Framework!__ZN2v88internal12_GLOBAL__N_112CallInternalEPNS0_7IsolateENS0_6HandleINS0_6ObjectEEES6_iPS6_NS0_9Execution15MessageHandlingE + 0x22c 22 Chromium Framework!__ZN2v88Function4CallENS_5LocalINS_7ContextEEENS1_INS_5ValueEEEiPS5_ + 0x5c2 23 Chromium Framework!__ZN5blink14V8ScriptRunner12CallFunctionEN2v85LocalINS1_8FunctionEEEPNS_16ExecutionContextENS2_INS1_5ValueEEEiPS8_PNS1_7IsolateE + 0x836 24 Chromium Framework!__ZN5blink15ScheduledAction7ExecuteEPNS_10LocalFrameE + 0x8c1 25 Chromium Framework!__ZN5blink15ScheduledAction7ExecuteEPNS_16ExecutionContextE + 0x235 26 Chromium Framework!__ZN5blink8DOMTimer5FiredEv + 0x6e9 27 Chromium Framework!__ZN5blink9TimerBase11RunInternalEv + 0x1b3 28 Chromium Framework!__ZN4base8internal7InvokerINS0_9BindStateIMN5blink9TimerBaseEFvvEJNS_7WeakPtrIS4_EEEEEFvvEE3RunEPNS0_13BindStateBaseE + 0x21a 29 Chromium Framework!__ZN3WTF29ThreadCheckingCallbackWrapperIN4base17RepeatingCallbackIFvvEEES3_E3RunEv + 0x1ab 30 Chromium Framework!__ZN4base5debug13TaskAnnotator7RunTaskEPKcPNS_11PendingTaskE + 0x2d0 31 Chromium Framework!__ZN5blink9scheduler16TaskQueueManager24ProcessTaskFromWorkQueueEPNS0_8internal9WorkQueueEbNS0_7LazyNowEPN4base9TimeTicksE + 0xb48 32 Chromium Framework!__ZN5blink9scheduler16TaskQueueManager6DoWorkENS0_8internal8Sequence8WorkTypeE + 0x8cb 33 Chromium Framework!__ZN4base8internal7InvokerINS0_9BindStateIMN5blink9scheduler16TaskQueueManagerEFvNS4_8internal8Sequence8WorkTypeEEJNS_7WeakPtrIS5_EES8_EEEFvvEE3RunEPNS0_13BindStateBaseE + 0x238 34 Chromium Framework!__ZN4base5debug13TaskAnnotator7RunTaskEPKcPNS_11PendingTaskE + 0x2d0 35 Chromium Framework!__ZN5blink9scheduler8internal20ThreadControllerImpl6DoWorkENS1_8Sequence8WorkTypeE + 0x2a9 36 Chromium Framework!__ZN4base8internal7InvokerINS0_9BindStateIMN5blink9scheduler8internal20ThreadControllerImplEFvNS5_8Sequence8WorkTypeEEJNS_7WeakPtrIS6_EES8_EEEFvvEE3RunEPNS0_13BindStateBaseE + 0x238 37 Chromium Framework!__ZN4base5debug13TaskAnnotator7RunTaskEPKcPNS_11PendingTaskE + 0x2d0 38 Chromium Framework!__ZN4base8internal17IncomingTaskQueue7RunTaskEPNS_11PendingTaskE + 0x11e 39 Chromium Framework!__ZN4base11MessageLoop7RunTaskEPNS_11PendingTaskE + 0x5ae 40 Chromium Framework!__ZN4base11MessageLoop21DeferOrRunPendingTaskENS_11PendingTaskE + 0x1f6 41 Chromium Framework!__ZN4base11MessageLoop6DoWorkEv + 0x5a6 42 Chromium Framework!__ZN4base24MessagePumpCFRunLoopBase7RunWorkEv + 0x149 43 Chromium Framework!__ZN4base3mac15CallWithEHFrameEU13block_pointerFvvE + 0xa 44 Chromium Framework!__ZN4base24MessagePumpCFRunLoopBase13RunWorkSourceEPv + 0x171 45 CoreFoundation + 0xa7321 46 CoreFoundation + 0x8821d 47 CoreFoundation + 0x87716 48 CoreFoundation + 0x87114 49 Foundation + 0x22252 50 Chromium Framework!__ZN4base20MessagePumpNSRunLoop5DoRunEPNS_11MessagePump8DelegateE + 0xfe 51 Chromium Framework!__ZN4base24MessagePumpCFRunLoopBase3RunEPNS_11MessagePump8DelegateE + 0x191 52 Chromium Framework!__ZN4base11MessageLoop3RunEb + 0x21c 53 Chromium Framework!__ZN4base7RunLoop3RunEv + 0x2ac 54 Chromium Framework!__ZN7content12RendererMainERKNS_18MainFunctionParamsE + 0x762 55 Chromium Framework!__ZN7content23RunNamedProcessTypeMainERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEERKNS_18MainFunctionParamsEPNS_19ContentMainDelegateE + 0x51a 56 Chromium Framework!__ZN7content21ContentMainRunnerImpl3RunEv + 0x53f 57 Chromium Framework!__ZN15service_manager4MainERKNS_10MainParamsE + 0x1525 58 Chromium Framework!__ZN7content11ContentMainERKNS_17ContentMainParamsE + 0x159 59 Chromium Framework!_ChromeMain + 0x1c4 60 Chromium Helper!_main + 0xffc 61 libdyld.dylib + 0x5235 The first failure is this build: https://ci.chromium.org/buildbot/chromium.gpu.fyi/Mac%20GPU%20ASAN%20Release/6597 which contains the V8 roll: https://chromium-review.googlesource.com/805157
,
Dec 4 2017
Ulan, Ali: Please revert the CL(s) dealing with the allocation observer code. (I have not followed the progress there.) What is the problem with this feature? Why is it hard to test and/or get the invariants correct? We should figure this out before relanding to avoid the problems with embedders.
,
Dec 4 2017
,
Dec 4 2017
,
Dec 4 2017
Issue 791454 has been merged into this issue.
,
Dec 4 2017
,
Dec 4 2017
mlippautz: While the assert has been useful in understanding where the assumed invariants don't hold, I am removing it for now in this CL: https://chromium-review.googlesource.com/c/v8/v8/+/806516. At this point the assert is getting in the way of simplifying the code paths significantly. Sampling heap profiler is 'informational' so the assert can be removed and added back after the refactoring/cleanup/clear establishment of invariants. As for why it has been difficult: because the inline allocation code paths are complex and don't share logic between NewSpace and OldSpace. Certain assumed invariants don't hold (e.g. linear allocator doesn't necessarily allocate linearly). If there were clear invariants for inline allocation and a choke point between spaces, this would have been a lot easier. This is want I intend to by adding a common base class for NewSpace and OldSpace to refactor the inline allocation code. The assert has been useful so far, but I think I have a pretty good idea how to proceed, and the assert can be disabled for now.
,
Dec 5 2017
Note that this is seen on non-ASAN bots and on Windows as well: https://ci.chromium.org/buildbot/tryserver.chromium.angle/win_angle_rel_ng/8299 https://ci.chromium.org/buildbot/tryserver.chromium.angle/win_angle_rel_ng/8304 Representative stack trace: Last event: d68.fac: Access violation - code c0000005 (first/second chance not available) debugger time: Tue Dec 5 00:17:40.356 2017 (UTC - 8:00) ChildEBP RetAddr Args to Child 0048d774 67fb8f6a 00000016 0048d798 67fb7185 chrome_child!base::win::SetAbortBehaviorForCrashReporting+0x20 0048d780 67fb7185 0048d7ac 01336740 0602f138 chrome_child!v8::base::OS::Abort+0xa 0048d798 67fb6ff6 69c1a03b 000001d4 6a0b5a90 chrome_child!V8_Fatal+0x85 0048d7b0 66869d4e 69c1a03b 000001d4 05f53d18 chrome_child!v8::base::SetPrintStackTrace+0x26 0048d7d4 66869a04 0048d7e8 00000028 00000000 chrome_child!v8::internal::NewSpace::AllocateRaw+0x1ee 0048d7fc 6689abfd 0048d848 00000028 00000000 chrome_child!v8::internal::Heap::AllocateRaw+0x1e4 0048d824 668506ef 0048d848 00000028 00000000 chrome_child!v8::internal::Heap::AllocateFillerObject+0x1d 0048d85c 66b35ef9 0048d874 00000028 00000000 chrome_child!v8::internal::Factory::NewFillerObject+0x2f 0048d89c 66b35c85 01305b68 00000000 40a00e00 chrome_child!v8::internal::Runtime_AllocateInNewSpace+0x339 0048d910 3a7862aa 00000001 0048d93c 01305b68 chrome_child!v8::internal::Runtime_AllocateInNewSpace+0xc5
,
Dec 5 2017
The issue in this case – the invariant that didn't hold – was that Page::FromAddress doesn't return the correct page when we are at the boundary. The right thing to use was Page::FromAllocationAreaAddress. Ulan already fixed this (https://chromium.googlesource.com/v8/v8.git/+/7f8f2833663f77d41cdf95b0e2a2a64e844aac7d%5E%21/src/heap/spaces-inl.h) a while ago bug missed one of assertions.
,
Dec 5 2017
When do we expect the fix to roll into Chromium? We're seeing this assertion failure across most of the GPU FYI bots now.
,
Dec 5 2017
Current GC sheriff is out sick. Secondary is hpayer. Hannes could you ensure the problematic dcheck is removed asap?
,
Dec 5 2017
https://chromium-review.googlesource.com/c/v8/v8/+/806516 should land imminently.
,
Dec 5 2017
Thanks for pushing the fix through!
,
Dec 5 2017
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/00a77a9f4aeed0a2dd7124e564991e59a9f393c6 commit 00a77a9f4aeed0a2dd7124e564991e59a9f393c6 Author: Ali Ijaz Sheikh <ofrobots@google.com> Date: Tue Dec 05 16:08:23 2017 [heap] Fix top_on_previous_step_ check in NewSpace::AllocateRaw. See also: https://chromium-review.googlesource.com/c/v8/v8/+/738204 BUG= chromium:791582 Change-Id: Ife3acf35eeaa6fdebd5ea2fabc1678ec762b3ed3 Reviewed-on: https://chromium-review.googlesource.com/806516 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Ali Ijaz Sheikh <ofrobots@google.com> Cr-Commit-Position: refs/heads/master@{#49873} [modify] https://crrev.com/00a77a9f4aeed0a2dd7124e564991e59a9f393c6/src/heap/spaces-inl.h
,
Dec 5 2017
> Ulan already fixed this (https://chromium.googlesource.com/v8/v8.git/+/7f8f2833663f77d41cdf95b0e2a2a64e844aac7d%5E%21/src/heap/spaces-inl.h) > a while ago bug missed one of assertions. Small nit: my fix was complete, this assertion wasn't there at that time.
,
Dec 5 2017
Crashes are still affecting current tryjobs: https://ci.chromium.org/buildbot/tryserver.chromium.mac/mac_optional_gpu_tests_rel/18429 Did this fix not yet roll in for this tryjob or is there another bug? Thread 0 (crashed) 0 Chromium Framework!__ZN2v84base2OS5AbortEv + 0x12 rax = 0x0000000000000000 rdx = 0x0000000000012068 rcx = 0x0000040000000503 rbx = 0x0000000112b2b6e2 rsi = 0x0000000000091600 rdi = 0x00007fffa8930048 rbp = 0x00007fff58b702d0 rsp = 0x00007fff58b701d8 r8 = 0x0000000000000040 r9 = 0x00007fffa8930040 r10 = 0xffffffffffffffff r11 = 0x0000000000012068 r12 = 0x00007fffa8930a20 r13 = 0x00007fc58280da20 r14 = 0x0000000112f517f2 r15 = 0x00000000000001d4 rip = 0x000000011035a8d2 Found by: given as instruction pointer in context 1 Chromium Framework!__ZN2v84base12_GLOBAL__N_120DefaultDcheckHandlerEPKciS3_ + 0x15 rbp = 0x00007fff58b702e0 rsp = 0x00007fff58b702e0 rip = 0x00000001103559b5 Found by: previous frame's frame pointer 2 Chromium Framework!__ZN2v88internal8NewSpace11AllocateRawEiNS0_19AllocationAlignmentE + 0x1eb rbp = 0x00007fff58b70310 rsp = 0x00007fff58b702f0 rip = 0x000000010b444a9b Found by: previous frame's frame pointer 3 Chromium Framework!__ZN2v88internal4Heap11AllocateRawEiNS0_15AllocationSpaceENS0_19AllocationAlignmentE + 0xf3 rbp = 0x00007fff58b70350 rsp = 0x00007fff58b70320 rip = 0x000000010b444573 Found by: previous frame's frame pointer 4 Chromium Framework!__ZN2v88internal4Heap20AllocateFillerObjectEibNS0_15AllocationSpaceE + 0x23 rbp = 0x00007fff58b70390 rsp = 0x00007fff58b70360 rip = 0x000000010b48af13 Found by: previous frame's frame pointer 5 Chromium Framework!__ZN2v88internal7Factory15NewFillerObjectEibNS0_15AllocationSpaceE + 0x25 rbp = 0x00007fff58b703d0 rsp = 0x00007fff58b703a0 rip = 0x000000010b41d825 Found by: previous frame's frame pointer 6 Chromium Framework!__ZN2v88internalL36__RT_impl_Runtime_AllocateInNewSpaceENS0_9ArgumentsEPNS0_7IsolateE + 0x7c rbp = 0x00007fff58b70420 rsp = 0x00007fff58b703e0 rip = 0x000000010b80871c Found by: previous frame's frame pointer 7 0xdcbe1f84264 rbp = 0x00007fff58b70450 rsp = 0x00007fff58b70430 rip = 0x00000dcbe1f84264 Found by: previous frame's frame pointer 8 0xdcbe1f948d1 rbp = 0x00007fff58b704a0 rsp = 0x00007fff58b70460 rip = 0x00000dcbe1f948d1 Found by: previous frame's frame pointer 9 0xdcbe20eefcc rbp = 0x00007fff58b704c0 rsp = 0x00007fff58b704b0 rip = 0x00000dcbe20eefcc Found by: previous frame's frame pointer 10 0xdcbe1f9a95a rbp = 0x00007fff58b70578 rsp = 0x00007fff58b704d0 rip = 0x00000dcbe1f9a95a Found by: previous frame's frame pointer
,
Dec 5 2017
,
Dec 5 2017
Based on the assertion failure in that test: "# Debug check failed: Page::FromAddress(top()) == Page::FromAddress(top_on_previous_step_) (0x192fc6f00000 vs. 0x192fc6f80000)." I don't think the fix has rolled in yet.
,
Dec 6 2017
,
Dec 6 2017
It's difficult to see the status of the V8 auto-roller. Filed Issue v8:7169 about that. The fix has indeed not rolled in yet, and the list of CLs waiting to roll in is large at this point. It's not clear to me whether a change on the V8 side has broken automatic rolls. There was certainly breakage on the Chromium tree (compile failures) which broke some of the try jobs.
,
Dec 6 2017
Fix rolled here: https://chromium-review.googlesource.com/c/chromium/src/+/809911 The CQ cycle was long due to some other breakages (>2 hours). And there was a previous cherry pick roll in the CQ as well https://chromium-review.googlesource.com/c/chromium/src/+/809193 which was >4 hours in CQ due to yet another infra breakage :(. So our cycle was a bit over 6 hours sadly. I missed to add this bug's fix in yesterday's cherry-pick for issue 792105 . I think I made the cherry-pick right before reading this bug and then forgot about it :(
,
Dec 6 2017
ClusterFuzz testcase 6194866395807744 is verified as fixed, so closing issue as verified. If this is incorrect, please add ClusterFuzz-Wrong label and re-open the issue.
,
Dec 6 2017
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/ac5b4223adf2152e80f4b410011af966ebb8e4e5 commit ac5b4223adf2152e80f4b410011af966ebb8e4e5 Author: Ulan Degenbaev <ulan@chromium.org> Date: Wed Dec 06 16:19:26 2017 [heap] Add regression test for 791582. Bug: chromium:791582 Change-Id: Ic2b4289431a4bd7b4b5a37437d25ebccd493497a Reviewed-on: https://chromium-review.googlesource.com/809130 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#49903} [modify] https://crrev.com/ac5b4223adf2152e80f4b410011af966ebb8e4e5/test/cctest/heap/heap-tester.h [modify] https://crrev.com/ac5b4223adf2152e80f4b410011af966ebb8e4e5/test/cctest/heap/test-spaces.cc |
|||||||||||
►
Sign in to add a comment |
|||||||||||
Comment 1 by machenb...@chromium.org
, Dec 4 2017Components: -Blink>JavaScript Blink>JavaScript>GC