On 12/29/24 14:49, Miroslav R. wrote:
Thanks for letting me know. That version hasn't made it to testing yet, but I can confirm installing it from unstable fixes the crash.

However, I noticed that the solution was to provide a custom optional header with the assert commented out. I just want to let you know that dereferencing an empty optional is undefined behavior: https:// en.cppreference.com/w/cpp/utility/optional/operator*
> > The upstream Chromium bug mentions the assert is also present in libc++,
yet does not trigger.

I think it would be safer to switch back to libc++ as I get the feeling libstdc++ is not really supported by upstream. Please reconsider.

Unfortunately, both library options have their own similar issues. Gcc/libstdc++ *is* supported upstream, it's just not their primary compiler. As upstream moves on to newer version of clang/llvm, we end up needing libc++ workarounds very similar to the <optional> header workaround due to older version of clang++ in debian. Eg,
https://salsa.debian.org/chromium-team/chromium/-/blob/master/debian/patches/bookworm/more-spaceships.patch?ref_type=heads




Thanks,
Miroslav

On 29. 12. 2024 19:21, Andres Salomon wrote:
Hi,

This bug is fixed in 131.0.6778.204-1. Please upgrade.

Thanks,
Andres

On 12/29/24 12:56, Miroslav R. wrote:
Package: chromium
Version: 131.0.6778.139-1
Severity: important
X-Debbugs-Cc: miroslavr...@gmail.com

Dear Maintainer,

Upgrading chromium from 131.0.6778.108-1 to 131.0.6778.139-1 introduced a crash
when closing certain tabs, particularly reddit.com.

Reproduction steps:
1. Open a tab with reddit.com.
2. Close the tab.

You may have to repeat the steps a few times.

The outcome is an assertion failure:
../../optional:475: _Tp
&std::_Optional_base_impl<content::DocumentAssociatedData,
std::_Optional_base<content::DocumentAssociatedData>>::_M_get() [_Tp =
content::DocumentAssociatedData, _Dp =
std::_Optional_base<content::DocumentAssociatedData>]: Assertion
'this->_M_is_engaged()' failed.

