MariaDB 10.8.3 en Docker: no se pueden inicializar los temporizadores

MariaDB 10.8.3 en Docker: no se pueden inicializar los temporizadores

Este error ocurre incluso después de borrar el caché de imágenes de Docker:

$ docker run -it --rm mariadb:10.8.3
2022-06-15 11:28:14+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.8.3+maria~jammy started.
2022-06-15 11:28:14+00:00 [ERROR] [Entrypoint]: mariadbd failed while attempting to check config
        command was: mariadbd --verbose --help --log-bin-index=/tmp/tmp.EUcxIEz4Yz
        Can't initialize timers

10.8.3 es actualmente la latestimagen en Docker Hub. La etiqueta de la imagen es ea81af801379. Esto está en Ubuntu 18.04 de 64 bits. El servidor tiene una carga de CPU baja, más de 100 GB de RAM libre y terabytes de espacio libre en disco.

Tengo una base de datos existente que ya fue tocada por esta versión y que no quisiera correr el riesgo de degradar.

He vistoeste problemapero no hay ninguna razón por la que MariaDB no pueda crear un hilo.

¿Como puedo resolver esto?

Respuesta1

La solución es cambiar la versión de MariaDB aevitarversión 10.8.3, por ejemplo forzando mariadb:10.8.2o mariadb:10.7, o para establecer--security-opt seccomp=unconfined

Si su Dockerfile o docker-compose hacen referencia mariadb:latesta o mariadb:10en el verano de 2022, eso apunta a mariadb:10.8.3.

Al contrario de la publicación de @Arno, la versión de Docker no es el problema. Estoy ejecutando Docker 20.10.17y el problema persiste.

También puedes ejecutar directamente con un perfil de seguridad actualizado:

docker run --security-opt seccomp=/etc/docker/profiles-seccomp-scmp-act-trace.json

Con suerte, habrá una solución en la 10.8.3versión de MariaDB.

https://github.com/MariaDB/mariadb-docker/issues/434

Respuesta2

El problema fue reportadoen GitHub. La actualización de Docker parece solucionarlo.

Respuesta3

Tuve el mismo problema al ejecutar MariaDB ( latest) en Gitlab CI usandoContenedores de pruebapara Java.

Usar la seccomp=unconfinedopción de seguridad, como se analiza en el informe de Github vinculado por @Arno, resolvió esto por mí.

Habilitar esto testcontainers-javaes un poco extraño, así que aquí está el flujo si los lectores encuentran el mismo problema con Test Containes:

var container = new MariaDBContainer<>("mariadb:latest")
.withCreateContainerCmdModifier(cmd -> {
    var cfg = cmd.getHostConfig();
    List<String> seclist = Objects.requireNonNullElseGet(cfg.getSecurityOpts(),
            LinkedList::new);
    seclist.add("seccomp=unconfined");
    cfg.withSecurityOpts(seclist);
});

Respuesta4

Esta misma pregunta se hizo en StackOverflow; consulte mi respuesta allíhttps://stackoverflow.com/a/72467817

En resumen, es probable que la versión de su ventana acoplable sea <20.10.10, que es el mínimo requerido para usar imágenes basadas en Jammy. MariaDB > 10.8.2 usa Jammy, por lo que hay un conflicto ahí.

Actualizar Docker es realmente la única opción correcta en este momento: MariaDB 10.7 finalizará el soporte pronto el 14 de febrero de 2023, y Docker 19.03 (la versión anterior al 20.10) entró en EOL el 21 de julio de 2021.

información relacionada