posix_ipc in test_regression_testsuite from ubuntu_qrt_apparmor failed on K-5.19 arm64 (Unable to run test sub-executable)

Bug #2000359 reported by Po-Hsu Lin
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QA Regression Testing
Fix Released
Undecided
Unassigned
ubuntu-kernel-tests
Fix Released
Undecided
Unassigned
apparmor (Ubuntu)
Fix Released
Undecided
Unassigned
Kinetic
Invalid
Undecided
Unassigned

Bug Description

Issue found on Kinetic 5.19 ARM64 systems,

The ApparmorTestsuites.test_regression_testsuite in ubuntu_qrt_apparmor will fail with posix_ipc test:

running posix_ipc
Fatal Error (posix_mq_rcv): Unable to run test sub-executable

It's a bit hard to find which one is failing, here is the test output of ApparmorTestsuites.test_regression_testsuite:

== BEGIN OF TEST OUPTUT ==
running aa_exec

running access
xfail: ACCESS file rx (r)
xfail: ACCESS file rwx (r)
xfail: ACCESS file r (wx)
xfail: ACCESS file rx (wx)
xfail: ACCESS file rwx (wx)
xfail: ACCESS dir rwx (r)
xfail: ACCESS dir r (wx)
xfail: ACCESS dir rx (wx)
xfail: ACCESS dir rwx (wx)

running at_secure

running introspect

running capabilities
        (ptrace)
        (sethostname)
        (setdomainname)
        (setpriority)
        (setscheduler)
        (reboot)
        (chroot)
        (mlockall)
        (net_raw)

running changeprofile

running onexec

running changehat

running changehat_fork

running changehat_misc

*** A 'Killed' message from bash is expected for the following test
/tmp/testlibxbcgpuwp/source/kinetic/apparmor-3.0.7/tests/regression/apparmor/prologue.inc: line 264: 309514 Killed $testexec "$@" > $outfile 2>&1

*** A 'Killed' message from bash is expected for the following test
/tmp/testlibxbcgpuwp/source/kinetic/apparmor-3.0.7/tests/regression/apparmor/prologue.inc: line 264: 309547 Killed $testexec "$@" > $outfile 2>&1

running chdir

running clone

running coredump
*** A 'Segmentation Fault' message from bash is expected for the following test
/tmp/testlibxbcgpuwp/source/kinetic/apparmor-3.0.7/tests/regression/apparmor/prologue.inc: line 264: 309797 Segmentation fault (core dumped) $testexec "$@" > $outfile 2>&1

*** A 'Segmentation Fault' message from bash is expected for the following test
/tmp/testlibxbcgpuwp/source/kinetic/apparmor-3.0.7/tests/regression/apparmor/prologue.inc: line 264: 309826 Segmentation fault $testexec "$@" > $outfile 2>&1

*** A 'Segmentation Fault' message from bash is expected for the following test
/tmp/testlibxbcgpuwp/source/kinetic/apparmor-3.0.7/tests/regression/apparmor/prologue.inc: line 264: 309861 Segmentation fault $testexec "$@" > $outfile 2>&1

*** A 'Segmentation Fault' message from bash is expected for the following test
/tmp/testlibxbcgpuwp/source/kinetic/apparmor-3.0.7/tests/regression/apparmor/prologue.inc: line 264: 309896 Segmentation fault $testexec "$@" > $outfile 2>&1

*** A 'Segmentation Fault' message from bash is expected for the following test
/tmp/testlibxbcgpuwp/source/kinetic/apparmor-3.0.7/tests/regression/apparmor/prologue.inc: line 264: 309931 Segmentation fault $testexec "$@" > $outfile 2>&1
XFAIL: Error: corefile present when not expected -- COREDUMP (ix confinement)

running deleted

running environ

running exec

running exec_qual

running fchdir

running fd_inheritance

running fork

running i18n

running link

running link_subset

running mkdir

running mmap

running mount
    using mount rules ...

running mult_mount

running named_pipe

running namespaces

running net_raw

running open

running openat

running pipe

