Description
System information
Type | Version/Name |
---|---|
Distribution Name | FreeBSD |
Distribution Version | 13.1-RELEASE-p5 |
Kernel Version | 13.1-RELEASE-p3 |
Architecture | amd64 |
OpenZFS Version | zfs-2.1.4-FreeBSD_g52bad4f23 |
Describe the problem you're observing
While working on porting podman and buildah to FreeBSD, I have noticed many messages logged on the console that look like this:
len 4 vecnum: 126 sizeof (zfs_cmd_t) 4528
After debugging this, I discovered that this happens when something tries to set non-blocking i/o on a /dev/zfs
filedescriptor which translates to a FIONBIO
ioctl.
The zfs storage layer in for buildah and podman tries to detect whether zfs is available by opening /dev/zfs. The golang runtime libraries unconditionally try to set the descriptor into non-blocking mode causing the error message.
I can work around this in containers/storage but it seems to me that the FreeBSD ZFS port should not print this message to console but instead return a suitable error. Currently it returns EINVAL
after the printf which seems reasonable.
Describe how to reproduce the problem
On FreeBSD-13.1 or later, install the buildah package and run:
# buildah from quay.io/dougrabson/freebsd-minimal:13
On the system console, the len 4 vecnum...
message quoted above appears.
Include any warning/errors/backtraces from the system logs
len 4 vecnum: 126 sizeof (zfs_cmd_t) 4528