I built the server with openSSL (WITH_SSL=system instead of bundled) and started getting valgrind warnings on server shutdown:
perl ./mtr alias --valgrind-mysqld
|
==29019== 24 bytes in 1 blocks are still reachable in loss record 1 of 600
|
==29019== at 0x4C2B6CD: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
|
==29019== by 0x5DCE7F3: CRYPTO_malloc (in /lib/x86_64-linux-gnu/libcrypto.so.1.0.0)
|
==29019== by 0x5E4928A: lh_insert (in /lib/x86_64-linux-gnu/libcrypto.so.1.0.0)
|
==29019== by 0x5DD149B: OBJ_NAME_add (in /lib/x86_64-linux-gnu/libcrypto.so.1.0.0)
|
==29019== by 0x5E53714: EVP_add_cipher (in /lib/x86_64-linux-gnu/libcrypto.so.1.0.0)
|
==29019== by 0x5B54690: SSL_library_init (in /lib/x86_64-linux-gnu/libssl.so.1.0.0)
|
==29019== by 0xEBE487: check_ssl_init (viosslfactories.c:155)
|
==29019== by 0xEBE5AA: new_VioSSLFd (viosslfactories.c:189)
|
==29019== by 0xEBEB66: new_VioSSLAcceptorFd (viosslfactories.c:336)
|
==29019== by 0x5841CF: init_ssl() (mysqld.cc:4412)
|
==29019== by 0x585888: mysqld_main(int, char**) (mysqld.cc:5224)
|
==29019== by 0x57C4C3: main (main.cc:25)
|
==29019==
|
==29019== 24 bytes in 1 blocks are still reachable in loss record 2 of 600
|
==29019== at 0x4C2B6CD: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
|
==29019== by 0x5DCE7F3: CRYPTO_malloc (in /lib/x86_64-linux-gnu/libcrypto.so.1.0.0)
|
==29019== by 0x5E4928A: lh_insert (in /lib/x86_64-linux-gnu/libcrypto.so.1.0.0)
|
==29019== by 0x5DD149B: OBJ_NAME_add (in /lib/x86_64-linux-gnu/libcrypto.so.1.0.0)
|
==29019== by 0x5B54690: SSL_library_init (in /lib/x86_64-linux-gnu/libssl.so.1.0.0)
|
==29019== by 0xEBE487: check_ssl_init (viosslfactories.c:155)
|
==29019== by 0xEBE5AA: new_VioSSLFd (viosslfactories.c:189)
|
==29019== by 0xEBEB66: new_VioSSLAcceptorFd (viosslfactories.c:336)
|
==29019== by 0x5841CF: init_ssl() (mysqld.cc:4412)
|
==29019== by 0x585888: mysqld_main(int, char**) (mysqld.cc:5224)
|
==29019== by 0x57C4C3: main (main.cc:25)
|
==29019==
|
...
|
I'm not sure whether they're essential or not, and if they are, whether it's our fault, maybe it's a bad valgrind version or a 3rd-party library bug.
ldd ../sql/mysqld
|
linux-vdso.so.1 => (0x00007fff7578d000)
|
libodbc.so.1 => /usr/lib/x86_64-linux-gnu/libodbc.so.1 (0x00007f1731474000)
|
libaio.so.1 => /lib/x86_64-linux-gnu/libaio.so.1 (0x00007f1731272000)
|
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f173105a000)
|
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f1730e52000)
|
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f1730c35000)
|
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f17309fb000)
|
libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f173079d000)
|
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f17303d5000)
|
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f17301d0000)
|
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f172fed0000)
|
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f172fbd4000)
|
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f172f9bd000)
|
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f172f5fe000)
|
libltdl.so.7 => /usr/lib/x86_64-linux-gnu/libltdl.so.7 (0x00007f172f3f4000)
|
/lib64/ld-linux-x86-64.so.2 (0x00007f17316ed000)
|
valgrind --version
|
valgrind-3.7.0
|
{"report":{"fcp":915,"ttfb":241.59999990463257,"pageVisibility":"visible","entityId":25102,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":1,"journeyId":"a890c4ea-354c-4d82-9bd2-7e256f059eaa","navigationType":0,"readyForUser":992.5,"redirectCount":0,"resourceLoadedEnd":617.5999999046326,"resourceLoadedStart":248.89999961853027,"resourceTiming":[{"duration":39.200000286102295,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":248.89999961853027,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":248.89999961853027,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":288.09999990463257,"responseStart":0,"secureConnectionStart":0},{"duration":39.59999990463257,"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":249.19999980926514,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":249.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":288.7999997138977,"responseStart":0,"secureConnectionStart":0},{"duration":234.5,"initiatorType":"script","name":"https://jira.mariadb.org/s/0917945aaa57108d00c5076fea35e069-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":249.2999997138977,"connectEnd":249.2999997138977,"connectStart":249.2999997138977,"domainLookupEnd":249.2999997138977,"domainLookupStart":249.2999997138977,"fetchStart":249.2999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":295.69999980926514,"responseEnd":483.7999997138977,"responseStart":318.5,"secureConnectionStart":249.2999997138977},{"duration":368.09999990463257,"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":249.5,"connectEnd":249.5,"connectStart":249.5,"domainLookupEnd":249.5,"domainLookupStart":249.5,"fetchStart":249.5,"redirectEnd":0,"redirectStart":0,"requestStart":295.8999996185303,"responseEnd":617.5999999046326,"responseStart":350,"secureConnectionStart":249.5},{"duration":74.5,"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":254,"connectEnd":254,"connectStart":254,"domainLookupEnd":254,"domainLookupStart":254,"fetchStart":254,"redirectEnd":0,"redirectStart":0,"requestStart":296.19999980926514,"responseEnd":328.5,"responseStart":323,"secureConnectionStart":254},{"duration":75.2000002861023,"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":254.2999997138977,"connectEnd":254.2999997138977,"connectStart":254.2999997138977,"domainLookupEnd":254.2999997138977,"domainLookupStart":254.2999997138977,"fetchStart":254.2999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":296.2999997138977,"responseEnd":329.5,"responseStart":324,"secureConnectionStart":254.2999997138977},{"duration":75.80000019073486,"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":254.39999961853027,"connectEnd":254.39999961853027,"connectStart":254.39999961853027,"domainLookupEnd":254.39999961853027,"domainLookupStart":254.39999961853027,"fetchStart":254.39999961853027,"redirectEnd":0,"redirectStart":0,"requestStart":296.5,"responseEnd":330.19999980926514,"responseStart":324.7999997138977,"secureConnectionStart":254.39999961853027},{"duration":37.19999980926514,"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":254.69999980926514,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":254.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":291.8999996185303,"responseStart":0,"secureConnectionStart":0},{"duration":79.09999990463257,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":254.7999997138977,"connectEnd":254.7999997138977,"connectStart":254.7999997138977,"domainLookupEnd":254.7999997138977,"domainLookupStart":254.7999997138977,"fetchStart":254.7999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":296.59999990463257,"responseEnd":333.8999996185303,"responseStart":330.59999990463257,"secureConnectionStart":254.7999997138977},{"duration":37.200000286102295,"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":254.89999961853027,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":254.89999961853027,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":292.09999990463257,"responseStart":0,"secureConnectionStart":0},{"duration":78.30000019073486,"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":255.19999980926514,"connectEnd":255.19999980926514,"connectStart":255.19999980926514,"domainLookupEnd":255.19999980926514,"domainLookupStart":255.19999980926514,"fetchStart":255.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":296.7999997138977,"responseEnd":333.5,"responseStart":328.7999997138977,"secureConnectionStart":255.19999980926514},{"duration":311.30000019073486,"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":256.8999996185303,"connectEnd":256.8999996185303,"connectStart":256.8999996185303,"domainLookupEnd":256.8999996185303,"domainLookupStart":256.8999996185303,"fetchStart":256.8999996185303,"redirectEnd":0,"redirectStart":0,"requestStart":331.8999996185303,"responseEnd":568.1999998092651,"responseStart":560,"secureConnectionStart":256.8999996185303},{"duration":312.09999990463257,"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":257,"connectEnd":257,"connectStart":257,"domainLookupEnd":257,"domainLookupStart":257,"fetchStart":257,"redirectEnd":0,"redirectStart":0,"requestStart":344.5,"responseEnd":569.0999999046326,"responseStart":562.5999999046326,"secureConnectionStart":257},{"duration":108.30000019073486,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":647.7999997138977,"connectEnd":647.7999997138977,"connectStart":647.7999997138977,"domainLookupEnd":647.7999997138977,"domainLookupStart":647.7999997138977,"fetchStart":647.7999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":725.3999996185303,"responseEnd":756.0999999046326,"responseStart":755.2999997138977,"secureConnectionStart":647.7999997138977},{"duration":257.19999980926514,"initiatorType":"script","name":"https://www.google-analytics.com/analytics.js","startTime":901.6999998092651,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":901.6999998092651,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1158.8999996185303,"responseStart":0,"secureConnectionStart":0},{"duration":224.10000038146973,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":908.8999996185303,"connectEnd":908.8999996185303,"connectStart":908.8999996185303,"domainLookupEnd":908.8999996185303,"domainLookupStart":908.8999996185303,"fetchStart":908.8999996185303,"redirectEnd":0,"redirectStart":0,"requestStart":1102.5,"responseEnd":1133,"responseStart":1131.7999997138977,"secureConnectionStart":908.8999996185303}],"fetchStart":0,"domainLookupStart":15,"domainLookupEnd":58,"connectStart":58,"connectEnd":76,"secureConnectionStart":66,"requestStart":77,"responseStart":241,"responseEnd":254,"domLoading":247,"domInteractive":1098,"domContentLoadedEventStart":1098,"domContentLoadedEventEnd":1153,"domComplete":1463,"loadEventStart":1463,"loadEventEnd":1463,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":1074},{"name":"bigPipe.sidebar-id.end","time":1074.6999998092651},{"name":"bigPipe.activity-panel-pipe-id.start","time":1075},{"name":"bigPipe.activity-panel-pipe-id.end","time":1076.5},{"name":"activityTabFullyLoaded","time":1171.1999998092651}],"measures":[],"correlationId":"9b0f86148eeefe","effectiveType":"4g","downlink":9,"rtt":0,"serverDuration":95,"dbReadsTimeInMs":10,"dbConnsTimeInMs":17,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}
The change in vio_end() made here http://bazaar.launchpad.net/~maria-captains/maria/10.0/revision/2502.565.54 causes mysqltest_embedded to hang on exit. So in 10.0.5 tarball testing of embedded server doesn't work at all when it's compiled with openssl.
I think the problem is that mysql_server_end() in case of compilation with embedded server calls both end_embedded_server() (which calls clean_up() which calls vio_end() ) and vio_end(). But apparently ERR_remove_state(0) can be called only once. On the second call it hangs inside openssl trying to lock the mutex.