From a given install (tarball, RPM, DEB) you only have the version information available, not the GitHash the binaries were built from.
Solution
Compile the following into the binaries
GitHash the build was from
Buildbot build number
This info should be available as
system variable (e.g. VERSION_GITHASH) - Must
from output of 'mysql -v' (but that's just the githash of mysql and not mysqld) - Should
from output of 'mysqld --verbose --help' - Must
Rationale
Supportability. Given a random build a user may have, there is no simple mechanism to track back to the GitHash of the commit the code was built with. This is especially important for anybody with a custom build (e.g. feature testing, customer patch etc.).
Note, that most binaries are built from a source tarball, not from a git repository.
So, a git hash must be generated when a source tarball is created, and stored somewhere in a file that is part of the source tarball.
Sergei Golubchik
added a comment - Note, that most binaries are built from a source tarball, not from a git repository.
So, a git hash must be generated when a source tarball is created, and stored somewhere in a file that is part of the source tarball.
Worse still, it should probably be both if possible, because there can be (and there are) also custom builds of different sorts which might come directly from git, and those are most difficult to track.
Elena Stepanova
added a comment - Worse still, it should probably be both if possible, because there can be (and there are) also custom builds of different sorts which might come directly from git, and those are most difficult to track.
The new server "variable" (i.e a constant) is called 'version-source-revision", so it does not depend on git (who knows what source control we'll use in the future)
mysql -V would akso show the revision number
Vladislav Vaintroub
added a comment - The new server "variable" (i.e a constant) is called 'version-source-revision", so it does not depend on git (who knows what source control we'll use in the future)
mysql -V would akso show the revision number
If I understand purpose of this MDEV properly - then current solution "Bake the Githash" is not enough to collect information about build, because different branches (e.g. 10.2 and bb-10.2-ext) may show the same version() and the same version-source-revision.
So among "the other info" we need to be able identify source branch name as well , so users can easier distinguish from which branch current instance originates.
Andrii Nikitin (Inactive)
added a comment - If I understand purpose of this MDEV properly - then current solution "Bake the Githash" is not enough to collect information about build, because different branches (e.g. 10.2 and bb-10.2-ext) may show the same version() and the same version-source-revision.
So among "the other info" we need to be able identify source branch name as well , so users can easier distinguish from which branch current instance originates.
branch does not matter really, git commit hash describes the entire source code repository "as of" when this hash was HEAD.
I can branch current 10.1 and push it as bb-10.1-wlad, and yes it will have the same top git hash. But it does not matter, because the source is exactly the same source as 10.1
Vladislav Vaintroub
added a comment - - edited branch does not matter really, git commit hash describes the entire source code repository "as of" when this hash was HEAD.
I can branch current 10.1 and push it as bb-10.1-wlad, and yes it will have the same top git hash. But it does not matter, because the source is exactly the same source as 10.1
People
Vladislav Vaintroub
Alvin Richards (Inactive)
Votes:
2Vote for this issue
Watchers:
6Start 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":1274.5999999046326,"ttfb":339.80000019073486,"pageVisibility":"visible","entityId":61048,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":0.5,"journeyId":"5058b557-474e-4457-a097-57c4018a6614","navigationType":0,"readyForUser":1364.3000001907349,"redirectCount":0,"resourceLoadedEnd":1764.9000000953674,"resourceLoadedStart":345.80000019073486,"resourceTiming":[{"duration":197.7999997138977,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":345.80000019073486,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":345.80000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":543.5999999046326,"responseStart":0,"secureConnectionStart":0},{"duration":197.90000009536743,"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":346.09999990463257,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":346.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":544,"responseStart":0,"secureConnectionStart":0},{"duration":268,"initiatorType":"script","name":"https://jira.mariadb.org/s/0917945aaa57108d00c5076fea35e069-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":346.30000019073486,"connectEnd":346.30000019073486,"connectStart":346.30000019073486,"domainLookupEnd":346.30000019073486,"domainLookupStart":346.30000019073486,"fetchStart":346.30000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":346.30000019073486,"responseEnd":614.3000001907349,"responseStart":614.3000001907349,"secureConnectionStart":346.30000019073486},{"duration":497.5,"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":346.59999990463257,"connectEnd":346.59999990463257,"connectStart":346.59999990463257,"domainLookupEnd":346.59999990463257,"domainLookupStart":346.59999990463257,"fetchStart":346.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":346.59999990463257,"responseEnd":844.0999999046326,"responseStart":844.0999999046326,"secureConnectionStart":346.59999990463257},{"duration":518.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":346.80000019073486,"connectEnd":346.80000019073486,"connectStart":346.80000019073486,"domainLookupEnd":346.80000019073486,"domainLookupStart":346.80000019073486,"fetchStart":346.80000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":346.80000019073486,"responseEnd":865.3000001907349,"responseStart":865.1999998092651,"secureConnectionStart":346.80000019073486},{"duration":523.5,"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":346.90000009536743,"connectEnd":346.90000009536743,"connectStart":346.90000009536743,"domainLookupEnd":346.90000009536743,"domainLookupStart":346.90000009536743,"fetchStart":346.90000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":346.90000009536743,"responseEnd":870.4000000953674,"responseStart":870.4000000953674,"secureConnectionStart":346.90000009536743},{"duration":524,"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":347.19999980926514,"connectEnd":347.19999980926514,"connectStart":347.19999980926514,"domainLookupEnd":347.19999980926514,"domainLookupStart":347.19999980926514,"fetchStart":347.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":347.19999980926514,"responseEnd":871.1999998092651,"responseStart":871.1999998092651,"secureConnectionStart":347.19999980926514},{"duration":547.3999996185303,"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":347.30000019073486,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":347.30000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":894.6999998092651,"responseStart":0,"secureConnectionStart":0},{"duration":524.6999998092651,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":347.40000009536743,"connectEnd":347.40000009536743,"connectStart":347.40000009536743,"domainLookupEnd":347.40000009536743,"domainLookupStart":347.40000009536743,"fetchStart":347.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":347.40000009536743,"responseEnd":872.0999999046326,"responseStart":872.0999999046326,"secureConnectionStart":347.40000009536743},{"duration":547.4000000953674,"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":347.59999990463257,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":347.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":895,"responseStart":0,"secureConnectionStart":0},{"duration":525.6999998092651,"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":347.80000019073486,"connectEnd":347.80000019073486,"connectStart":347.80000019073486,"domainLookupEnd":347.80000019073486,"domainLookupStart":347.80000019073486,"fetchStart":347.80000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":347.80000019073486,"responseEnd":873.5,"responseStart":873.5,"secureConnectionStart":347.80000019073486},{"duration":1396.2000002861023,"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":348.59999990463257,"connectEnd":348.59999990463257,"connectStart":348.59999990463257,"domainLookupEnd":348.59999990463257,"domainLookupStart":348.59999990463257,"fetchStart":348.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":348.59999990463257,"responseEnd":1744.8000001907349,"responseStart":1744.8000001907349,"secureConnectionStart":348.59999990463257},{"duration":1387,"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":358.19999980926514,"connectEnd":358.19999980926514,"connectStart":358.19999980926514,"domainLookupEnd":358.19999980926514,"domainLookupStart":358.19999980926514,"fetchStart":358.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":358.19999980926514,"responseEnd":1745.1999998092651,"responseStart":1745.1999998092651,"secureConnectionStart":358.19999980926514},{"duration":728.0999999046326,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":853.3000001907349,"connectEnd":853.3000001907349,"connectStart":853.3000001907349,"domainLookupEnd":853.3000001907349,"domainLookupStart":853.3000001907349,"fetchStart":853.3000001907349,"redirectEnd":0,"redirectStart":0,"requestStart":853.3000001907349,"responseEnd":1581.4000000953674,"responseStart":1581.4000000953674,"secureConnectionStart":853.3000001907349},{"duration":556.0999999046326,"initiatorType":"script","name":"https://www.google-analytics.com/analytics.js","startTime":1266.8000001907349,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":1266.8000001907349,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1822.9000000953674,"responseStart":0,"secureConnectionStart":0},{"duration":177,"initiatorType":"link","name":"https://jira.mariadb.org/s/d5715adaadd168a9002b108b2b039b50-CDN/lu2cib/820016/12ta74/be4b45e9cec53099498fa61c8b7acba4/_/download/contextbatch/css/jira.project.sidebar,-_super,-project.issue.navigator,-jira.general,-jira.browse.project,-jira.view.issue,-jira.global,-atl.general,-com.atlassian.jira.projects.sidebar.init/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true&whisper-enabled=true","startTime":1587.9000000953674,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":1587.9000000953674,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1764.9000000953674,"responseStart":0,"secureConnectionStart":0},{"duration":160.69999980926514,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/e65b778d185daf5aee24936755b43da6/_/download/contextbatch/js/browser-metrics-plugin.contrib,-_super,-project.issue.navigator,-jira.view.issue,-atl.general/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true&whisper-enabled=true","startTime":1588.9000000953674,"connectEnd":1588.9000000953674,"connectStart":1588.9000000953674,"domainLookupEnd":1588.9000000953674,"domainLookupStart":1588.9000000953674,"fetchStart":1588.9000000953674,"redirectEnd":0,"redirectStart":0,"requestStart":1588.9000000953674,"responseEnd":1749.5999999046326,"responseStart":1749.5,"secureConnectionStart":1588.9000000953674},{"duration":162.59999990463257,"initiatorType":"script","name":"https://jira.mariadb.org/s/097ae97cb8fbec7d6ea4bbb1f26955b9-CDN/lu2cib/820016/12ta74/be4b45e9cec53099498fa61c8b7acba4/_/download/contextbatch/js/jira.project.sidebar,-_super,-project.issue.navigator,-jira.general,-jira.browse.project,-jira.view.issue,-jira.global,-atl.general,-com.atlassian.jira.projects.sidebar.init/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en&slack-enabled=true&whisper-enabled=true","startTime":1589.4000000953674,"connectEnd":1589.4000000953674,"connectStart":1589.4000000953674,"domainLookupEnd":1589.4000000953674,"domainLookupStart":1589.4000000953674,"fetchStart":1589.4000000953674,"redirectEnd":0,"redirectStart":0,"requestStart":1589.4000000953674,"responseEnd":1752,"responseStart":1752,"secureConnectionStart":1589.4000000953674}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":190,"responseStart":340,"responseEnd":344,"domLoading":344,"domInteractive":1867,"domContentLoadedEventStart":1867,"domContentLoadedEventEnd":1915,"domComplete":2537,"loadEventStart":2537,"loadEventEnd":2537,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":1840.5},{"name":"bigPipe.sidebar-id.end","time":1843.6999998092651},{"name":"bigPipe.activity-panel-pipe-id.start","time":1843.9000000953674},{"name":"bigPipe.activity-panel-pipe-id.end","time":1845.8000001907349},{"name":"activityTabFullyLoaded","time":1947.9000000953674}],"measures":[],"correlationId":"29eca6bf4e1240","effectiveType":"4g","downlink":10,"rtt":0,"serverDuration":96,"dbReadsTimeInMs":10,"dbConnsTimeInMs":19,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}
Note, that most binaries are built from a source tarball, not from a git repository.
So, a git hash must be generated when a source tarball is created, and stored somewhere in a file that is part of the source tarball.