#1108433 chromium - dies while opening the profile switcher with SIGTRAP

Package:
chromium
Source:
chromium
Description:
web browser
Submitter:
Bastian Blank
Date:
2025-07-01 17:09:02 UTC
Severity:
normal
#1108433#5
Date:
2025-06-28 13:08:51 UTC
From:
To:
Since the update to 138.0.7204.49-1, chromium dies while opening the
profile switcher.

The complete output is just:
| [84206:84240:0628/150059.205276:ERROR:crypto/nss_util.cc:344] After loading Root Certs, loaded==false: NSS error code: -8018
| [84206:84206:0628/150059.251944:ERROR:components/dbus/xdg/request.cc:169] Request ended (non-user cancelled).
| [84206:84206:0628/150059.251982:ERROR:ui/base/accelerators/global_accelerator_listener/global_accelerator_listener_linux.cc:285] Failed to call BindShortcuts (error code 5).
[ waiting a bit, clicking on the profile button in the task bar ]
| [0628/150100.810768:WARNING:third_party/crashpad/crashpad/snapshot/linux/system_snapshot_linux.cc:416] format error
| [0628/150100.833321:ERROR:third_party/crashpad/crashpad/snapshot/elf/elf_dynamic_array_reader.h:64] tag not found
| zsh: trace trap  chromium

gdb shows:
| Thread 1 "chromium" received signal SIGTRAP, Trace/breakpoint trap.
| 0x0000558d4c62d172 in gfx::internal::ImageSkiaStorage::FindRepresentation(float, bool) const ()
| (gdb) bt
| #0  0x0000558d4c62d172 in gfx::internal::ImageSkiaStorage::FindRepresentation(float, bool) const ()
| #1  0x0000558d4c62e114 in gfx::ImageSkia::GetRepresentation(float) const ()
| #2  0x0000558d4dc460c5 in views::ImageView::OnPaint(gfx::Canvas*) ()
| #3  0x0000558d4dcd99e1 in views::View::Paint(views::PaintInfo const&) ()
| #4  0x0000558d4dcdd8fb in views::View::PaintChildren(views::PaintInfo const&) ()
| #5  0x0000558d4dcd9a30 in views::View::Paint(views::PaintInfo const&) ()
| #6  0x0000558d4dcde7b6 in views::View::PaintFromPaintRoot(ui::PaintContext const&) ()
| #7  0x0000558d4da56f6b in ui::Layer::PaintContentsToDisplayList() ()
| #8  0x0000558d4d09332b in cc::RecordingSource::Update(gfx::Size const&, float, cc::ContentLayerClient&, cc::Region&) ()
| #9  0x0000558d4d085720 in cc::PictureLayer::Update() ()
| #10 0x0000558d4d0de2fa in cc::LayerTreeHost::UpdateLayers() ()
| #11 0x0000558d4d1d0956 in cc::SingleThreadProxy::DoPainting(viz::BeginFrameArgs const&) ()
| #12 0x0000558d4d1d156f in cc::SingleThreadProxy::BeginMainFrame(viz::BeginFrameArgs const&) ()
| #13 0x0000558d4b98e763 in base::TaskAnnotator::RunTaskImpl(base::PendingTask&) ()
| #14 0x0000558d4b9b0d6c in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() ()
| #15 0x0000558d4ba25547 in base::MessagePumpGlib::Run(base::MessagePump::Delegate*) ()
| #16 0x0000558d4b9b17c9 in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) ()
| #17 0x0000558d4b9700e2 in base::RunLoop::Run(base::Location const&) ()
| #18 0x0000558d488e2768 in content::BrowserMainLoop::RunMainMessageLoop() ()
| #19 0x0000558d488de476 in content::BrowserMain(content::MainFunctionParams) ()
| #20 0x0000558d4a92462d in content::ContentMainRunnerImpl::RunBrowser(content::MainFunctionParams, bool) ()
| #21 0x0000558d4a9242ac in content::ContentMainRunnerImpl::Run() ()
| #22 0x0000558d4a920d8c in content::ContentMain(content::ContentMainParams) ()
| #23 0x0000558d45c062ed in ChromeMain ()
| #24 0x00007fbd44d17ca8 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
| #25 0x00007fbd44d17d65 in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
| #26 0x0000558d4583d021 in _start ()

It works if I start with a temporary profile (chromium --temp-profile).
So it got something to do with information in the profiles.

#1108433#10
Date:
2025-07-01 16:26:46 UTC
From:
To:
Hi,

Thanks for the report. Can you please also attach the output of
chrome://gpu ?  It's fine to get it with a temp profile if you're unable
to load any if your normal profiles due to the SIGTRAP.

Thanks,
Andres

#1108433#15
Date:
2025-07-01 16:56:47 UTC
From:
To:
Attached.  The same problem also exists on I think the same version on a
Fedora on Apple M2, aka no external problem.

It is triggered by fractional scaling of the display output.  So 200%
works, 175% fails.  Which makes sense, as the failing code tries to find
a version of some image in a useful scaled version.  The code includes
one DCHECK, which makes this a logic error.

I opened https://issues.chromium.org/issues/428748522 for it.

Bastian