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
s390x build images on mariadb/node timed out #14923
Comments
I'm trying to run a test to verify, but my best guess is that Does $ docker build - <<<$'FROM bash\nRUN ls -l /proc/self/fd/0; false'
Sending build context to Docker daemon 2.048kB
Step 1/2 : FROM bash
---> 9877ef007e1a
Step 2/2 : RUN ls -l /proc/self/fd/0; false
---> Running in d1548625d92e
lrwx------ 1 root root 64 Jun 23 00:16 /proc/self/fd/0 -> /dev/null
The command '/bin/sh -c ls -l /proc/self/fd/0; false' returned a non-zero code: 1 |
Aha, reproduced and got $ docker top optimistic_benz
UID PID PPID C STIME TTY TIME CMD
root 1095793 1095772 0 17:26 ? 00:00:00 /bin/sh -c set -ex; ?{ ??echo "mariadb-server" mysql-server/root_password password 'unused'; ??echo "mariadb-server" mysql-server/root_password_again password 'unused'; ?} | debconf-set-selections; ?apt-get update; ?apt-get install -y --no-install-recommends mariadb-server="$MARIADB_VERSION" mariadb-backup socat ?; ?rm -rf /var/lib/apt/lists/*; ?rm -rf /var/lib/mysql; ?mkdir -p /var/lib/mysql /var/run/mysqld; ?chown -R mysql:mysql /var/lib/mysql /var/run/mysqld; ?chmod 777 /var/run/mysqld; ?find /etc/mysql/ -name '*.cnf' -print0 ??| xargs -0 grep -lZE '^(bind-address|log|user\s)' ??| xargs -rt -0 sed -Ei 's/^(bind-address|log|user\s)/#&/'; ?printf "[mariadb]\nhost-cache-size=0\nskip-name-resolve\n" > /etc/mysql/mariadb.conf.d/05-skipcache.cnf; ?if [ -L /etc/mysql/my.cnf ]; then ??sed -i -e '/includedir/ {N;s/\(.*\)\n\(.*\)/\n\2\n\1/}' /etc/mysql/mariadb.cnf; ?fi
root 1096121 1095793 2 17:26 ? 00:00:00 apt-get install -y --no-install-recommends mariadb-server=1:10.9.7+maria~ubu2204 mariadb-backup socat
root 1096888 1096121 0 17:27 pts/0 00:00:00 /usr/bin/dpkg --status-fd 26 --configure --pending
root 1096954 1096888 0 17:27 pts/0 00:00:00 /usr/bin/perl -w /usr/share/debconf/frontend /var/lib/dpkg/info/mariadb-server.postinst configure
root 1096966 1096954 0 17:27 pts/0 00:00:00 /bin/bash /var/lib/dpkg/info/mariadb-server.postinst configure
root 1096988 1096966 0 17:27 pts/0 00:00:00 bash /usr/bin/mariadb-install-db --rpm --cross-bootstrap --user=mysql --disable-log-bin --skip-test-db
root 1096989 1096966 0 17:27 pts/0 00:00:00 logger -p daemon err -t mariadb-server.postinst -i
root 1097011 1096988 0 17:27 pts/0 00:00:00 bash /usr/bin/mariadb-install-db --rpm --cross-bootstrap --user=mysql --disable-log-bin --skip-test-db
root 1097012 1096988 0 17:27 pts/0 00:00:00 bash /usr/bin/mariadb-install-db --rpm --cross-bootstrap --user=mysql --disable-log-bin --skip-test-db
root 1097013 1096988 0 17:27 pts/0 00:00:00 bash /usr/bin/mariadb-install-db --rpm --cross-bootstrap --user=mysql --disable-log-bin --skip-test-db
root 1097014 1097011 0 17:27 pts/0 00:00:00 cat /usr/share/mysql/mysql_system_tables.sql /usr/share/mysql/mysql_performance_tables.sql /usr/share/mysql/mysql_system_tables_data.sql /usr/share/mysql/fill_help_tables.sql /usr/share/mysql/maria_add_gis_sp_bootstrap.sql /usr/share/mysql/mysql_sys_schema.sql
root 1097015 1097012 0 17:27 pts/0 00:00:00 sed -e /@current_hostname/d
systemd+ 1097016 1097013 87 17:27 pts/0 00:00:12 /usr/sbin/mariadbd --lc-messages-dir=/usr/share/mysql/english/.. --bootstrap --silent-startup --basedir=/usr --datadir=/var/lib/mysql --log-warnings=0 --enforce-storage-engine= --plugin-dir=/usr/lib/mysql/plugin --disable-log-bin --user=mysql --max_allowed_packet=8M --net_buffer_length=16K So it seems like whatever initialization is happening here is maybe just really slow? (our s390x machine isn't as speedy as some we've had in the past 🙈) |
What's sad is we throw away this initialization with rm /var/lib/mysql in about the next step. I think I can get it to skip the intense bit of this this step by faking an already installed datadir pre-installation. Thanks for the analysis. Does this really account for a 3 hr timeout though? |
maybe not needed by FYI anyway. |
s390x database initialization was slow (thanks @tianon). We don't use it, so fake its existance so debian install scripts don't consume the intensive part of the installation. [1] docker-library/official-images#14923
s390x database initialization was slow (thanks @tianon). We don't use it, so fake its existance so debian install scripts don't consume the intensive part of the installation. [1] docker-library/official-images#14923
The thing I didn't noticed was that 10.5/10.6 built successfully. 10.5/10.6 - focal base succeed Jammy has liburing and therefore its being using the database initialization step. This may have hung the process.
On node: (no idea of difference here) Is the kernel the latest on this builder? MariaDB/mariadb-docker#518 that I merged will eliminate the slow part of the build, and any uring usage and bypass the potential problem. If this succeeds next week, can you make a note of the kernel version and the filesystem on which docker was building so some kernel people can trace this down. |
It's not latest latest, but should be fairly recent (and userspace packages are up to date from Debian Bullseye): |
Remove mariadb-install-db during build in pkg install that stalled on s390x. The data was thrown away anyway. 11.0 latest without mysql symlinks that saw many people discover their mysqladmin ping didn't work. It was broken anyway https://mariadb.org/mariadb-server-docker-official-images-healthcheck-without-mysqladmin/ Fix healthcheck.sh with root passwords on MariaDB/mariadb-docker#508 with hopefully no regressions. Tests happy on https://github.com/MariaDB/mariadb-docker/actions/runs/5372219544 Closes: #14923
ref MDEV-31529
https://doi-janky.infosiftr.net/job/multiarch/job/s390x/job/mariadb/
seems they have been for while.
Logs are slowing what appears to be a normal build, its just goes over the 3h timeout.
amd64 builds are 24 seconds and there's nothing different on the s390x builds.
Even a build stage of s390x under qemu is only taking 4 minutes (https://buildbot.mariadb.org/#/builders/311/builds/16623).
Other instances:
Other official images on s390x appear to be failing for a different reason.
The text was updated successfully, but these errors were encountered: