Bug 237449

Summary: sys.opencrypto.runtests.main is failing on i386 with EINVAL when calling `fcntl.ioctl`
Product: Base System Reporter: Enji Cooper <ngie>
Component: testsAssignee: freebsd-testing mailing list <testing>
Status: New ---    
Severity: Affects Some People    
Priority: ---    
Version: CURRENT   
Hardware: Any   
OS: Any   

Description Enji Cooper freebsd_committer 2019-04-21 22:11:02 UTC
This is happening on all branches, AFAICT. From https://ci.freebsd.org/job/FreeBSD-head-i386-test/5132/testReport/junit/sys.opencrypto/runtests/main/ :

```
+ python2 /usr/tests/sys/opencrypto/cryptotest.py
EE.EsEEE.EEE
======================================================================
ERROR: test_cbc (__main__.GendCryptoTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/tests/sys/opencrypto/cryptotest.py", line 70, in test_cbc
    self.runCBC(i)
  File "/usr/tests/sys/opencrypto/cryptotest.py", line 178, in runCBC
    c = Crypto(cryptodev.CRYPTO_AES_CBC, cipherkey, crid=crid)
  File "/usr/tests/sys/opencrypto/cryptodev.py", line 181, in __init__
    ioctl(_cryptodev, CIOCGSESSION2, s, 1)
IOError: [Errno 22] Invalid argument

======================================================================
ERROR: test_gcm (__main__.GendCryptoTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/tests/sys/opencrypto/cryptotest.py", line 75, in test_gcm
    self.runGCM(i, 'ENCRYPT')
  File "/usr/tests/sys/opencrypto/cryptotest.py", line 115, in runGCM
    mackey=cipherkey, crid=crid)
  File "/usr/tests/sys/opencrypto/cryptodev.py", line 181, in __init__
    ioctl(_cryptodev, CIOCGSESSION2, s, 1)
IOError: [Errno 22] Invalid argument

======================================================================
ERROR: test_sha1hmac (__main__.GendCryptoTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/tests/sys/opencrypto/cryptotest.py", line 269, in test_sha1hmac
    self.runSHA1HMAC(i)
  File "/usr/tests/sys/opencrypto/cryptotest.py", line 311, in runSHA1HMAC
    crid=crid)
  File "/usr/tests/sys/opencrypto/cryptodev.py", line 181, in __init__
    ioctl(_cryptodev, CIOCGSESSION2, s, 1)
IOError: [Errno 22] Invalid argument

======================================================================
ERROR: test_xts (__main__.GendCryptoTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/tests/sys/opencrypto/cryptotest.py", line 65, in test_xts
    self.runXTS(i, cryptodev.CRYPTO_AES_XTS)
  File "/usr/tests/sys/opencrypto/cryptotest.py", line 211, in runXTS
    c = Crypto(meth, cipherkey, crid=crid)
  File "/usr/tests/sys/opencrypto/cryptodev.py", line 181, in __init__
    ioctl(_cryptodev, CIOCGSESSION2, s, 1)
IOError: [Errno 22] Invalid argument

======================================================================
ERROR: test_cbc (__main__.GendCryptoTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/tests/sys/opencrypto/cryptotest.py", line 70, in test_cbc
    self.runCBC(i)
  File "/usr/tests/sys/opencrypto/cryptotest.py", line 178, in runCBC
    c = Crypto(cryptodev.CRYPTO_AES_CBC, cipherkey, crid=crid)
  File "/usr/tests/sys/opencrypto/cryptodev.py", line 181, in __init__
    ioctl(_cryptodev, CIOCGSESSION2, s, 1)
IOError: [Errno 22] Invalid argument

======================================================================
ERROR: test_gcm (__main__.GendCryptoTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/tests/sys/opencrypto/cryptotest.py", line 75, in test_gcm
    self.runGCM(i, 'ENCRYPT')
  File "/usr/tests/sys/opencrypto/cryptotest.py", line 115, in runGCM
    mackey=cipherkey, crid=crid)
  File "/usr/tests/sys/opencrypto/cryptodev.py", line 181, in __init__
    ioctl(_cryptodev, CIOCGSESSION2, s, 1)
IOError: [Errno 22] Invalid argument

======================================================================
ERROR: test_sha1hmac (__main__.GendCryptoTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/tests/sys/opencrypto/cryptotest.py", line 269, in test_sha1hmac
    self.runSHA1HMAC(i)
  File "/usr/tests/sys/opencrypto/cryptotest.py", line 311, in runSHA1HMAC
    crid=crid)
  File "/usr/tests/sys/opencrypto/cryptodev.py", line 181, in __init__
    ioctl(_cryptodev, CIOCGSESSION2, s, 1)
IOError: [Errno 22] Invalid argument

======================================================================
ERROR: test_tdes (__main__.GendCryptoTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/tests/sys/opencrypto/cryptotest.py", line 226, in test_tdes
    self.runTDES(i)
  File "/usr/tests/sys/opencrypto/cryptotest.py", line 252, in runTDES
    c = Crypto(cryptodev.CRYPTO_3DES_CBC, cipherkey, crid=crid)
  File "/usr/tests/sys/opencrypto/cryptodev.py", line 181, in __init__
    ioctl(_cryptodev, CIOCGSESSION2, s, 1)
IOError: [Errno 22] Invalid argument

======================================================================
ERROR: test_xts (__main__.GendCryptoTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/tests/sys/opencrypto/cryptotest.py", line 65, in test_xts
    self.runXTS(i, cryptodev.CRYPTO_AES_XTS)
  File "/usr/tests/sys/opencrypto/cryptotest.py", line 211, in runXTS
    c = Crypto(meth, cipherkey, crid=crid)
  File "/usr/tests/sys/opencrypto/cryptodev.py", line 181, in __init__
    ioctl(_cryptodev, CIOCGSESSION2, s, 1)
IOError: [Errno 22] Invalid argument

----------------------------------------------------------------------
Ran 12 tests in 0.010s

FAILED (errors=9, skipped=1)
```

It might be because of this error in ioctl(2), but it could also be an issue with the request itself:

```
     [EINVAL]           The request or argp argument is not valid.
```