Thread (8 messages) 8 messages, 2 authors, 2022-03-02

Re: Fwd: btrfs / io-uring corrupting reads

From: Filipe Manana <fdmanana@kernel.org>
Date: 2022-02-22 12:55:35
Also in: io-uring

On Tue, Feb 22, 2022 at 12:46 PM Filipe Manana [off-list ref] wrote:
On Tue, Feb 22, 2022 at 12:22 PM Daniel Black [off-list ref] wrote:
quoted
On Tue, Feb 22, 2022 at 10:42 PM Filipe Manana [off-list ref] wrote:
quoted
I gave it a try, but it fails setting up io_uring:

2022-02-22 11:27:13 0 [Note] mysqld: O_TMPFILE is not supported on /tmp (disabling future attempts)
2022-02-22 11:27:13 0 [Warning] mysqld: io_uring_queue_init() failed with errno 1
2022-02-22 11:27:13 0 [Warning] InnoDB: liburing disabled: falling back to innodb_use_native_aio=OFF
2022-02-22 11:27:13 0 [Note] InnoDB: Initializing buffer pool, total size = 134217728, chunk size = 134217728
2022-02-22 11:27:13 0 [Note] InnoDB: Completed initialization of buffer pool

So that's why it doesn't fail here, as it fallbacks to no aio mode.
error 1 is EPERM. Seems it needs --privileged on the container startup
as a podman argument (before the image name). Sorry I missed that
quoted
Any idea why it's failing to setup io_uring?

I have the liburing2 and liburing-dev packages installed on debian, and
tried with a 5.17-rc4 kernel.
Taking https://packages.debian.org/bookworm/mariadb-server-core-10.6 package:

mariadb-install-db --no-defaults --datadir=/empty/btrfs/path
--innodb-use-native-aio=0

mariadbd --no-defaults --datadir=/empty/btrfs/path --innodb-use-native-aio=1

should achieve the same thing.
Sorry, I have no experience with mariadb and podman. How am I supposed
to run that?
Is that supposed to run inside the container, on the host? Do I need
to change the podman command lines?

What I did before was:

DEV=/dev/sdh
MNT=/mnt/sdh

mkfs.btrfs -f $DEV
mount $DEV $MNT

mkdir $MNT/noaio
chown fdmanana: $MNT/noaio

podman run --name mdbinit --rm -v $MNT/noaio/:/var/lib/mysql:Z -e
MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=1
quay.io/danielgblack/mariadb-test:10.6-impish-sysbench
--innodb_use_native_aio=0


Then in another shell:

podman kill --all

podman run --rm -v $MNT/noaio/:/var/lib/mysql:Z -e
MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=1
quay.io/danielgblack/mariadb-test:10.6-impish-sysbench
--innodb_use_native_aio=1


What should I change or add in there?
Ok, just passing  --privileged to both podman commands triggered the
bug as in your report.
I'll see if I can figure out what's causing the read corruption.

Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help