Callstack:
#0  0x00007fbc1409dc8c in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007fbc14049c42 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007fbc140324f0 in abort () from /lib/x86_64-linux-gnu/libc.so.6
#3  0x00007fbc142d4f9e in std::__glibcxx_assert_fail(char const*, int, char
const*, char const*) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00005610e787e848 in
content::FederatedAuthRequestImpl::CompleteRequest(blink::mojom::FederatedAuthRequestResult,
std::optional<content::FedCmRequestIdTokenStatus>,
std::optional<content::IdentityCredentialTokenError>, std::optional<GURL>
const&, std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, bool) ()
#5  0x00005610e7869ac4 in
content::FederatedAuthRequestImpl::CompleteRequestWithError(blink::mojom::FederatedAuthRequestResult,
std::optional<content::FedCmRequestIdTokenStatus>,
std::optional<content::IdentityCredentialTokenError>, bool) ()
#6  0x00005610e7869066 in
content::FederatedAuthRequestImpl::~FederatedAuthRequestImpl() ()
#7  0x00005610e787faf4 in non-virtual thunk to
content::DocumentService<blink::mojom::FederatedAuthRequest>::ResetAndDeleteThisInternal(base::PassKey<content::DocumentAssociatedData>)
()
#8  0x00005610e7457c39 in
content::DocumentAssociatedData::~DocumentAssociatedData() ()
#9  0x00005610e755eb9d in content::RenderFrameHostImpl::~RenderFrameHostImpl()
()
#10 0x00005610e75cb6be in
content::RenderFrameHostManager::~RenderFrameHostManager() ()
#11 0x00005610e74650dc in content::FrameTreeNode::~FrameTreeNode() ()
#12 0x00005610e745d340 in content::FrameTree::~FrameTree() ()
#13 0x00005610e77de474 in content::WebContentsImpl::~WebContentsImpl() ()
#14 0x00005610e90c1d25 in tabs::TabModel::~TabModel() ()
#15 0x00005610e90c82c1 in
TabStripModel::SendDetachWebContentsNotifications(TabStripModel::DetachNotifications*)
()
#16 0x00005610e90cd0b1 in
TabStripModel::CloseTabs(base::span<content::WebContents* const,
18446744073709551615ul, content::WebContents* const*>, unsigned int) ()
#17 0x00005610e90cd924 in TabStripModel::CloseWebContentsAt(int, unsigned int)
()
#18 0x00005610e780efef in non-virtual thunk to
content::WebContentsImpl::Close() ()
#19 0x00005610e757f471 in
content::RenderFrameHostImpl::ClosePageIgnoringUnloadEvents(content::RenderFrameHostImpl::ClosePageSource)
()
#20 0x00005610e47b1521 in
bluetooth::mojom::FakeCentral_SimulatePreconnectedPeripheral_ForwardToCallback::Accept(mojo::Message*)
()
#21 0x00005610e9e6b848 in
mojo::InterfaceEndpointClient::HandleIncomingMessageThunk::Accept(mojo::Message*)
()
#22 0x00005610e9e72f28 in mojo::MessageDispatcher::Accept(mojo::Message*) ()
#23 0x00005610e9e6d6e1 in
mojo::InterfaceEndpointClient::HandleIncomingMessage(mojo::Message*) ()
#24 0x00005610eaa343cc in
IPC::ChannelAssociatedGroupController::AcceptOnEndpointThread(mojo::Message,
IPC::(anonymous namespace)::ScopedUrgentMessageNotification) [clone
.9e1349778593118307bb305d0cef2429] ()
#25 0x00005610eaa34939 in
base::internal::Invoker<base::internal::FunctorTraits<void
(IPC::ChannelAssociatedGroupController::*&&)(mojo::Message, IPC:: (anonymous
namespace)::ScopedUrgentMessageNotification),
IPC::ChannelAssociatedGroupController*&&, mojo::Message&&, IPC:: (anonymous namespace)::ScopedUrgentMessageNotification&&>, base::internal::BindState<true, true, false, void (IPC::ChannelAssociatedGroupController::*) (mojo::Message,
IPC::(anonymous namespace)::ScopedUrgentMessageNotification),
scoped_refptr<IPC::ChannelAssociatedGroupController>, mojo::Message,
IPC::(anonymous namespace)::ScopedUrgentMessageNotification>, void
()>::RunOnce(base::internal::BindStateBase*) ()
#26 0x00005610e9efd203 in base::TaskAnnotator::RunTaskImpl(base::PendingTask&)
()
#27 0x00005610e9f1ecd8 in
base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork()
()
#28 0x00005610e9f8c67f in base::(anonymous
namespace)::WorkSourceDispatch(_GSource*, int (*)(void*), void*) ()
#29 0x00007fbc1630b81f in ?? () from /lib/x86_64-linux-gnu/ libglib-2.0.so.0 #30 0x00007fbc1630da57 in ?? () from /lib/x86_64-linux-gnu/ libglib-2.0.so.0 #31 0x00007fbc1630e1c0 in g_main_context_iteration () from /lib/ x86_64-linux-
gnu/libglib-2.0.so.0
#32 0x00005610e9f8b0cb in
base::MessagePumpGlib::Run(base::MessagePump::Delegate*) ()
#33 0x00005610e9f1f858 in
base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool,
base::TimeDelta) ()
#34 0x00005610e9edd85c in base::RunLoop::Run(base::Location const&) ()
#35 0x00005610e6f3c20e in content::BrowserMainLoop::RunMainMessageLoop() () #36 0x00005610e6f38051 in content::BrowserMain(content::MainFunctionParams) ()
#37 0x00005610e8fd4f2e in
content::ContentMainRunnerImpl::RunBrowser(content::MainFunctionParams, bool)
()
#38 0x00005610e8fd49fb in content::ContentMainRunnerImpl::Run() ()
#39 0x00005610e8fd18f8 in content::ContentMain(content::ContentMainParams) ()
#40 0x00005610e4532e29 in ChromeMain ()
#41 0x00007fbc14033d68 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#42 0x00007fbc14033e25 in __libc_start_main () from /lib/x86_64-linux-
gnu/libc.so.6
#43 0x00005610e41e1021 in _start ()

I suspect https://salsa.debian.org/chromium-
team/chromium/-/commit/586527a68c27e6ad90387dd6c182e82f200a777f to be the cause, which switched from libc++ to libstdc++ for building Chromium. The
reason is I found a very similar (if not the same) issue on the upstream
tracker: https://issues.chromium.org/issues/361116760 Chromium has issues when
built with libstdc++.

Would it be possible to revert the Debian commit?

Best regards,
Miroslav


