Following the release of MariaDB 10.5.10 on Hirsute, we have discovered that appending -flto and -ffat-lto-objects as compile flags will cause MariaDB to crash with SIGABRT in pthread_exit when closing the replication slave thread.
This is happens regardless if MariaDB is compiled with PERFSCHEMA or not.
Steps to reproduce:
Set up an Ubuntu 21.04 docker container or VM.
run
debian/autobake-deb.sh
or
dpkg-buildpackage --build=binary
from the base server directory.
Notice the extra -flto and -ffat-lto-objects flags being passed during compilation (and linking).
Run any replication test such as rpl_sp
#1 0x00007f5831212864 in __GI_abort () at abort.c:79
#2 0x000055ffc77d5bc1 in _Unwind_SetGR.cold ()
#3 0x000055ffc7fa575d in __gcc_personality_v0 ()
#4 0x00007f5830fb1604 in ?? () from /lib/x86_64-linux-gnu/libgcc_s.so.1
#5 0x00007f5830fb1cf2 in _Unwind_ForcedUnwind () from /lib/x86_64-linux-gnu/libgcc_s.so.1
#6 0x00007f5831c76d46 in __GI___pthread_unwind (buf=<optimized out>) at unwind.c:131
#7 0x00007f5831c6e732 in __do_cancel () at pthreadP.h:307
#8 __pthread_exit (value=value@entry=0x0) at pthread_exit.c:28
#9 0x000055ffc784b1b3 in handle_slave_sql (arg=0x55ffcb161d00) at ./sql/slave.cc:5298
#10 0x00007f5831c6d450 in start_thread (arg=0x7f58240dd640) at pthread_create.c:473
#11 0x00007f5831303d53 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Attachments
Issue Links
causes
MCOL-5819columnstore-23.02.4 (server 11.2 branch) fails to compile with LTO (default Ubuntu 22.04)
Open
is duplicated by
MDEV-28946STOP SLAVE or slave errors (ex 1062, 1032) constantly crash MariaDB server
Closed
MDEV-29229Server crashes every time the slave SQL thread encounters an error
Closed
relates to
MDEV-32251Crash in stack unwinding during pthread_exit() in centos7-bintar
just FYI (want to write it down somewhere before I forget):
flags are added by dpkg-buildflags
it's a perl script, -flto comes from the Dpkg::Vendor::Debian module (/usr/share/perl5/Dpkg/Vendor/Debian.pm), it's hard-coded there
but it checks the exception list, /usr/share/lto-disabled-list/lto-disabled-list
Sergei Golubchik
added a comment - just FYI (want to write it down somewhere before I forget):
flags are added by dpkg-buildflags
it's a perl script, -flto comes from the Dpkg::Vendor::Debian module ( /usr/share/perl5/Dpkg/Vendor/Debian.pm ), it's hard-coded there
but it checks the exception list, /usr/share/lto-disabled-list/lto-disabled-list
In case link-time optimization generates invalid code due to undefined behavior, then MDEV-26272 (affecting replication) would be a good candidate. While GCC’s -fsanitize=undefined does not complain much nowadays, clang’s would cause the server to crash on startup due to MDEV-26272.
Marko Mäkelä
added a comment - In case link-time optimization generates invalid code due to undefined behavior, then MDEV-26272 (affecting replication) would be a good candidate. While GCC’s -fsanitize=undefined does not complain much nowadays, clang ’s would cause the server to crash on startup due to MDEV-26272 .
Daniel Black
added a comment - LTO removing the exception catching code: https://bugs.launchpad.net/ubuntu/+source/mariadb-10.6/+bug/1970634 resulting in assertion ( MDEV-28441 )
I ran mtr tests on the quay.io/mariadb-foundation/mariadb-devel:10.8 based on our ubuntu jammy builds (like MDBF-453) and got the consistent crashes on the stopping of the slave thread like shown here.
Daniel Black
added a comment - I ran mtr tests on the quay.io/mariadb-foundation/mariadb-devel:10.8 based on our ubuntu jammy builds (like MDBF-453 ) and got the consistent crashes on the stopping of the slave thread like shown here.
If we can't find a solution maybe we could pull in https://git.launchpad.net/ubuntu/+source/mariadb-10.6/commit/?id=ae532f091e888f9302d2a5f3aad4c0b74521d158 before the release (10.6+ as ubuntu packages 10.6 on 22.04).
Unable to reproduce with clang-14.0.0 / gcc-12.1.1 (fc36) with the CMAKE_C{,XX}_FLAGS and CMAKE_LINKER_FLAGS. containing -flto.
only gcc supported -ffat-lto-objects
Daniel Black
added a comment - Unable to reproduce with clang-14.0.0 / gcc-12.1.1 (fc36) with the CMAKE_C{,XX}_FLAGS and CMAKE_LINKER_FLAGS . containing -flto .
only gcc supported -ffat-lto-objects
Unfortunately there're lots of places that throw exceptions (in oqgraph and columnstore) and crash with lto, and they cannot be fixed like above.
Sergei Golubchik
added a comment - There are many issues related to lto. The fix for the replication crash could be
MDEV-25633 MariaDB crashes when compiled with link time optimizations
when compiled with gcc -flto -ffat-lto-objects replication was crashing
when stopping the slave sql thread, during the stack unwinding on the
pthread_exit(0) call.
While the actual reason for the crash is unclear, pthread_exit() is
a complex function that throws an exception to properly unwind the
stack and call all necessary destructors.
There is no need to do that at the end of the thread start_routine
where a simple return(0) will suffice (man pthread_create).
diff --git a/sql/slave.cc b/sql/slave.cc
--- a/sql/slave.cc
+++ b/sql/slave.cc
@@ -5645,7 +5645,6 @@ pthread_handler_t handle_slave_sql(void *arg)
DBUG_LEAVE; // Must match DBUG_ENTER()
my_thread_end();
ERR_remove_state(0);
- pthread_exit(0);
return 0; // Avoid compiler warnings
}
Unfortunately there're lots of places that throw exceptions (in oqgraph and columnstore) and crash with lto, and they cannot be fixed like above.
Otto Kekäläinen
added a comment - This issue still exists. Filed https://bugs.launchpad.net/ubuntu/+source/mariadb/+bug/2038500 to track this and to remember to remove the workaround eventually.
From the stacktrace in the description, this looks similar to MDEV-32251:
#1 0x00007f5831212864 in __GI_abort () at abort.c:79
#2 0x000055ffc77d5bc1 in _Unwind_SetGR.cold ()
#3 0x000055ffc7fa575d in __gcc_personality_v0 ()
#4 0x00007f5830fb1604 in ?? () from /lib/x86_64-linux-gnu/libgcc_s.so.1
#5 0x00007f5830fb1cf2 in _Unwind_ForcedUnwind () from /lib/x86_64-linux-gnu/libgcc_s.so.1
#6 0x00007f5831c76d46 in __GI___pthread_unwind (buf=<optimized out>) at unwind.c:131
#7 0x00007f5831c6e732 in __do_cancel () at pthreadP.h:307
#8 __pthread_exit (value=value@entry=0x0) at pthread_exit.c:28
#9 0x000055ffc784b1b3 in handle_slave_sql (arg=0x55ffcb161d00) at ./sql/slave.cc:5298
We see that __pthread_exit() goes through dynamic libgcc_s.so, but the
functions __gcc_personality_v0 and _Unwind_SetGR.cold are inside the
mariadbd binary. We can see the mariadbd symbols live in 0x000055ff... while
the libgcc_s.so symbols live in 0x00007f58...
And in cmake/build_configurations/mysql_release.cmake I see that it uses
-lstatic-libgcc:
So the code crashes exactly at the place where the dynamic libgcc code calls
into what seems to be statically linked libgcc. So this seems to be the
likely problem in this case also.
Is there still a way to reproduce this? If so, try removing the 4 occurences
of -static-libgcc from cmake/build_configurations/mysql_release.cmake and
see if it solves the problem. The dependency on LTO might be only
accidental.
It doesn't seem correct to use -lstatic-libgcc, static linking has been
problematic for many years. I think it should be removed in any case.
Kristian Nielsen
added a comment - - edited From the stacktrace in the description, this looks similar to MDEV-32251 :
#1 0x00007f5831212864 in __GI_abort () at abort.c:79
#2 0x000055ffc77d5bc1 in _Unwind_SetGR.cold ()
#3 0x000055ffc7fa575d in __gcc_personality_v0 ()
#4 0x00007f5830fb1604 in ?? () from /lib/x86_64-linux-gnu/libgcc_s.so.1
#5 0x00007f5830fb1cf2 in _Unwind_ForcedUnwind () from /lib/x86_64-linux-gnu/libgcc_s.so.1
#6 0x00007f5831c76d46 in __GI___pthread_unwind (buf=<optimized out>) at unwind.c:131
#7 0x00007f5831c6e732 in __do_cancel () at pthreadP.h:307
#8 __pthread_exit (value=value@entry=0x0) at pthread_exit.c:28
#9 0x000055ffc784b1b3 in handle_slave_sql (arg=0x55ffcb161d00) at ./sql/slave.cc:5298
We see that __pthread_exit() goes through dynamic libgcc_s.so, but the
functions __gcc_personality_v0 and _Unwind_SetGR.cold are inside the
mariadbd binary. We can see the mariadbd symbols live in 0x000055ff... while
the libgcc_s.so symbols live in 0x00007f58...
And in cmake/build_configurations/mysql_release.cmake I see that it uses
-lstatic-libgcc:
SET(COMMON_CXX_FLAGS "-g -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing -Wno-uninitialized")
So the code crashes exactly at the place where the dynamic libgcc code calls
into what seems to be statically linked libgcc. So this seems to be the
likely problem in this case also.
Is there still a way to reproduce this? If so, try removing the 4 occurences
of -static-libgcc from cmake/build_configurations/mysql_release.cmake and
see if it solves the problem. The dependency on LTO might be only
accidental.
It doesn't seem correct to use -lstatic-libgcc, static linking has been
problematic for many years. I think it should be removed in any case.
Thanks, knielsen. Without -static-libgcc it doesn't crash for me. There were few compilation failures though, easy to fix. Otherwise it appears to work now.
Sergei Golubchik
added a comment - Thanks, knielsen . Without -static-libgcc it doesn't crash for me. There were few compilation failures though, easy to fix. Otherwise it appears to work now.
259233e2e94 don't disable lto in DEB builds
f1644d8d17a MDEV-25633 MariaDB crashes when compiled with link time optimizations
24a276256ce better disable lto for libmysqld_exports.cc
475c39cdbfc C/C compilation failures under -flto
(including commits inside 475c39cdbfc)
Sergei Golubchik
added a comment - cvicentiu , please, see commits
259233e2e94 don't disable lto in DEB builds
f1644d8d17a MDEV-25633 MariaDB crashes when compiled with link time optimizations
24a276256ce better disable lto for libmysqld_exports.cc
475c39cdbfc C/C compilation failures under -flto
(including commits inside 475c39cdbfc)
Otto Kekäläinen
added a comment - https://bugs.launchpad.net/ubuntu/+source/mariadb/+bug/2038500
I tested again building on Ubuntu 24.04 Noble with latest dependencies at https://launchpadlibrarian.net/728345044/buildlog_ubuntu-noble-amd64.mariadb_1%3A10.11.7-5~bpo24.04.1~1715052025.97428f7b341+debian.latest_BUILDING.txt.gz and it is still failing on this bug.
The build log referenced by Otto two comments back still uses -static-libgcc in the compile, so that's why it's still failing, presumably.
Kristian Nielsen
added a comment - The build log referenced by Otto two comments back still uses -static-libgcc in the compile, so that's why it's still failing, presumably.
Sergei Golubchik
added a comment - cherry-picked into 10.6, new commit hashes:
397762d4e2e don't disable lto in DEB builds
ea07244d444 MDEV-25633 MariaDB crashes when compiled with link time optimizatio>
b6cd03d7b04 better disable lto for libmysqld_exports.cc
2ea6c73a4d2 C/C compilation failures under -flto
branch bb-10.6- MDEV-25633
Was this really fixed in 11.2.6, 11.4.4 and 11.6.2? What is the impact of this revert due to MCOL-5819? Does it only affect Ubuntu packages?
Marko Mäkelä
added a comment - Was this really fixed in 11.2.6, 11.4.4 and 11.6.2? What is the impact of this revert due to MCOL-5819 ? Does it only affect Ubuntu packages?
It was fixed, in the sense that it doesn't crash (except for MCOL-5819).
It looks like only Ubuntu and derivatives are affected, but I think it'd be safer to disable LTO for ColumnStore unconditionally, I'll try that.
Sergei Golubchik
added a comment - It was fixed, in the sense that it doesn't crash (except for MCOL-5819 ).
It looks like only Ubuntu and derivatives are affected, but I think it'd be safer to disable LTO for ColumnStore unconditionally, I'll try that.
People
Sergei Golubchik
Vicențiu Ciorbaru
Votes:
1Vote for this issue
Watchers:
9Start watching this issue
Dates
Created:
Updated:
Resolved:
Git Integration
Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.
{"report":{"fcp":1461.0999999046326,"ttfb":371.19999980926514,"pageVisibility":"visible","entityId":99507,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":0.5,"journeyId":"fa4207b3-422f-47e8-a6f2-30fce6dad4b4","navigationType":0,"readyForUser":1539.8999996185303,"redirectCount":0,"resourceLoadedEnd":2171.5999999046326,"resourceLoadedStart":377,"resourceTiming":[{"duration":610.5,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":377,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":377,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":987.5,"responseStart":0,"secureConnectionStart":0},{"duration":610.5,"initiatorType":"link","name":"https://jira.mariadb.org/s/7ebd35e77e471bc30ff0eba799ebc151-CDN/lu2cib/820016/12ta74/494e4c556ecbb29f90a3d3b4f09cb99c/_/download/contextbatch/css/jira.browse.project,project.issue.navigator,jira.view.issue,jira.general,jira.global,atl.general,-_super/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true&whisper-enabled=true","startTime":377.2999997138977,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":377.2999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":987.7999997138977,"responseStart":0,"secureConnectionStart":0},{"duration":619.7999997138977,"initiatorType":"script","name":"https://jira.mariadb.org/s/0917945aaa57108d00c5076fea35e069-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":377.5,"connectEnd":377.5,"connectStart":377.5,"domainLookupEnd":377.5,"domainLookupStart":377.5,"fetchStart":377.5,"redirectEnd":0,"redirectStart":0,"requestStart":377.5,"responseEnd":997.2999997138977,"responseStart":997.2999997138977,"secureConnectionStart":377.5},{"duration":666.4000000953674,"initiatorType":"script","name":"https://jira.mariadb.org/s/2d8175ec2fa4c816e8023260bd8c1786-CDN/lu2cib/820016/12ta74/494e4c556ecbb29f90a3d3b4f09cb99c/_/download/contextbatch/js/jira.browse.project,project.issue.navigator,jira.view.issue,jira.general,jira.global,atl.general,-_super/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en&slack-enabled=true&whisper-enabled=true","startTime":377.69999980926514,"connectEnd":377.69999980926514,"connectStart":377.69999980926514,"domainLookupEnd":377.69999980926514,"domainLookupStart":377.69999980926514,"fetchStart":377.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":377.69999980926514,"responseEnd":1044.0999999046326,"responseStart":1044.0999999046326,"secureConnectionStart":377.69999980926514},{"duration":669.6000003814697,"initiatorType":"script","name":"https://jira.mariadb.org/s/a9324d6758d385eb45c462685ad88f1d-CDN/lu2cib/820016/12ta74/c92c0caa9a024ae85b0ebdbed7fb4bd7/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en","startTime":377.8999996185303,"connectEnd":377.8999996185303,"connectStart":377.8999996185303,"domainLookupEnd":377.8999996185303,"domainLookupStart":377.8999996185303,"fetchStart":377.8999996185303,"redirectEnd":0,"redirectStart":0,"requestStart":377.8999996185303,"responseEnd":1047.5,"responseStart":1047.5,"secureConnectionStart":377.8999996185303},{"duration":669.9000000953674,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":378.09999990463257,"connectEnd":378.09999990463257,"connectStart":378.09999990463257,"domainLookupEnd":378.09999990463257,"domainLookupStart":378.09999990463257,"fetchStart":378.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":378.09999990463257,"responseEnd":1048,"responseStart":1048,"secureConnectionStart":378.09999990463257},{"duration":670.1999998092651,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":378.19999980926514,"connectEnd":378.19999980926514,"connectStart":378.19999980926514,"domainLookupEnd":378.19999980926514,"domainLookupStart":378.19999980926514,"fetchStart":378.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":378.19999980926514,"responseEnd":1048.3999996185303,"responseStart":1048.3999996185303,"secureConnectionStart":378.19999980926514},{"duration":764.5,"initiatorType":"link","name":"https://jira.mariadb.org/s/b04b06a02d1959df322d9cded3aeecc1-CDN/lu2cib/820016/12ta74/a2ff6aa845ffc9a1d22fe23d9ee791fc/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":378.5,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":378.5,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1143,"responseStart":0,"secureConnectionStart":0},{"duration":670.2999997138977,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":378.5,"connectEnd":378.5,"connectStart":378.5,"domainLookupEnd":378.5,"domainLookupStart":378.5,"fetchStart":378.5,"redirectEnd":0,"redirectStart":0,"requestStart":378.5,"responseEnd":1048.7999997138977,"responseStart":1048.7999997138977,"secureConnectionStart":378.5},{"duration":764.5,"initiatorType":"link","name":"https://jira.mariadb.org/s/3ac36323ba5e4eb0af2aa7ac7211b4bb-CDN/lu2cib/820016/12ta74/d176f0986478cc64f24226b3d20c140d/_/download/contextbatch/css/com.atlassian.jira.projects.sidebar.init,-_super,-project.issue.navigator,-jira.view.issue/batch.css?jira.create.linked.issue=true","startTime":378.69999980926514,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":378.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1143.1999998092651,"responseStart":0,"secureConnectionStart":0},{"duration":670.3999996185303,"initiatorType":"script","name":"https://jira.mariadb.org/s/5d5e8fe91fbc506585e83ea3b62ccc4b-CDN/lu2cib/820016/12ta74/d176f0986478cc64f24226b3d20c140d/_/download/contextbatch/js/com.atlassian.jira.projects.sidebar.init,-_super,-project.issue.navigator,-jira.view.issue/batch.js?jira.create.linked.issue=true&locale=en","startTime":379,"connectEnd":379,"connectStart":379,"domainLookupEnd":379,"domainLookupStart":379,"fetchStart":379,"redirectEnd":0,"redirectStart":0,"requestStart":379,"responseEnd":1049.3999996185303,"responseStart":1049.3999996185303,"secureConnectionStart":379},{"duration":1361.5,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":380,"connectEnd":380,"connectStart":380,"domainLookupEnd":380,"domainLookupStart":380,"fetchStart":380,"redirectEnd":0,"redirectStart":0,"requestStart":380,"responseEnd":1741.5,"responseStart":1741.5,"secureConnectionStart":380},{"duration":1715.9000000953674,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":387.2999997138977,"connectEnd":387.2999997138977,"connectStart":387.2999997138977,"domainLookupEnd":387.2999997138977,"domainLookupStart":387.2999997138977,"fetchStart":387.2999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":387.2999997138977,"responseEnd":2103.199999809265,"responseStart":2103.199999809265,"secureConnectionStart":387.2999997138977},{"duration":583.5999999046326,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":1163.5999999046326,"connectEnd":1163.5999999046326,"connectStart":1163.5999999046326,"domainLookupEnd":1163.5999999046326,"domainLookupStart":1163.5999999046326,"fetchStart":1163.5999999046326,"redirectEnd":0,"redirectStart":0,"requestStart":1163.5999999046326,"responseEnd":1747.1999998092651,"responseStart":1747.1999998092651,"secureConnectionStart":1163.5999999046326},{"duration":703.3000001907349,"initiatorType":"script","name":"https://www.google-analytics.com/analytics.js","startTime":1454.8999996185303,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":1454.8999996185303,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":2158.199999809265,"responseStart":0,"secureConnectionStart":0},{"duration":417.30000019073486,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/e65b778d185daf5aee24936755b43da6/_/download/contextbatch/js/browser-metrics-plugin.contrib,-_super,-atl.general/batch.js?agile_global_admin_condition=true&jag=true&slack-enabled=true&whisper-enabled=true","startTime":1754.2999997138977,"connectEnd":1754.2999997138977,"connectStart":1754.2999997138977,"domainLookupEnd":1754.2999997138977,"domainLookupStart":1754.2999997138977,"fetchStart":1754.2999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":1754.2999997138977,"responseEnd":2171.5999999046326,"responseStart":2171.5999999046326,"secureConnectionStart":1754.2999997138977}],"fetchStart":1,"domainLookupStart":1,"domainLookupEnd":1,"connectStart":1,"connectEnd":1,"requestStart":5,"responseStart":372,"responseEnd":387,"domLoading":375,"domInteractive":2206,"domContentLoadedEventStart":2206,"domContentLoadedEventEnd":2272,"domComplete":2855,"loadEventStart":2855,"loadEventEnd":2855,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":2108.3999996185303},{"name":"bigPipe.sidebar-id.end","time":2109.199999809265},{"name":"bigPipe.activity-panel-pipe-id.start","time":2109.3999996185303},{"name":"bigPipe.activity-panel-pipe-id.end","time":2121.699999809265},{"name":"activityTabFullyLoaded","time":2302.8999996185303}],"measures":[],"correlationId":"dbe07eeed41b76","effectiveType":"4g","downlink":10,"rtt":0,"serverDuration":301,"dbReadsTimeInMs":76,"dbConnsTimeInMs":92,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}
just FYI (want to write it down somewhere before I forget):