Public bug reported:
Hi,
I got to this having a failing systemd testcase for my qemu upload but we
tracked that to a regression with the 4.10 upload IMHO.
TL;DR:
- xts-aes and cbc-aes fail to initialize on power (other arch fine) since
kernel 4.10
socket(AF_ALG, SOCK_SEQPACKET, 0) = 5
bind(5, {sa_family=AF_ALG, sa_data="skcipher\0\0\0\0\0\0"}, 88) = -1 ENOENT
(No such file or directory)
Details:
Failing "storage" subtest of systemd
https://objectstorage.prodstack4-5.canonical.com/v1/AUTH_77e2ada1e7a84929a74ba3b87153c0ac/autopkgtest-zesty/zesty/ppc64el/s/systemd/20170306_005811_4a060@/log.gz
test_luks_by_devname (__main__.CryptsetupTest)
LUKS device by plain device name, empty ... device-mapper: reload ioctl on
temporary-cryptsetup-4601 failed: No such file or directory
Failed to setup dm-crypt key mapping for device /dev/sda.
Check that kernel supports aes-xts-plain64 cipher (check syslog for more info).
Failed to stop [email protected]: Unit
[email protected] not loaded.
FAIL
[...]
Studying the history of that test shows that it failed rather often with the
same error:
http://autopkgtest.ubuntu.com/packages/systemd/zesty/ppc64el
I discussed with pitti as systemd and autopkgtest expert:
[10:14] <cpaelzer> pitti: hi, I see in the autopkgtest history of systemd that
the "storage" test failed rather often on ppc64el
[10:15] <cpaelzer> pitti: I' currently ran into the same as well, since it
failed/worked so often without any visible difference - are these just "retried
until passing"
[10:15] <cpaelzer> pitti: or is there some background to learn?
[10:15] --> joedborg (~joedborg@2a02:c7f:9638:ab00:438:8be:af59:58e9) has
joined this channel.
[10:15] <cpaelzer> FYI - issues like in
https://objectstorage.prodstack4-5.canonical.com/v1/AUTH_77e2ada1e7a84929a74ba3b87153c0ac/autopkgtest-zesty/zesty/ppc64el/s/systemd/20170306_005811_4a060@/log.gz
[10:16] <pitti> cpaelzer: indeed, "reload ioctl on temporary-cryptsetup-5254
failed" -- that ioctl seems to be unreliable in cryptsetup somehow
[10:16] <pitti> that should be easy enough to reproduce outside the systemd
test suite too, for a kernel bug report
[10:17] <pitti>
https://anonscm.debian.org/cgit/pkg-systemd/systemd.git/tree/debian/tests/storage#n74
is the cryptsetup luksFormat call
[10:17] <cpaelzer> pitti: ok, so in proposed retrying til pass and in a test
env trying to debug and understand
[10:17] <cpaelzer> pitti: thanks
[10:18] <cpaelzer> depending which of both is faster the debugging might
resolve the retrying :-)
[10:18] <pitti> the test uses scsi_debug as a drive, I suggest to try with both
that and a simple loop device to see whether that makes a difference
[10:18] <cpaelzer> thank you, I will do so
[10:19] <pitti> cpaelzer: y and x seem fine, so might be a regression of linux
4.11?
[10:20] <pitti> actually it started failing with trigger linux-meta/4.10.0.8.10
[10:20] <pitti>
https://objectstorage.prodstack4-5.canonical.com/v1/AUTH_77e2ada1e7a84929a74ba3b87153c0ac/autopkgtest-zesty/zesty/ppc64el/s/systemd/20170217_024850_73931@/log.gz
was the last successful one, with autopkgtest [01:48:28]: testbed running
kernel: Linux 4.9.0-15-generic #16-Ubuntu SMP Fri Jan 20 15:28:49 UTC 2017
[10:20] <cpaelzer> yeah I see that this was the "date" it started
[10:20] <pitti> i. e. 4.9 → 4.10
[10:20] <cpaelzer> former fails had other errors
So I went down debugging this:
1. Zesty guest on ppc64el (isolation-machine, so KVM)
2. repro as-is in this guest
pull-lp-source systemd
cd debian/tests
sudo ./storage (needs-roos, so sudo)
=> reproducable
3. debug
Dmesg shows related errors
[ 712.187600] Failed to allocate transformation for 'xts(aes)': -2
[ 712.249614] Failed to allocate transformation for 'xts(aes)': -2
[ 712.250818] device-mapper: table: 253:0: crypt: Error allocating crypto tfm
[ 712.251990] device-mapper: ioctl: error adding target to table
4. simplify repro
modprobe scsi_debug
# in my case /dev/sda
echo fookey | sudo cryptsetup --batch-mode luksFormat --key-file - /dev/sda
Here we can also confirm that it is not the devtype - e.g. also loop
devices fail.
I checked the kernel, but the config has set the algorithm:
$ cat /boot/config-4.10.0-9-generic | grep CRYPTO_XTS
CONFIG_CRYPTO_XTS=y
There are similar older bugs - but they are only "similar" both are fixed in
our kernel and cryptsetup versions:
kernel: https://bugzilla.kernel.org/show_bug.cgi?id=112631
cryptsetup: https://gitlab.com/cryptsetup/cryptsetup/issues/284
Fortunately cryptsetup can check all kind of algorithms easily:
$ cryptsetup benchmark
[...]
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b N/A N/A
serpent-cbc 128b 58,3 MiB/s 68,2 MiB/s
twofish-cbc 128b 118,9 MiB/s 134,6 MiB/s
aes-cbc 256b N/A N/A
serpent-cbc 256b 58,8 MiB/s 68,2 MiB/s
twofish-cbc 256b 119,0 MiB/s 134,4 MiB/s
aes-xts 256b N/A N/A
serpent-xts 256b 62,0 MiB/s 68,1 MiB/s
twofish-xts 256b 127,8 MiB/s 132,6 MiB/s
aes-xts 512b N/A N/A
serpent-xts 512b 62,2 MiB/s 68,1 MiB/s
twofish-xts 512b 128,2 MiB/s 132,5 MiB/s
So aes-xts (the default) is not avail?
Really?
BTW - This at least helps to further simplify the test (no need for a device at
all)
$ cryptsetup benchmark --cipher aes-xts
But in /proc/crypto I can see:
name : xts(aes)
driver : p8_aes_xts
module : vmx_crypto
priority : 2000
refcnt : 1
selftest : passed
internal : no
type : blkcipher
blocksize : 16
min keysize : 32
max keysize : 64
ivsize : 16
geniv : <default>
The test is not failing on x86, check there:
=> Working just fine on x86
$ cat /proc/crypto (from x86)
[...]
name : xts(aes)
driver : xts(ecb(aes-asm))
module : kernel
priority : 200
refcnt : 1
selftest : passed
internal : no
type : skcipher
async : no
blocksize : 16
min keysize : 32
max keysize : 64
ivsize : 16
chunksize : 16
On the power system the listed module "vmx_crypto" is loaded.
The related output in /proc/crypto did not change since xenial.
Stracing to confirm it is not the old accept before bind issue:
Call (xenial):
socket(PF_ALG, SOCK_SEQPACKET, 0) = 5
bind(5, {sa_family=AF_ALG, sa_data="skcipher\0\0\0\0\0\0"}, 88) = 0
Bad (Zesty):
socket(AF_ALG, SOCK_SEQPACKET, 0) = 5
bind(5, {sa_family=AF_ALG, sa_data="skcipher\0\0\0\0\0\0"}, 88) = -1 ENOENT (No
such file or directory)
The old kernel bug was about "bind" needed to be (setting key types) before
accept.
The new crypsetup does that, so it is NOT the old issue (as we could assume
since it was fixed in 4.4 and various stable updates).
Yet it is very close - now the bind itself fails setting the xts-aes type (and
cbc-aes fails too btw).
=> kernel update regression from the move to 4.10
ProblemType: Bug
DistroRelease: Ubuntu 17.04
Package: linux-image-4.10.0-9-generic 4.10.0-9.11
ProcVersionSignature: User Name 4.10.0-9.11-generic 4.10.0
Uname: Linux 4.10.0-9-generic ppc64le
.var.log.platform: Error: [Errno 13] Permission denied: '/var/log/platform'
AlsaDevices:
total 0
crw-rw---- 1 root audio 116, 1 Mär 6 09:26 seq
crw-rw---- 1 root audio 116, 33 Mär 6 09:26 timer
AplayDevices: Error: [Errno 2] No such file or directory: 'aplay'
ApportVersion: 2.20.4-0ubuntu2
Architecture: ppc64el
ArecordDevices: Error: [Errno 2] No such file or directory: 'arecord'
AudioDevicesInUse: Error: command ['fuser', '-v', '/dev/snd/seq',
'/dev/snd/timer'] failed with exit code 1:
Date: Mon Mar 6 10:25:00 2017
IwConfig: Error: [Errno 2] No such file or directory: 'iwconfig'
Lsusb:
Bus 001 Device 003: ID 0627:0001 Adomax Technology Co., Ltd
Bus 001 Device 002: ID 0627:0001 Adomax Technology Co., Ltd
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
PciMultimedia:
ProcFB: 0 OFfb vga
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinux-4.10.0-9-generic
root=LABEL=cloudimg-rootfs earlyprintk
ProcLoadAvg: 0.00 0.00 0.00 1/129 24971
ProcLocks:
1: POSIX ADVISORY WRITE 1431 00:13:16508 0 EOF
2: FLOCK ADVISORY WRITE 1423 00:13:16392 0 EOF
3: POSIX ADVISORY WRITE 1422 00:13:16194 0 EOF
4: POSIX ADVISORY WRITE 1387 00:13:15603 0 EOF
5: POSIX ADVISORY WRITE 398 00:13:11036 0 EOF
ProcSwaps: Filename Type Size Used
Priority
ProcVersion: Linux version 4.10.0-9-generic (buildd@bos01-ppc64el-025) (gcc
version 6.3.0 20161229 (User Name 6.3.0-2ubuntu1) ) #11-User Name SMP Mon Feb
20 13:45:11 UTC 2017
RelatedPackageVersions:
linux-restricted-modules-4.10.0-9-generic N/A
linux-backports-modules-4.10.0-9-generic N/A
linux-firmware 1.163
RfKill: Error: [Errno 2] No such file or directory: 'rfkill'
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
cpu_cores: Number of cores present = 1
cpu_coreson: Number of cores online = 1
cpu_smt: Error: command ['ppc64_cpu', '--smt'] failed with exit code 255:
Machine is not SMT capable
** Affects: linux (Ubuntu)
Importance: Undecided
Status: New
** Tags: apport-bug ppc64el uec-images zesty
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1670311
Title:
aes-xts and aes-cbc failing to initialize on power since 4.10
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1670311/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs