canonical-ubuntu-qa team mailing list archive
-
canonical-ubuntu-qa team
-
Mailing list archive
-
Message #00249
[Bug 2009436] Re: dkms modules are not built anymore for linux-kvm
** Description changed:
- Since 23th of Feb, some adt test for dkms packages (digimend-dkms is an example) started to pass even though it should fail.
- Before, the test would fail during build, because CONFIG_USB=n.
+ SRU Justification
- Logs from last time it failed:
- https://autopkgtest.ubuntu.com/results/autopkgtest-jammy/jammy/amd64/d/digimend-dkms/20230213_171044_032fa@/log.gz
+ [Impact]
- Logs where test passes.
+ Some dkms modules are not built anymore when a retry is triggred from adt matrix page.
+ It was noticed because these modules previously failed during build (because a config options is disabled) but now they pass (artificial pass).
+
+ Affected modules:
+ 1. digimend-dkms
+ 2. oss4
+ 3. rtl8812au
+ 4. rtl8812ce
+
+ Looking at digimend-dkms for jammy:linux-kvm, first time the test was correct (it failed) was when the new kernel was just pushed to proposed and adt testing was triggered. When a manual retry was done, it passed because build was ignored.
+ Looking at the artifacts (attached for both cases), ADT_TEST_TRIGGERS differs:
+ 1. when build is triggered, ADT_TEST_TRIGGERS=linux-meta-kvm/5.15.0.1030.26 linux-kvm/5.15.0-1030.35 linux-signed-kvm/5.15.0-1030.35
+ logs https://autopkgtest.ubuntu.com/results/autopkgtest-jammy/jammy/amd64/d/digimend-dkms/20230213_171044_032fa@/log.gz
+
+ 2. when build is not triggered, ADT_TEST_TRIGGERS=linux-meta-kvm/5.15.0.1030.26
+ logs:
https://autopkgtest.ubuntu.com/results/autopkgtest-jammy/jammy/amd64/d/digimend-dkms/20230301_110606_17e6d@/log.gz
- Could not reproduce it locally, in a vm, a simple sudo apt install digimend-dkms will fail during build.
- ```
+
+ Last log line present in both cases is:
+ "I: Testing binary package $pkg".
+
+ Looking at dkms: debian/scripts/dkms-autopkgtest
+
+ After that line and the line where build is triggered the following code:
+ dkms_pkg=$(bash -c ". $dkms_conf > /dev/null; echo \$PACKAGE_NAME" 2>/dev/null)
+ dkms_ver=$(bash -c ". $dkms_conf > /dev/null; echo \$PACKAGE_VERSION" 2>/dev/null)
+
+ for k in /lib/modules/*/build
+ do
+ test -d "$k" || continue
+ kver="${k%/build}"
+ kver="${kver#/lib/modules/}"
+
+ # If any linux-meta is in triggers, only test abistems that
+ # match triggers otherwise continue. This helps integration
+ # with adt-matrix which specifically requests test results
+ # against each individual linux-meta and tracks unique results
+ # per kernel abi.
+ abistem=$(echo $kver | sed 's/-[a-z]*$//')
+ ## abistem is 5.15.0-130
+ case "${ADT_TEST_TRIGGERS-}" in
+ *linux-meta*)
+ case "$ADT_TEST_TRIGGERS" in
+ *"$abistem"*)
+ ;;
+ *)
+ continue
+ ;;
+ esac
+ esac
+
+ echo "I: Trying to build $dkms_pkg/$dkms_ver for $kver"
+
+ What happens here is that it never gets passed the switch case and build
+ is not triggered when ADT_TEST_TRIGGERS consists of linux-meta only,
+ because abistem=<kernel_version>-<abi_version>, but meta
+ version=<kernel_version>.<abi_version>. Notice the dot instead of the
+ dash.
+
+ This justifies why the module is built when ADT_TEST_TRIGGERS=linux-
+ meta-kvm/5.15.0.1030.26 linux-kvm/5.15.0-1030.35 linux-signed-
+ kvm/5.15.0-1030.35, but not when ADT_TEST_TRIGGERS=linux-meta-
+ kvm/5.15.0.1030.26
+
+ [Fix]
+ Add an extra check for meta_version in that switch case statement.
+
+ [Testcase]
+ 1. Tested locally with ADT_TEST_TRIGGERS=linux-meta.. before fix
+ I: linux-headers-virtual
I: Testing binary package digimend-dkms
- I: Trying to build digimend/10 for 5.15.0-1028-kvm
+ autopkgtest [11:14:45]: test dkms-autopkgtest: -----------------------]
+ autopkgtest [11:14:46]: test dkms-autopkgtest: - - - - - - - - - - results - - - - - - - - - -
+ dkms-autopkgtest PASS
+ autopkgtest [11:14:47]: @@@@@@@@@@@@@@@@@@@@ summary
+ dkms-autopkgtest PASS
+ qemu-system-x86_64: terminating on signal 15 from pid 15111 (/usr/bin/python3)
+ 2. Tested locally with ADT_TEST_TRIGGERS=linux-meta.. with the fix
+ I: Testing binary package digimend-dkms
+ I: Trying to build digimend/10 for 5.15.0-1029-kvm
Creating symlink /var/lib/dkms/digimend/10/source -> /usr/src/digimend-10
Kernel preparation unnecessary for this kernel. Skipping...
Building module:
cleaning build area...
- make -j1 KERNELRELEASE=5.15.0-1028-kvm KVERSION=5.15.0-1028-kvm...(bad exit status: 2)
- Error! Bad return status for module build on kernel: 5.15.0-1028-kvm (x86_64)
+ make -j1 KERNELRELEASE=5.15.0-1029-kvm KVERSION=5.15.0-1029-kvm...(bad exit status: 2)
+ ERROR (dkms apport): kernel package linux-headers-5.15.0-1029-kvm is not supported
+ Error! Bad return status for module build on kernel: 5.15.0-1029-kvm (x86_64)
Consult /var/lib/dkms/digimend/10/build/make.log for more information.
- E: digimend/10 failed to build for 5.15.0-1028-kvm
+ E: digimend/10 failed to build for 5.15.0-1029-kvm
========== /var/lib/dkms/digimend/10/build/make.log ==========
- DKMS make.log for digimend-10 for kernel 5.15.0-1028-kvm (x86_64)
- Sat Jan 28 00:05:19 UTC 2023
- make -C /lib/modules/5.15.0-1028-kvm/build M=/var/lib/dkms/digimend/10/build modules
- make[1]: Entering directory '/usr/src/linux-headers-5.15.0-1028-kvm'
- CC [M] /var/lib/dkms/digimend/10/build/hid-kye.o
- CC [M] /var/lib/dkms/digimend/10/build/hid-uclogic-core.o
- CC [M] /var/lib/dkms/digimend/10/build/hid-uclogic-rdesc.o
- CC [M] /var/lib/dkms/digimend/10/build/hid-uclogic-params.o
+ DKMS make.log for digimend-10 for kernel 5.15.0-1029-kvm (x86_64)
+ Wed Mar 15 11:20:05 CET 2023
+ make -C /lib/modules/5.15.0-1029-kvm/build M=/var/lib/dkms/digimend/10/build modules
+ make[1]: Entering directory '/usr/src/linux-headers-5.15.0-1029-kvm'
+ CC [M] /var/lib/dkms/digimend/10/build/hid-kye.o
+ CC [M] /var/lib/dkms/digimend/10/build/hid-uclogic-core.o
+ CC [M] /var/lib/dkms/digimend/10/build/hid-uclogic-rdesc.o
+ CC [M] /var/lib/dkms/digimend/10/build/hid-uclogic-params.o
/var/lib/dkms/digimend/10/build/hid-uclogic-params.c: In function ‘uclogic_params_init’:
- /var/lib/dkms/digimend/10/build/hid-uclogic-params.c:1147:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
- 1147 | if (bNumInterfaces != 3) {
- | ^
+ /var/lib/dkms/digimend/10/build/hid-uclogic-params.c:1147:20: warning: this statement may fall through [-Wimplicit-fallthrough]
+ 1147 | if (bNumInterfaces != 3) {
+ | ^
/var/lib/dkms/digimend/10/build/hid-uclogic-params.c:1165:9: note: here
- 1165 | case VID_PID(USB_VENDOR_ID_HUION,
- | ^~~~
- LD [M] /var/lib/dkms/digimend/10/build/hid-uclogic.o
- CC [M] /var/lib/dkms/digimend/10/build/hid-polostar.o
- CC [M] /var/lib/dkms/digimend/10/build/hid-viewsonic.o
- MODPOST /var/lib/dkms/digimend/10/build/Module.symvers
+ 1165 | case VID_PID(USB_VENDOR_ID_HUION,
+ | ^~~~
+ LD [M] /var/lib/dkms/digimend/10/build/hid-uclogic.o
+ CC [M] /var/lib/dkms/digimend/10/build/hid-polostar.o
+ CC [M] /var/lib/dkms/digimend/10/build/hid-viewsonic.o
+ MODPOST /var/lib/dkms/digimend/10/build/Module.symvers
ERROR: modpost: "usb_string" [/var/lib/dkms/digimend/10/build/hid-uclogic.ko] undefined!
ERROR: modpost: "usb_control_msg" [/var/lib/dkms/digimend/10/build/hid-uclogic.ko] undefined!
ERROR: modpost: "usb_hid_driver" [/var/lib/dkms/digimend/10/build/hid-uclogic.ko] undefined!
make[2]: *** [scripts/Makefile.modpost:133: /var/lib/dkms/digimend/10/build/Module.symvers] Error 1
make[2]: *** Deleting file '/var/lib/dkms/digimend/10/build/Module.symvers'
- make[1]: *** [Makefile:1819: modules] Error 2
- make[1]: Leaving directory '/usr/src/linux-headers-5.15.0-1028-kvm'
+ make[1]: *** [Makefile:1821: modules] Error 2
+ make[1]: Leaving directory '/usr/src/linux-headers-5.15.0-1029-kvm'
make: *** [Makefile:25: modules] Error 2
====================
./digimend/10/build/make.log
- autopkgtest [00:05:23]: test dkms-autopkgtest: -----------------------]
+ autopkgtest [11:20:08]: test dkms-autopkgtest: -----------------------]
+ autopkgtest [11:20:09]: test dkms-autopkgtest: - - - - - - - - - - results - - - - - - - - - -
dkms-autopkgtest FAIL non-zero exit status 1
- autopkgtest [00:05:24]: test dkms-autopkgtest: - - - - - - - - - - results - - - - - - - - - -
- autopkgtest [00:05:24]: @@@@@@@@@@@@@@@@@@@@ summary
+ autopkgtest [11:20:10]: @@@@@@@@@@@@@@@@@@@@ summary
dkms-autopkgtest FAIL non-zero exit status 1
- ```
+ qemu-system-x86_64: terminating on signal 15 from pid 16171 (/usr/bin/python3)
+
- Test fails with exitcode 1, and autopkgtest return 4 as exitcode.
+ [Regression potential]
+ We will see now failures instead of passes, but for the modules listed above, fixes are in the making.
- This happens in multiple modules (oss4, rtl8812au), they are supposed to fail because a config is not enabled, but now they pass (superficially). This may affect other derivatives as well that have some config options disabled.
- To be investigated.
+
+ [Note]
+ Not sure why ADT_TEST_TRIGGERS is different for manual retries vs when test is automated triggered when the new kernel is in proposed.
** Changed in: autopkgtest (Ubuntu)
Status: Incomplete => Invalid
** Changed in: linux-kvm (Ubuntu)
Status: New => Invalid
--
You received this bug notification because you are a member of
Canonical's Ubuntu QA, which is subscribed to autopkgtest in Ubuntu.
https://bugs.launchpad.net/bugs/2009436
Title:
dkms modules are not built anymore for linux-kvm
Status in autopkgtest package in Ubuntu:
Invalid
Status in dkms package in Ubuntu:
New
Status in linux-kvm package in Ubuntu:
Invalid
Bug description:
SRU Justification
[Impact]
Some dkms modules are not built anymore when a retry is triggred from adt matrix page.
It was noticed because these modules previously failed during build (because a config options is disabled) but now they pass (artificial pass).
Affected modules:
1. digimend-dkms
2. oss4
3. rtl8812au
4. rtl8812ce
Looking at digimend-dkms for jammy:linux-kvm, first time the test was correct (it failed) was when the new kernel was just pushed to proposed and adt testing was triggered. When a manual retry was done, it passed because build was ignored.
Looking at the artifacts (attached for both cases), ADT_TEST_TRIGGERS differs:
1. when build is triggered, ADT_TEST_TRIGGERS=linux-meta-kvm/5.15.0.1030.26 linux-kvm/5.15.0-1030.35 linux-signed-kvm/5.15.0-1030.35
logs https://autopkgtest.ubuntu.com/results/autopkgtest-jammy/jammy/amd64/d/digimend-dkms/20230213_171044_032fa@/log.gz
2. when build is not triggered, ADT_TEST_TRIGGERS=linux-meta-kvm/5.15.0.1030.26
logs:
https://autopkgtest.ubuntu.com/results/autopkgtest-jammy/jammy/amd64/d/digimend-dkms/20230301_110606_17e6d@/log.gz
Last log line present in both cases is:
"I: Testing binary package $pkg".
Looking at dkms: debian/scripts/dkms-autopkgtest
After that line and the line where build is triggered the following code:
dkms_pkg=$(bash -c ". $dkms_conf > /dev/null; echo \$PACKAGE_NAME" 2>/dev/null)
dkms_ver=$(bash -c ". $dkms_conf > /dev/null; echo \$PACKAGE_VERSION" 2>/dev/null)
for k in /lib/modules/*/build
do
test -d "$k" || continue
kver="${k%/build}"
kver="${kver#/lib/modules/}"
# If any linux-meta is in triggers, only test abistems that
# match triggers otherwise continue. This helps integration
# with adt-matrix which specifically requests test results
# against each individual linux-meta and tracks unique results
# per kernel abi.
abistem=$(echo $kver | sed 's/-[a-z]*$//')
## abistem is 5.15.0-130
case "${ADT_TEST_TRIGGERS-}" in
*linux-meta*)
case "$ADT_TEST_TRIGGERS" in
*"$abistem"*)
;;
*)
continue
;;
esac
esac
echo "I: Trying to build $dkms_pkg/$dkms_ver for $kver"
What happens here is that it never gets passed the switch case and
build is not triggered when ADT_TEST_TRIGGERS consists of linux-meta
only, because abistem=<kernel_version>-<abi_version>, but meta
version=<kernel_version>.<abi_version>. Notice the dot instead of the
dash.
This justifies why the module is built when ADT_TEST_TRIGGERS=linux-
meta-kvm/5.15.0.1030.26 linux-kvm/5.15.0-1030.35 linux-signed-
kvm/5.15.0-1030.35, but not when ADT_TEST_TRIGGERS=linux-meta-
kvm/5.15.0.1030.26
[Fix]
Add an extra check for meta_version in that switch case statement.
[Testcase]
1. Tested locally with ADT_TEST_TRIGGERS=linux-meta.. before fix
I: linux-headers-virtual
I: Testing binary package digimend-dkms
autopkgtest [11:14:45]: test dkms-autopkgtest: -----------------------]
autopkgtest [11:14:46]: test dkms-autopkgtest: - - - - - - - - - - results - - - - - - - - - -
dkms-autopkgtest PASS
autopkgtest [11:14:47]: @@@@@@@@@@@@@@@@@@@@ summary
dkms-autopkgtest PASS
qemu-system-x86_64: terminating on signal 15 from pid 15111 (/usr/bin/python3)
2. Tested locally with ADT_TEST_TRIGGERS=linux-meta.. with the fix
I: Testing binary package digimend-dkms
I: Trying to build digimend/10 for 5.15.0-1029-kvm
Creating symlink /var/lib/dkms/digimend/10/source -> /usr/src/digimend-10
Kernel preparation unnecessary for this kernel. Skipping...
Building module:
cleaning build area...
make -j1 KERNELRELEASE=5.15.0-1029-kvm KVERSION=5.15.0-1029-kvm...(bad exit status: 2)
ERROR (dkms apport): kernel package linux-headers-5.15.0-1029-kvm is not supported
Error! Bad return status for module build on kernel: 5.15.0-1029-kvm (x86_64)
Consult /var/lib/dkms/digimend/10/build/make.log for more information.
E: digimend/10 failed to build for 5.15.0-1029-kvm
========== /var/lib/dkms/digimend/10/build/make.log ==========
DKMS make.log for digimend-10 for kernel 5.15.0-1029-kvm (x86_64)
Wed Mar 15 11:20:05 CET 2023
make -C /lib/modules/5.15.0-1029-kvm/build M=/var/lib/dkms/digimend/10/build modules
make[1]: Entering directory '/usr/src/linux-headers-5.15.0-1029-kvm'
CC [M] /var/lib/dkms/digimend/10/build/hid-kye.o
CC [M] /var/lib/dkms/digimend/10/build/hid-uclogic-core.o
CC [M] /var/lib/dkms/digimend/10/build/hid-uclogic-rdesc.o
CC [M] /var/lib/dkms/digimend/10/build/hid-uclogic-params.o
/var/lib/dkms/digimend/10/build/hid-uclogic-params.c: In function ‘uclogic_params_init’:
/var/lib/dkms/digimend/10/build/hid-uclogic-params.c:1147:20: warning: this statement may fall through [-Wimplicit-fallthrough]
1147 | if (bNumInterfaces != 3) {
| ^
/var/lib/dkms/digimend/10/build/hid-uclogic-params.c:1165:9: note: here
1165 | case VID_PID(USB_VENDOR_ID_HUION,
| ^~~~
LD [M] /var/lib/dkms/digimend/10/build/hid-uclogic.o
CC [M] /var/lib/dkms/digimend/10/build/hid-polostar.o
CC [M] /var/lib/dkms/digimend/10/build/hid-viewsonic.o
MODPOST /var/lib/dkms/digimend/10/build/Module.symvers
ERROR: modpost: "usb_string" [/var/lib/dkms/digimend/10/build/hid-uclogic.ko] undefined!
ERROR: modpost: "usb_control_msg" [/var/lib/dkms/digimend/10/build/hid-uclogic.ko] undefined!
ERROR: modpost: "usb_hid_driver" [/var/lib/dkms/digimend/10/build/hid-uclogic.ko] undefined!
make[2]: *** [scripts/Makefile.modpost:133: /var/lib/dkms/digimend/10/build/Module.symvers] Error 1
make[2]: *** Deleting file '/var/lib/dkms/digimend/10/build/Module.symvers'
make[1]: *** [Makefile:1821: modules] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.15.0-1029-kvm'
make: *** [Makefile:25: modules] Error 2
====================
./digimend/10/build/make.log
autopkgtest [11:20:08]: test dkms-autopkgtest: -----------------------]
autopkgtest [11:20:09]: test dkms-autopkgtest: - - - - - - - - - - results - - - - - - - - - -
dkms-autopkgtest FAIL non-zero exit status 1
autopkgtest [11:20:10]: @@@@@@@@@@@@@@@@@@@@ summary
dkms-autopkgtest FAIL non-zero exit status 1
qemu-system-x86_64: terminating on signal 15 from pid 16171 (/usr/bin/python3)
[Regression potential]
We will see now failures instead of passes, but for the modules listed above, fixes are in the making.
[Note]
Not sure why ADT_TEST_TRIGGERS is different for manual retries vs when test is automated triggered when the new kernel is in proposed.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/autopkgtest/+bug/2009436/+subscriptions
References