running pivot_root
 kernel does not support pivot_root domain transitions - skipping tests ...

running posix_ipc
Fatal Error (posix_mq_rcv): Unable to run test sub-executable

running ptrace
   using ptrace v6 tests ...

running pwrite

running query_label

running regex

running rename

running readdir

running rw

running socketpair

running swap

running sd_flags

running setattr

running symlink

running syscall
 WARNING: syscall sysctl not supported by kernel headers, skipping tests ...

running sysv_ipc
Required feature 'ipc/sysv_mqueue' not available.. Skipping tests ...

running tcp

running unix_fd_server

running unix_socket_pathname
xpass: AF_UNIX pathname socket (dgram); confined server w/ access (rw)
xpass: AF_UNIX pathname socket (dgram); confined client w/ access (rw)

running unix_socket_abstract

running unix_socket_unnamed
xpass: AF_UNIX unnamed socket (dgram); confined server (peer label w/ implicit perms)
xpass: AF_UNIX unnamed socket (dgram); confined server (peer label w/ explicit perms)
xpass: AF_UNIX unnamed socket (dgram); confined server (peer label, peer addr)
xpass: AF_UNIX unnamed socket (dgram); confined server (type, peer label, peer addr)
xpass: AF_UNIX unnamed socket (dgram); confined server (type, addr, peer label)
xpass: AF_UNIX unnamed socket (dgram); confined server (type, addr, peer label, peer addr)

running unix_socket_autobind

running unlink

running xattrs
Required feature 'file/xattr' not available.. Skipping tests ...

running xattrs_profile

running longpath
XFAIL: This version of AppArmor does not support changing buffer size.

running dbus_eavesdrop
dbus[367250]: Unable to set up transient service directory: XDG_RUNTIME_DIR "/run/user/1005" is owned by uid 1005, not our uid 0

running dbus_message
dbus[367532]: Unable to set up transient service directory: XDG_RUNTIME_DIR "/run/user/1005" is owned by uid 1005, not our uid 0

running dbus_service
dbus[368202]: Unable to set up transient service directory: XDG_RUNTIME_DIR "/run/user/1005" is owned by uid 1005, not our uid 0

running dbus_unrequested_reply
dbus[368587]: Unable to set up transient service directory: XDG_RUNTIME_DIR "/run/user/1005" is owned by uid 1005, not our uid 0

running aa_policy_cache

running exec_stack

running nnp

running stackonexec

running stackprofile
make: *** [Makefile:354: tests] Error 1
== END OF TEST OUPTUT ==

The make error in the end might be misleading, making people think "stackprofile" test is failing. But it's actually posix_ipc.sh is failing.

If you run the posix_ipc test manually in apparmor-3.0.7/tests/regression/apparmor, it will try to run another posix_mq.sh script, which will fail with:
  Fatal Error (posix_mq_rcv): Unable to run test sub-executable

Related branches

Revision history for this message
Po-Hsu Lin (cypressyew) wrote :

Add "set -x" to posix_mq.sh script will give us some clue about this failure:

