Type:
Bug
Priority:
Major
Resolution:
Fixed
Affects Version/s:
3.1.6
Component/s:
None
The KB says the following about mysql_get_timeout_value :
This should only be called when a _start() or _cont() function returns a value with the MYSQL_WAIT_TIMEOUT flag set. In this case, it returns the value, in seconds, after which a timeout has occured and the application should call the appropriate _cont() function passing MYSQL_WAIT_TIMEOUT as the event that occured.
This is used to handle connection and read timeouts.
https://mariadb.com/kb/en/non-blocking-api-reference/
However, if this function is used improperly, then it crashes.
I have attached a simple test program.
First, create a user account:
CREATE USER 'list_processes_test' @ 'localhost' IDENTIFIED BY 'test' ;
GRANT ALL PRIVILEGES ON *.* TO 'list_processes_test' @ 'localhost' ;
And then compile it:
$ gcc -ggdb $(mariadb_config --include --libs) ./test_get_timeout_value.c
And then run it via gdb :
$ gdb ./a.out
...
(gdb) run
It crashes with a segmentation fault with the following backtrace:
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7ba20ef in mysql_get_timeout_value (mysql=0x623a70) at /usr/src/debug/MariaDB-10.4.11-5/src_0/libmariadb/libmariadb/mariadb_lib.c:1749
1749 unsigned int timeout= mysql->options.extension->async_context->timeout_value;
Missing separate debuginfos, use: debuginfo-install glibc-2.17-292.el7.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.15.1-34.el7.x86_64 libcom_err-1.42.9-13.el7.x86_64 libselinux-2.5-14.1.el7.x86_64 openssl-libs-1.0.2k-16.el7_6.1.x86_64 pcre-8.32-17.el7.x86_64 zlib-1.2.7-18.el7.x86_64
(gdb) bt
#0 0x00007ffff7ba20ef in mysql_get_timeout_value (mysql=0x623a70) at /usr/src/debug/MariaDB-10.4.11-5/src_0/libmariadb/libmariadb/mariadb_lib.c:1749
#1 0x00000000004008a2 in main (argc=1, argv=0x7fffffffe558) at ./test_get_timeout_value.c:17
The crash happens here:
https://github.com/mariadb-corporation/mariadb-connector-c/blob/v3.1.6/libmariadb/mariadb_lib.c#L1749
{"report":{"fcp":962.3999999985099,"ttfb":131,"pageVisibility":"visible","entityId":83779,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":16,"apdex":0.5,"journeyId":"ad1d8089-fac1-4c33-8708-f4a86e3e5afa","navigationType":0,"readyForUser":1051.0999999977648,"redirectCount":0,"resourceLoadedEnd":1155.8999999985099,"resourceLoadedStart":136.09999999776483,"resourceTiming":[{"duration":270.1000000014901,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2bu7/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":136.09999999776483,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":136.09999999776483,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":406.19999999925494,"responseStart":0,"secureConnectionStart":0},{"duration":269.8999999985099,"initiatorType":"link","name":"https://jira.mariadb.org/s/7ebd35e77e471bc30ff0eba799ebc151-CDN/lu2bu7/820016/12ta74/8679b4946efa1a0bb029a3a22206fb5d/_/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","startTime":136.80000000074506,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":136.80000000074506,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":406.69999999925494,"responseStart":0,"secureConnectionStart":0},{"duration":278.9000000022352,"initiatorType":"script","name":"https://jira.mariadb.org/s/fbf975c0cce4b1abf04784eeae9ba1f4-CDN/lu2bu7/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":136.89999999850988,"connectEnd":136.89999999850988,"connectStart":136.89999999850988,"domainLookupEnd":136.89999999850988,"domainLookupStart":136.89999999850988,"fetchStart":136.89999999850988,"redirectEnd":0,"redirectStart":0,"requestStart":136.89999999850988,"responseEnd":415.80000000074506,"responseStart":415.80000000074506,"secureConnectionStart":136.89999999850988},{"duration":335.0999999977648,"initiatorType":"script","name":"https://jira.mariadb.org/s/099b33461394b8015fc36c0a4b96e19f-CDN/lu2bu7/820016/12ta74/8679b4946efa1a0bb029a3a22206fb5d/_/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","startTime":137,"connectEnd":137,"connectStart":137,"domainLookupEnd":137,"domainLookupStart":137,"fetchStart":137,"redirectEnd":0,"redirectStart":0,"requestStart":137,"responseEnd":472.0999999977648,"responseStart":472.0999999977648,"secureConnectionStart":137},{"duration":339.30000000074506,"initiatorType":"script","name":"https://jira.mariadb.org/s/94c15bff32baef80f4096a08aceae8bc-CDN/lu2bu7/820016/12ta74/c92c0caa9a024ae85b0ebdbed7fb4bd7/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en","startTime":137.09999999776483,"connectEnd":137.09999999776483,"connectStart":137.09999999776483,"domainLookupEnd":137.09999999776483,"domainLookupStart":137.09999999776483,"fetchStart":137.09999999776483,"redirectEnd":0,"redirectStart":0,"requestStart":137.09999999776483,"responseEnd":476.3999999985099,"responseStart":476.3999999985099,"secureConnectionStart":137.09999999776483},{"duration":340,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bu7/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":137.09999999776483,"connectEnd":137.09999999776483,"connectStart":137.09999999776483,"domainLookupEnd":137.09999999776483,"domainLookupStart":137.09999999776483,"fetchStart":137.09999999776483,"redirectEnd":0,"redirectStart":0,"requestStart":137.09999999776483,"responseEnd":477.0999999977648,"responseStart":477.0999999977648,"secureConnectionStart":137.09999999776483},{"duration":342.8999999985099,"initiatorType":"link","name":"https://jira.mariadb.org/s/b04b06a02d1959df322d9cded3aeecc1-CDN/lu2bu7/820016/12ta74/a2ff6aa845ffc9a1d22fe23d9ee791fc/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":137.30000000074506,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":137.30000000074506,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":480.19999999925494,"responseStart":0,"secureConnectionStart":0},{"duration":340.29999999701977,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bu7/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":137.30000000074506,"connectEnd":137.30000000074506,"connectStart":137.30000000074506,"domainLookupEnd":137.30000000074506,"domainLookupStart":137.30000000074506,"fetchStart":137.30000000074506,"redirectEnd":0,"redirectStart":0,"requestStart":137.30000000074506,"responseEnd":477.5999999977648,"responseStart":477.5999999977648,"secureConnectionStart":137.30000000074506},{"duration":397.5999999977648,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":137.5,"connectEnd":137.5,"connectStart":137.5,"domainLookupEnd":137.5,"domainLookupStart":137.5,"fetchStart":137.5,"redirectEnd":0,"redirectStart":0,"requestStart":137.5,"responseEnd":535.0999999977648,"responseStart":535,"secureConnectionStart":137.5},{"duration":398.30000000074506,"initiatorType":"link","name":"https://jira.mariadb.org/s/3ac36323ba5e4eb0af2aa7ac7211b4bb-CDN/lu2bu7/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":137.59999999776483,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":137.59999999776483,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":535.8999999985099,"responseStart":0,"secureConnectionStart":0},{"duration":398.5,"initiatorType":"script","name":"https://jira.mariadb.org/s/3339d87fa2538a859872f2df449bf8d0-CDN/lu2bu7/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":137.69999999925494,"connectEnd":137.69999999925494,"connectStart":137.69999999925494,"domainLookupEnd":137.69999999925494,"domainLookupStart":137.69999999925494,"fetchStart":137.69999999925494,"redirectEnd":0,"redirectStart":0,"requestStart":137.69999999925494,"responseEnd":536.1999999992549,"responseStart":536.1999999992549,"secureConnectionStart":137.69999999925494},{"duration":527.3000000007451,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bu7/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":138.19999999925494,"connectEnd":138.19999999925494,"connectStart":138.19999999925494,"domainLookupEnd":138.19999999925494,"domainLookupStart":138.19999999925494,"fetchStart":138.19999999925494,"redirectEnd":0,"redirectStart":0,"requestStart":138.19999999925494,"responseEnd":665.5,"responseStart":665.5,"secureConnectionStart":138.19999999925494},{"duration":1017.5999999977648,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bu7/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":138.30000000074506,"connectEnd":138.30000000074506,"connectStart":138.30000000074506,"domainLookupEnd":138.30000000074506,"domainLookupStart":138.30000000074506,"fetchStart":138.30000000074506,"redirectEnd":0,"redirectStart":0,"requestStart":138.30000000074506,"responseEnd":1155.8999999985099,"responseStart":1155.8999999985099,"secureConnectionStart":138.30000000074506},{"duration":480.8999999985099,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":673.3000000007451,"connectEnd":673.3000000007451,"connectStart":673.3000000007451,"domainLookupEnd":673.3000000007451,"domainLookupStart":673.3000000007451,"fetchStart":673.3000000007451,"redirectEnd":0,"redirectStart":0,"requestStart":673.3000000007451,"responseEnd":1154.199999999255,"responseStart":1154.199999999255,"secureConnectionStart":673.3000000007451},{"duration":273.30000000074506,"initiatorType":"script","name":"https://www.google-analytics.com/analytics.js","startTime":954.5,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":954.5,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1227.800000000745,"responseStart":0,"secureConnectionStart":0}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":3,"responseStart":131,"responseEnd":133,"domLoading":134,"domInteractive":1187,"domContentLoadedEventStart":1187,"domContentLoadedEventEnd":1230,"domComplete":2320,"loadEventStart":2320,"loadEventEnd":2321,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":1163.5},{"name":"bigPipe.sidebar-id.end","time":1164.300000000745},{"name":"bigPipe.activity-panel-pipe-id.start","time":1164.5},{"name":"bigPipe.activity-panel-pipe-id.end","time":1167.8999999985099},{"name":"activityTabFullyLoaded","time":1239.199999999255}],"measures":[],"correlationId":"6122bfcdcf0940","effectiveType":"4g","downlink":9.1,"rtt":0,"serverDuration":76,"dbReadsTimeInMs":7,"dbConnsTimeInMs":13,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}