[MDEV-23933] main.failed_auth_unixsocket fails on arm Created: 2020-10-10 Updated: 2021-06-22 Resolved: 2021-06-09 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Tests |
| Affects Version/s: | 10.5.5 |
| Fix Version/s: | 10.4.21, 10.5.12, 10.6.3 |
| Type: | Bug | Priority: | Major |
| Reporter: | Otto Kekäläinen | Assignee: | Sergei Golubchik |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Attachments: |
|
| Description |
|
While importing MariaDB 10.5 to Debian, I noticed that the test main.failed_auth_unixsocket fails on arch armhf and 386 (but arm64 or amd64) when the Debian autopkgtests run. The test failure:
Full logs:
This did not occur with previous MariaDB 10.3 in Debian. What are Debian autopkgtests?See https://wiki.debian.org/ContinuousIntegration/autopkgtest Debian has this massive CI system where each upload of a package triggers CI testing of other packages that depend on it: https://ci.debian.net/status/ The tests mariadb-10.5 runs are in the path debian/tests. In MariaDB 10.5 we run mtr from the debian/tests/upstream test to re-use the existing test suite. Why this seems to end differently on debci from when run in post-build armhf and i386 builds is unknown. On Debian buildd post-build mtr passes on main.failed_auth_unixsocket fine, e.g.
Debci regressions are also automatically listed on the package tracker page and prevents unstable->testing migration: https://tracker.debian.org/pkg/mariadb-10.5 Potential solutionsMaybe the error code 1045 is just fine and test can be extended to accept it? Or we can in Debian skip this one test in the autopkgtests to ignore it. Previous workThe test ./mysql-test/main/failed_auth_unixsocket.* has been touched in the past by sanja and serg |
| Comments |
| Comment by Otto Kekäläinen [ 2020-10-12 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||
|
Cannot repeat on Launchpad builds:
It must somehow be related to how debci runs the test. | |||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2020-10-12 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||
|
This can reportedly be reproduced by running:
Container created with
Recreating the exact same scenario is likely not needed here, if somebody just can otherwise figure our why armhf and i386 yield different "access denied" code 1045 than the other archs 1698. | |||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2020-10-13 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||
|
Test contents:
The #define ER_ACCESS_DENIED_NO_PASSWORD_ERROR 1698 is defined in libmariadb/include/mysqld_error.h (which the test references) while the 1045 is from #define ER_ACCESS_DENIED_ERROR 1045 in the same file. Maybe georg could help shed some insight into why we are seeing such a test error? | |||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2020-10-13 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||
|
The file sql/sql_acl.h has this:
And table.cc has
Either one could be a potential source for sometimes emitting 1045 and some times 1698? | |||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Georg Richter [ 2020-10-15 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||
|
otto Error codes were sent by server - not set by client (client only sets errors with values > 2000. | |||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2020-10-20 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||
|
I will now try https://salsa.debian.org/mariadb-team/mariadb-10.5/-/commit/f452db78a6b0df2f8003b2d75e7d8b2a48a34a2a
| |||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2020-10-20 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||
|
Nope, the approach above does will not work. Next, looking at wrapper:
Could the code above have something that behaves differently in armhf/i386 on debci vs amd64 on debci? Or maybe this? At least the comment field looks fishy:
| |||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2020-10-22 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||
|
This has not been assigned to anybody, and unlikely to be fixed in a reasonable amount of time, so I'll try to hack around the issue by selectively disabling this test in https://salsa.debian.org/mariadb-team/mariadb-10.5/-/commit/74601f8b31a6c59e825089c52a1ca21545062813 | |||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2020-10-26 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||
|
strace form nikitamalyavin (Arch) The strace shows it doesn't lookup the unix socket user using a syscall before issuing the denial. Odd. | |||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Otto Kekäläinen [ 2020-12-20 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||
|
This is still unsolved and unassigned. Maybe julien.fritsch wants to decide if it needs to be fixed or not? |