New issue
Advanced search Search tips

Issue 838699 link

Starred by 2 users

Issue metadata

Status: WontFix
Owner:
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment

systematic DCHECK() hit in cursor_util.cc: "Check failed: total_width % frame_width == 0 (12 vs. 0)"

Project Member Reported by mcasas@chromium.org, May 1 2018

Issue description

On my nautilus, ToT chrome developer build (68.0.3407.0) on a 10614.0.0 CrOs test image,
I constantly hit the said DCHECK (it's enabled in my build.gn), which I can symbolise,
see below.

The hit DCHECK is here:
https://cs.chromium.org/chromium/src/ui/base/cursor/cursor_util.cc?type=cs&q=cursor_util.cc+total_width&sq=package:chromium&l=130

The callstack is pretty ancient, so something might have changed in the cursor png itself ?

Adding some peeps in the hope that they might know of recent work in that area.



device-enumerator: scan all dirs
  device-enumerator: scanning /sys/bus
  device-enumerator: scanning /sys/class
[22613:22613:0501/171433.518163:ERROR:display_manager.cc(1984)] Could not find display:12528934998507520
device-enumerator: scan all dirs
  device-enumerator: scanning /sys/bus
  device-enumerator: scanning /sys/class
[22613:22613:0501/171433.712475:ERROR:input_method_manager_impl.cc(1080)] IMEEngine for "fgoepimhcoialccpbmpnnblemnepkkao" is not registered
[22613:22613:0501/171433.755454:ERROR:login_display_host_mojo.cc(86)] Not implemented reached in virtual void chromeos::LoginDisplayHostMojo::SetStatusAreaVisible(bool)
[22613:22613:0501/171433.817317:FATAL:cursor_util.cc(130)] Check failed: total_width % frame_width == 0 (12 vs. 0)
#0 0x57399b1a437c base::debug::StackTrace::StackTrace()
#1 0x57399b114380 logging::LogMessage::~LogMessage()
#2 0x57399b23d3c9 ui::GetAnimatedCursorBitmaps()
#3 0x57399b245aba ui::CursorLoaderOzone::LoadAnimatedCursor()
#4 0x57399b244529 ui::ImageCursors::ReloadCursors()
#5 0x57399b24437c ui::ImageCursors::SetDisplay()
#6 0x57399d2ec892 ui::ws::(anonymous namespace)::SetDisplayOnResourceThread()
#7 0x57399d2ed66b _ZN4base8internal7InvokerINS0_9BindStateIPFvNS_7WeakPtrIN2ui12ImageCursorsEEERKN7display7DisplayEfEJS6_S8_fEEEFvvEE3RunEPNS0_13BindStateBaseE
#8 0x57399b0fcf9e base::debug::TaskAnnotator::RunTask()
#9 0x57399b1cb0c6 base::internal::IncomingTaskQueue::RunTask()
#10 0x57399b11cbb6 base::MessageLoop::RunTask()
#11 0x57399b11cfc7 base::MessageLoop::DeferOrRunPendingTask()
#12 0x57399b11d258 base::MessageLoop::DoWork()
#13 0x57399b1b7fc9 base::MessagePumpLibevent::Run()
#14 0x57399b11c4e1 base::MessageLoop::Run()
#15 0x57399b148236 base::RunLoop::Run()
#16 0x57399ad37514 ChromeBrowserMainParts::MainMessageLoopRun()
#17 0x573998ea96d4 content::BrowserMainLoop::RunMainMessageLoopParts()
#18 0x573998eac463 content::BrowserMainRunnerImpl::Run()
#19 0x573998ea557d content::BrowserMain()
#20 0x57399ad1cc34 content::RunNamedProcessTypeMain()
#21 0x57399ad1dfa3 content::ContentMainRunnerImpl::Run()
#22 0x57399ad2a7be service_manager::Main()
#23 0x57399ad1b821 content::ContentMain()
#24 0x573998073a3f ChromeMain
#25 0x7829a2003736 __libc_start_main
#26 0x573998073879 _start

Received signal 6
#0 0x57399b1a437c base::debug::StackTrace::StackTrace()
#1 0x57399b1a3e51 base::debug::(anonymous namespace)::StackDumpSignalHandler()
#2 0x7829a2f572e0 <unknown>
#3 0x7829a2016dd2 gsignal
#4 0x7829a2018bf6 abort
#5 0x57399b1a2ba5 base::debug::BreakDebugger()
#6 0x57399b114809 logging::LogMessage::~LogMessage()
#7 0x57399b23d3c9 ui::GetAnimatedCursorBitmaps()
#8 0x57399b245aba ui::CursorLoaderOzone::LoadAnimatedCursor()
#9 0x57399b244529 ui::ImageCursors::ReloadCursors()
#10 0x57399b24437c ui::ImageCursors::SetDisplay()
#11 0x57399d2ec892 ui::ws::(anonymous namespace)::SetDisplayOnResourceThread()
#12 0x57399d2ed66b _ZN4base8internal7InvokerINS0_9BindStateIPFvNS_7WeakPtrIN2ui12ImageCursorsEEERKN7display7DisplayEfEJS6_S8_fEEEFvvEE3RunEPNS0_13BindStateBaseE
#13 0x57399b0fcf9e base::debug::TaskAnnotator::RunTask()
#14 0x57399b1cb0c6 base::internal::IncomingTaskQueue::RunTask()
#15 0x57399b11cbb6 base::MessageLoop::RunTask()
#16 0x57399b11cfc7 base::MessageLoop::DeferOrRunPendingTask()
#17 0x57399b11d258 base::MessageLoop::DoWork()
#18 0x57399b1b7fc9 base::MessagePumpLibevent::Run()
#19 0x57399b11c4e1 base::MessageLoop::Run()
#20 0x57399b148236 base::RunLoop::Run()
#21 0x57399ad37514 ChromeBrowserMainParts::MainMessageLoopRun()
#22 0x573998ea96d4 content::BrowserMainLoop::RunMainMessageLoopParts()
#23 0x573998eac463 content::BrowserMainRunnerImpl::Run()
#24 0x573998ea557d content::BrowserMain()
#25 0x57399ad1cc34 content::RunNamedProcessTypeMain()
#26 0x57399ad1dfa3 content::ContentMainRunnerImpl::Run()
#27 0x57399ad2a7be service_manager::Main()
#28 0x57399ad1b821 content::ContentMain()
#29 0x573998073a3f ChromeMain
#30 0x7829a2003736 __libc_start_main
#31 0x573998073879 _start
  r8: 0000000000000000  r9: 00007829a19f6740 r10: 0000000000000008 r11: 0000000000000206
 r12: 00007ffd8ec313b1 r13: 00007ffd8ec319a0 r14: 00007ffd8ec31500 r15: 00007ffd8ec313b0
  di: 0000000000005855  si: 0000000000005855  bp: 00007ffd8ec31370  bx: 00007ffd8ec31500
  dx: 0000000000000006  ax: 0000000000000000  cx: 00007829a2016dd2  sp: 00007ffd8ec31248
  ip: 00007829a2016dd2 efl: 0000000000000206 cgf: 0000000000000033 erf: 0000000000000000
 trp: 0000000000000000 msk: 0000000000000000 cr2: 0000000000000000
[end of stack trace]
Calling _exit(1). Core file will not be generated.

 
Owner: msw@chromium.org
Status: Assigned (was: Untriaged)
msw@ you last touched the cursor code maybe? Could you share your thoughts and/or direct appropriately?

Comment 2 by msw@chromium.org, May 2 2018

Cc: msw@chromium.org
Owner: ----
Status: Available (was: Assigned)
Maybe you're thinking of Elliot? I'm not familiar with cursor code.

Comment 3 by msw@chromium.org, May 2 2018

Looks like the code expects the cursor bitmaps to contain a set of horizontally-concatenated images, where each image's width is equal to the shared height.
I bet something's wrong with the image. mcasas, can you log the resource id? otherwise, I can poke around the code to try to figure it out.

Comment 4 by msw@chromium.org, May 2 2018

Labels: Needs-Feedback
Owner: mcasas@chromium.org
Status: Assigned (was: Available)
Nevermind! Looks like IDR_AURA_CURSOR_THROBBER == common/pointers/throbber.png
These images haven't changed in 2+ years and their dimensions satisfy the expectation: 576%16==0 and 1152%32==0
I'm not sure what might cause the images loaded on your system to be sized differently...
Perhaps your resource ID mappings are stale and it's grabbing the wrong image?
Can you try a fresh Chrome OS image and fresh ToT build?

Comment 5 by msw@chromium.org, May 2 2018

It's also possible that the resource ids are conflicting due to a grdp file using more than its alloted number of ids.
I could speculate further, but a fresh build is the first step worth trying.
Status: WontFix (was: Assigned)
Not hitting it anymore! With 10639 dev-channel nautilus test.
Maybe some strange kink? Thanks for the quick turnaround !

Sign in to add a comment