New issue
Advanced search Search tips

Issue 825351 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

Asserts in ScrollAnimator during page load

Project Member Reported by enne@chromium.org, Mar 23 2018

Issue description

On ToT (#545508) on debug Linux build.  Load slashdot.org in a window and alternatingly mash the home/end keys as the page loads.

[1:1:0323/140848.341312:FATAL:ScrollAnimator.cpp(164)] Check failed: run_state_ == RunState::kRunningOnMainThread || run_state_ == RunState::kRunningOnCompositor || run_state_ == RunState::kRunningOnCompositorButNeedsUpdate || run_state_ == RunState::kRunningOnCompositorButNeedsTakeover. 
#0 0x7f1a7c0344ad base::debug::StackTrace::StackTrace()
#1 0x7f1a7c032a6c base::debug::StackTrace::StackTrace()
#2 0x7f1a7c0b929a logging::LogMessage::~LogMessage()
#3 0x7f1a656baf1f blink::ScrollAnimator::WillAnimateToOffset()
#4 0x7f1a656baade blink::ScrollAnimator::UserScroll()
#5 0x7f1a67bb4275 blink::RootFrameViewport::UserScroll()
#6 0x7f1a681bd296 blink::LayoutView::Scroll()
#7 0x7f1a67e781ce blink::ScrollManager::LogicalScroll()
#8 0x7f1a67e78293 blink::ScrollManager::BubblingScroll()
#9 0x7f1a67e664e8 blink::KeyboardEventManager::DefaultArrowEventHandler()
#10 0x7f1a67e65efd blink::KeyboardEventManager::DefaultKeyboardEventHandler()
#11 0x7f1a67e5de1b blink::EventHandler::DefaultKeyboardEventHandler()
#12 0x7f1a677e548d blink::Node::DefaultEventHandler()
#13 0x7f1a67c700bf blink::HTMLElement::DefaultEventHandler()
#14 0x7f1a6785b2b6 blink::EventDispatcher::DispatchEventPostProcess()
#15 0x7f1a67859de0 blink::EventDispatcher::Dispatch()
#16 0x7f1a67857259 blink::Event::DispatchEvent()
#17 0x7f1a67858ea5 blink::EventDispatcher::DispatchEvent()
#18 0x7f1a677e49bd blink::Node::DispatchEventInternal()
#19 0x7f1a67870869 blink::EventTarget::DispatchEvent()
#20 0x7f1a67e659dd blink::KeyboardEventManager::KeyEvent()
#21 0x7f1a67e5ddaf blink::EventHandler::KeyEvent()
#22 0x7f1a67a88e48 blink::WebViewImpl::HandleKeyEvent()
#23 0x7f1a68428199 blink::PageWidgetDelegate::HandleInputEvent()
#24 0x7f1a67a87f7d blink::WebViewImpl::HandleInputEvent()
#25 0x7f1a67c020ac blink::WebViewFrameWidget::HandleInputEvent()
#26 0x7f1a7742f2fa content::RenderWidgetInputHandler::HandleInputEvent()
#27 0x7f1a775caf8a content::RenderWidget::HandleInputEvent()
#28 0x7f1a775bb72c content::RenderViewImpl::HandleInputEvent()
#29 0x7f1a7742a4c3 content::MainThreadEventQueue::HandleEventOnMainThread()
#30 0x7f1a7742ae90 content::QueuedWebInputEvent::Dispatch()
#31 0x7f1a77429ad8 content::MainThreadEventQueue::DispatchEvents()

 
Cc: bokan@chromium.org
Owner: chaopeng@chromium.org
Status: Assigned (was: Untriaged)
chaopeng@ please investigate. Looking at the code I wonder if the dcheck is wrong in that it needs to check kRunningOnCompositorButNeedsAdjustment as well?
This DCHECK fails at run_state_ == kRunningOnCompositorButNeedsAdjustment. kRunningOnCompositorButNeedsAdjustment seems similar to kRunningOnCompositorButNeedsUpdate. Can we just add kRunningOnCompositorButNeedsAdjustment in DCHECK?
Cc: ymalik@chromium.org

Comment 4 by bokan@chromium.org, Apr 27 2018

Cc: -ymalik@chromium.org skobes@chromium.org
Yash is no longer on Chrome. skobes@ would have context here if you have questions.

Comment 5 by skobes@chromium.org, Apr 27 2018

Re #2: that sounds reasonable.  Though it makes me wonder if we're properly handling the case where we need both an adjustment (to the scroll offset) and an update (to the animation curve).  These are really orthogonal concepts...
Project Member

Comment 6 by bugdroid1@chromium.org, Apr 30 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/caec43ce6f2dce67372258d383b42156df883dc3

commit caec43ce6f2dce67372258d383b42156df883dc3
Author: chaopeng <chaopeng@chromium.org>
Date: Mon Apr 30 16:49:36 2018

Add kRunningOnCompositorButNeedsAdjustment to DCHECK in WillAnimateToOffset

In some cases, ScrollAnimator::WillAnimateToOffset called with run_state_ ==
RunState::kRunningOnCompositorButNeedsAdjustment.

Bug:  825351 
Change-Id: I805625d87d469c77564391c83d381eb179c665c8
Reviewed-on: https://chromium-review.googlesource.com/1033015
Reviewed-by: Steve Kobes <skobes@chromium.org>
Reviewed-by: David Bokan <bokan@chromium.org>
Commit-Queue: Jianpeng Chao <chaopeng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#554790}
[modify] https://crrev.com/caec43ce6f2dce67372258d383b42156df883dc3/third_party/blink/renderer/platform/scroll/scroll_animator.cc

Status: Fixed (was: Assigned)

Sign in to add a comment