+ do_tests 'unconfined root' pass pass pass pass
+ prefix='unconfined root'
+ expect_send=pass
+ expect_recv=pass
+ expect_open=pass
+ all_args=("$@")
+ rest_args=("${all_args[@]:5}")
+ do_test 'unconfined root' pass /tmp/testlibxbcgpuwp/source/kinetic/apparmor-3.0.7/tests/regression/apparmor/posix_mq_snd pass -c /tmp/testlibxbcgpuwp/source/kinetic/apparmor-3.0.7/tests/regression/apparmor/posix_mq_snd -k /queuename
+ local 'desc=POSIX MQUEUE (unconfined root)'
+ shift
+ runchecktest 'POSIX MQUEUE (unconfined root)' pass /tmp/testlibxbcgpuwp/source/kinetic/apparmor-3.0.7/tests/regression/apparmor/posix_mq_snd pass -c /tmp/testlibxbcgpuwp/source/kinetic/apparmor-3.0.7/tests/regression/apparmor/posix_mq_snd -k /queuename
+ '[' -z '' ']'
+ trap error_handler ERR
+ runtestfg 'POSIX MQUEUE (unconfined root)' pass /tmp/testlibxbcgpuwp/source/kinetic/apparmor-3.0.7/tests/regression/apparmor/posix_mq_snd pass -c /tmp/testlibxbcgpuwp/source/kinetic/apparmor-3.0.7/tests/regression/apparmor/posix_mq_snd -k /queuename
+ _testdesc='POSIX MQUEUE (unconfined root)'
+ '[' p == x ']'
+ _pfmode=pass
+ _known=
+ shift 2
+ genrunscript /tmp/testlibxbcgpuwp/source/kinetic/apparmor-3.0.7/tests/regression/apparmor/posix_mq_snd pass -c /tmp/testlibxbcgpuwp/source/kinetic/apparmor-3.0.7/tests/regression/apparmor/posix_mq_snd -k /queuename
+ local runfile
+ '[' false = true ']'
+ _pid=383471
+ wait 383471
+ /tmp/testlibxbcgpuwp/source/kinetic/apparmor-3.0.7/tests/regression/apparmor/posix_mq_rcv /tmp/testlibxbcgpuwp/source/kinetic/apparmor-3.0.7/tests/regression/apparmor/posix_mq_snd pass -c /tmp/testlibxbcgpuwp/source/kinetic/apparmor-3.0.7/tests/regression/apparmor/posix_mq_snd -k /queuename
+ test_rc=1
+ '[' 1 -gt 128 ']'
+ checktestfg
+ local ret expectedsig killedsig
++ cat /tmp/sdtest.383410-8658-VS6Rmq/output.posix_mq_rcv
+ ret='Unrecognized option

Usage: /tmp/testlibxbcgpuwp/source/kinetic/apparmor-3.0.7/tests/regression/apparmor/posix_mq_rcv [options]
Options are:
-n get notified if there'\''s an item in the queue
          available options are: mq_notify, select, poll and epoll
-k message queue name (default is /testmq)
-c path of the client binary
-u run test as specified UID
-t timeout in seconds'

It's the posix_mq_rcv binary in command:
/tmp/testlibxbcgpuwp/source/kinetic/apparmor-3.0.7/tests/regression/apparmor/posix_mq_rcv /tmp/testlibxbcgpuwp/source/kinetic/apparmor-3.0.7/tests/regression/apparmor/posix_mq_snd pass -c /tmp/testlibxbcgpuwp/source/kinetic/apparmor-3.0.7/tests/regression/apparmor/posix_mq_snd -k /queuename

Complaining "Unrecognized option" here.
It's unclear why this issue is only affecting Kinetic arm64 for the moment.

tags: added: sru-20221114 ubuntu-qrt-apparmor
description: updated
Revision history for this message
Po-Hsu Lin (cypressyew) wrote :

This issue can be found on other non-x64 instances, like Power9 and s390x.

tags: added: arm64 ppc64el s390x
Revision history for this message
Georgia Garcia (georgiag) wrote :

Thanks for reporting this issue. I created a MR upstream to fix it https://gitlab.com/apparmor/apparmor/-/merge_requests/962

Revision history for this message
Steve Beattie (sbeattie) wrote :

This has been fixed in the regression tests in the upstream AppArmor project, and that patch has been incorporated into the lp:qa-regression-testing script for apparmor (thanks Georgia!), so tests for the kernel should not fail in this way now.

Revision history for this message
Po-Hsu Lin (cypressyew) wrote :

I can confirm this has passed with K-aws 5.19.0-1016.17 ARM64
Thanks!

Changed in qa-regression-testing:
status: New → Fix Released
Revision history for this message
Po-Hsu Lin (cypressyew) wrote :

Test re-triggered and passed, hints removed.
Closing this bug.

Changed in ubuntu-kernel-tests:
status: New → Fix Released
Changed in apparmor (Ubuntu):
status: New → Fix Released
Changed in apparmor (Ubuntu Kinetic):
status: New → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.