-- System Information:
Debian Release: trixie/sid
   APT prefers testing-debug
   APT policy: (500, 'testing-debug'), (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 6.12.6-amd64 (SMP w/4 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages chromium depends on:
ii  chromium-common                             131.0.6778.139-1
ii  libasound2t64                               1.2.12-1+b1
ii  libatk-bridge2.0-0t64                       2.54.0-1
ii  libatk1.0-0t64                              2.54.0-1
ii  libatomic1                                  14.2.0-8
ii  libatspi2.0-0t64                            2.54.0-1
ii  libc6                                       2.40-4
ii  libcairo2                                   1.18.2-2
ii  libcups2t64                                 2.4.10-2+b1
ii  libdav1d7                                   1.5.0-1+b1
ii  libdbus-1-3                                 1.16.0-1
ii  libdouble-conversion3                       3.3.0-1+b2
ii  libdrm2                                     2.4.123-1
ii  libevent-2.1-7t64 2.1.12-stable-10+b1
ii  libexpat1                                   2.6.4-1
ii  libflac12t64                                1.4.3+ds-4
ii  libfontconfig1                              2.15.0-1.1+b1
ii  libfreetype6                                2.13.3+dfsg-1
ii  libgbm1                                     24.2.8-1
ii  libgcc-s1                                   14.2.0-8
ii  libglib2.0-0t64                             2.82.4-1
ii  libgtk-3-0t64                               3.24.43-4
ii  libharfbuzz-subset0                         10.1.0-1
ii  libharfbuzz0b                               10.1.0-1
ii  libjpeg62-turbo                             1:2.1.5-3+b1
ii  liblcms2-2                                  2.16-2
ii  libminizip1t64 1:1.3.dfsg+really1.3.1-1+b1
ii  libnspr4                                    2:4.36-1
ii  libnss3                                     2:3.106-1
ii  libopenh264-7                               2.5.0+dfsg-1
ii  libopenjp2-7                                2.5.0-2+b4
ii  libopus0                                    1.5.2-2
ii  libpango-1.0-0                              1.55.0+ds-3
ii  libpng16-16t64                              1.6.44-3
ii  libpulse0                                   17.0+dfsg1-1
ii  libstdc++6                                  14.2.0-8
ii  libtiff6 4.5.1+git230720-5
ii  libudev1                                    257.1-4
ii  libx11-6                                    2:1.8.10-2
ii  libxcb1                                     1.17.0-2+b1
ii  libxcomposite1                              1:0.4.6-1
ii  libxdamage1                                 1:1.1.6-1+b2
ii  libxext6                                    2:1.3.4-1+b2
ii  libxfixes3                                  1:6.0.0-2+b3
ii  libxkbcommon0                               1.7.0-2
ii  libxml2 2.12.7+dfsg+really2.9.14-0.2+b1
ii  libxnvctrl0                                 535.171.04-1+b1
ii  libxrandr2                                  2:1.5.4-1+b2
ii  libxslt1.1                                  1.1.35-1.1+b1
ii  libzstd1                                    1.5.6+dfsg-1+b1
ii  xdg-desktop-portal-gtk [xdg-desktop-portal  1.15.1-1+b1
     -backend]
ii  xdg-desktop-portal-kde [xdg-desktop-portal  6.2.4-1
     -backend]
ii  zlib1g 1:1.3.dfsg+really1.3.1-1+b1

Versions of packages chromium recommends:
ii  chromium-sandbox  131.0.6778.139-1

Versions of packages chromium suggests:
pn  chromium-driver  <none>
pn  chromium-l10n    <none>
pn  chromium-shell   <none>

Versions of packages chromium-common depends on:
ii  libc6        2.40-4
ii  libdrm2      2.4.123-1
ii  libgcc-s1    14.2.0-8
ii  libstdc++6   14.2.0-8
ii  libx11-6     2:1.8.10-2
ii  libxcb1      1.17.0-2+b1
ii  libxnvctrl0  535.171.04-1+b1
ii  x11-utils    7.7+7
ii  xdg-utils    1.2.1-2
ii  zlib1g       1:1.3.dfsg+really1.3.1-1+b1

Versions of packages chromium-common recommends:
ii  chromium-sandbox                        131.0.6778.139-1
ii  fonts-liberation                        1:2.1.5-3
ii  libgl1-mesa-dri                         24.2.8-1
ii  plasma-workspace [notification-daemon]  4:6.2.4-1
ii  system-config-printer                   1.5.18-3
ii  udev                                    257.1-4
ii  upower                                  1.90.6-2
ii  xfce4-notifyd [notification-daemon]     0.9.6-1

chromium-dbgsym depends on no packages.

Versions of packages chromium-sandbox depends on:
ii  libc6  2.40-4

-- no debconf information


Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to