Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MDEV-30482 libmariadb3 - debian/libmariadb3.symbols not updated #2780

Merged

Conversation

grooverdan
Copy link
Member

  • The Jira issue number for this PR is: MDEV-30482

Description

Add missing symbols and their introduced C/C version.

@ottok see you added this in #2778. Some of our version number differ. I didn't look down to 3.1 so your introduced version of this is likely more accurate.

Is it a FYI field in the debian packaging?

How can this PR be tested?

deb-autobake tests (check output, won't fail I think)

Basing the PR against the correct MariaDB version

  • This is a new feature and the PR is based against the latest MariaDB development branch.
  • This is a bug fix and the PR is based against the earliest maintained branch in which the bug can be reproduced.

PR quality check

  • I checked the CODING_STANDARDS.md file and my PR conforms to this where appropriate.
  • For any trivial modifications to the PR, I am ok with the reviewer making the changes themselves.

@grooverdan grooverdan added the MariaDB Foundation Pull requests created by MariaDB Foundation label Oct 8, 2023
@grooverdan grooverdan requested a review from ottok October 8, 2023 14:39
@ottok
Copy link
Contributor

ottok commented Oct 8, 2023

This looks correct, thanks!

I will try to debug why buildbot does not fail on builds before this commit as clearly the actual ABI and expected ABI has a mismatch (before this change).

@grooverdan
Copy link
Member Author

I think debian being lenient of symbols added and then just assuming the package name is the version added for ease of update.

if you're not worried about the version added part of the symbol file being potentially a version or two incorrect as it was hard too look up.

I'll double check after some sleep we came to the right ABI version as that probably matters most. Sorry for the dup - long flight without internet

@ottok
Copy link
Contributor

ottok commented Oct 9, 2023

I checked the buildlog from this PR at https://buildbot.mariadb.org/#/builders/148/builds/26707 - it does indeed fail on the step that checks ABI tracking:

	dpkg-gensymbols -plibmariadb3 -Idebian/libmariadb3.symbols -Pdebian/libmariadb3 -edebian/libmariadb3/usr/lib/x86_64-linux-gnu/libmariadb.so.3 -edebian/libmariadb3/usr/lib/x86_64-linux-gnu/libmariadb3/plugin/caching_sha2_password.so -edebian/libmariadb3/usr/lib/x86_64-linux-gnu/libmariadb3/plugin/client_ed25519.so -edebian/libmariadb3/usr/lib/x86_64-linux-gnu/libmariadb3/plugin/dialog.so -edebian/libmariadb3/usr/lib/x86_64-linux-gnu/libmariadb3/plugin/mysql_clear_password.so -edebian/libmariadb3/usr/lib/x86_64-linux-gnu/libmariadb3/plugin/sha256_password.so
dpkg-gensymbols: warning: some new symbols appeared in the symbols file: see diff output below
dpkg-gensymbols: error: some symbols or patterns disappeared in the symbols file: see diff output below
dpkg-gensymbols: warning: debian/libmariadb3/DEBIAN/symbols doesn't match completely debian/libmariadb3.symbols
--- debian/libmariadb3.symbols (libmariadb3_1:10.10.7+maria~deb10_amd64)
+++ dpkg-gensymbolsxpHEcI	2023-10-08 15:43:46.262539903 +0000
@@ -1,7 +1,8 @@
 libmariadb.so.3 libmariadb3 #MINVER#
 * Build-Depends-Package: libmariadb-dev
  libmariadb_3@libmariadb_3 3.0.0
- libmariadb_3_3_5@libmariadb_3 3.3.5
+#MISSING: 1:10.10.7+maria~deb10# libmariadb_3_3_5@libmariadb_3 3.3.5
+ libmariadb_3_3_5@libmariadb_3_3_5 1:10.10.7+maria~deb10
  libmariadbclient_18@libmariadbclient_18 3.0.0
  libmysqlclient_18@libmysqlclient_18 3.0.0
  ma_pvio_register_callback@libmariadb_3 3.0.0
	mv debian/.debhelper/generated/libmariadb3/triggers.new debian/.debhelper/generated/libmariadb3/triggers
	rm -f debian/libmariadb3-compat/DEBIAN/shlibs
	rm -f debian/libmariadbclient18/DEBIAN/shlibs
	rm -f debian/libmysqlclient18/DEBIAN/shlibs
	rm -f debian/libmariadbd19/DEBIAN/shlibs
	echo "libmariadbd 19 libmariadbd19" >> debian/libmariadbd19/DEBIAN/shlibs
	chmod 0644 -- debian/libmariadbd19/DEBIAN/shlibs
	mv debian/.debhelper/generated/libmariadbd19/triggers.new debian/.debhelper/generated/libmariadbd19/triggers
	rm -f debian/libmariadbd-dev/DEBIAN/shlibs
	rm -f debian/mysql-common/DEBIAN/shlibs
	rm -f debian/mariadb-common/DEBIAN/shlibs
	rm -f debian/mariadb-client-core/DEBIAN/shlibs
	rm -f debian/mariadb-client/DEBIAN/shlibs
	rm -f debian/mariadb-server-core/DEBIAN/shlibs
	rm -f debian/mariadb-server/DEBIAN/shlibs
	rm -f debian/mariadb-backup/DEBIAN/shlibs
	rm -f debian/mariadb-plugin-connect/DEBIAN/shlibs
	rm -f debian/mariadb-plugin-s3/DEBIAN/shlibs
	rm -f debian/mariadb-plugin-rocksdb/DEBIAN/shlibs
	rm -f debian/mariadb-plugin-oqgraph/DEBIAN/shlibs
	rm -f debian/mariadb-plugin-mroonga/DEBIAN/shlibs
	rm -f debian/mariadb-plugin-spider/DEBIAN/shlibs
	rm -f debian/mariadb-plugin-gssapi-server/DEBIAN/shlibs
	rm -f debian/mariadb-plugin-gssapi-client/DEBIAN/shlibs
	rm -f debian/mariadb-plugin-cracklib-password-check/DEBIAN/shlibs
	rm -f debian/mariadb-plugin-hashicorp-key-management/DEBIAN/shlibs
	rm -f debian/mariadb-plugin-provider-bzip2/DEBIAN/shlibs
	rm -f debian/mariadb-plugin-provider-lz4/DEBIAN/shlibs
	rm -f debian/mariadb-plugin-provider-lzma/DEBIAN/shlibs
	rm -f debian/mariadb-plugin-provider-lzo/DEBIAN/shlibs
	rm -f debian/mariadb-plugin-provider-snappy/DEBIAN/shlibs
	rm -f debian/mariadb-test/DEBIAN/shlibs
	rm -f debian/mariadb-test-data/DEBIAN/shlibs
	rm -f debian/mariadb-plugin-columnstore/DEBIAN/shlibs
dh_makeshlibs: failing due to earlier errors
make: *** [debian/rules:221: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
program finished with exit code 2
elapsedTime=3038.920827

I checked the mainline 11.3 builds for latest commit at https://buildbot.mariadb.org/#/builders/148/builds/26603 and it reveals:

	dpkg-gensymbols -plibmariadb3 -Idebian/libmariadb3.symbols -Pdebian/libmariadb3 -edebian/libmariadb3/usr/lib/x86_64-linux-gnu/libmariadb.so.3 -edebian/libmariadb3/usr/lib/x86_64-linux-gnu/libmariadb3/plugin/caching_sha2_password.so -edebian/libmariadb3/usr/lib/x86_64-linux-gnu/libmariadb3/plugin/client_ed25519.so -edebian/libmariadb3/usr/lib/x86_64-linux-gnu/libmariadb3/plugin/dialog.so -edebian/libmariadb3/usr/lib/x86_64-linux-gnu/libmariadb3/plugin/mysql_clear_password.so -edebian/libmariadb3/usr/lib/x86_64-linux-gnu/libmariadb3/plugin/sha256_password.so
dpkg-gensymbols: warning: some new symbols appeared in the symbols file: see diff output below
dpkg-gensymbols: warning: debian/libmariadb3/DEBIAN/symbols doesn't match completely debian/libmariadb3.symbols
--- debian/libmariadb3.symbols (libmariadb3_1:11.3.0+maria~deb10_amd64)
+++ dpkg-gensymbolseaMbLb	2023-10-04 09:33:20.704167359 +0000
@@ -1,6 +1,7 @@
 libmariadb.so.3 libmariadb3 #MINVER#
 * Build-Depends-Package: libmariadb-dev
  libmariadb_3@libmariadb_3 3.0.0
+ libmariadb_3_3_5@libmariadb_3_3_5 1:11.3.0+maria~deb10
  libmariadbclient_18@libmariadbclient_18 3.0.0
  libmysqlclient_18@libmysqlclient_18 3.0.0
  ma_pvio_register_callback@libmariadb_3 3.0.0
@@ -8,6 +9,7 @@
  mariadb_connection@libmariadb_3 3.0.0
  mariadb_convert_string@libmariadb_3 3.0.0
  mariadb_deinitialize_ssl@libmariadb_3 3.0.0
+ mariadb_field_attr@libmariadb_3 1:11.3.0+maria~deb10
  mariadb_free_rpl_event@libmariadb_3 3.1.0
  mariadb_get_charset_by_name@libmariadb_3 3.0.0
  mariadb_get_charset_by_nr@libmariadb_3 3.0.0
@@ -15,8 +17,12 @@
  mariadb_get_infov@libmariadb_3 3.0.0
  mariadb_reconnect@libmariadb_3 3.0.0
  mariadb_rpl_close@libmariadb_3 3.1.0
+ mariadb_rpl_errno@libmariadb_3_3_5 1:11.3.0+maria~deb10
+ mariadb_rpl_error@libmariadb_3_3_5 1:11.3.0+maria~deb10
+ mariadb_rpl_extract_rows@libmariadb_3_3_5 1:11.3.0+maria~deb10
  mariadb_rpl_fetch@libmariadb_3 3.1.0
  mariadb_rpl_get_optionsv@libmariadb_3 3.1.0
+ mariadb_rpl_init_ex@libmariadb_3 1:11.3.0+maria~deb10
  mariadb_rpl_open@libmariadb_3 3.1.0
  mariadb_rpl_optionsv@libmariadb_3 3.1.0
  mariadb_stmt_execute_direct@libmariadb_3 3.0.0

However it is not failing. Maybe something on buildbot is fiddling with DPKG_GENSYMBOLS_CHECK_LEVEL to prevent it from failing the build.

@grooverdan
Copy link
Member Author

thanks for exaction and check level reference.

@grooverdan grooverdan force-pushed the bb-MDEV-30482-libmariadb3-symbols-deb branch from 4196156 to 6689c16 Compare October 17, 2023 02:55
@grooverdan
Copy link
Member Author

this is now fixed with libmariadb_3_3_5@libmariadb_3_3_5. Seems the appended version is entirely informational.

@ottok
Copy link
Contributor

ottok commented Oct 19, 2023

You probably want to have as commit title "MDEV-30482: Add missing symbols and their introduced C/C version" and rebase instead of having merge commits in a merge request.

I checked https://buildbot.mariadb.org/#builders/148/builds/27096 and dpkg-gensymbols no longer complains so this should be good. Ideally there would also be something that forces dpkg-gensymbols to fail in the future is it again detects mismatches in the ABI.

grooverdan added a commit to grooverdan/mariadb-buildbot that referenced this pull request Oct 19, 2023
Ensure that symbols aren't removed and are documented when added to
ensure consistency.

Same to enable when MariaDB/server#2780 is
merged up to the latest.
@grooverdan
Copy link
Member Author

the merges are from the update branch and get removed when merged. The original commit is further up.

MariaDB/buildbot#197 is ready to enforce this.

Acceptable?

Copy link
Contributor

@LinuxJedi LinuxJedi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me

@LinuxJedi
Copy link
Contributor

Note that 10.10 is end of life, so we cannot merge. Might want to move this to 10.11.

Add missing symbols and their introduced C/C version.
@grooverdan grooverdan changed the base branch from 10.10 to 10.11 December 11, 2023 23:19
@grooverdan grooverdan force-pushed the bb-MDEV-30482-libmariadb3-symbols-deb branch from 45b585f to 76c74fb Compare December 11, 2023 23:20
@grooverdan grooverdan merged commit 7fae2fa into MariaDB:10.11 Dec 12, 2023
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
MariaDB Foundation Pull requests created by MariaDB Foundation
Development

Successfully merging this pull request may close these issues.

3 participants