2019-05-17 15:33:31

by Miroslav Benes

[permalink] [raw]
Subject: livepatching selftests failure on current master branch

Hi,

I noticed that livepatching selftests fail on our master branch
(https://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching.git/).

...
TEST: busy target module ... not ok

--- expected
+++ result
@@ -7,16 +7,24 @@ livepatch: 'test_klp_callbacks_demo': in
test_klp_callbacks_demo: pre_patch_callback: vmlinux
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': starting patching transition
+livepatch: 'test_klp_callbacks_demo': completing patching transition
+test_klp_callbacks_demo: post_patch_callback: vmlinux
+test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
+livepatch: 'test_klp_callbacks_demo': patching complete
% modprobe test_klp_callbacks_mod
livepatch: applying patch 'test_klp_callbacks_demo' to loading module
'test_klp_callbacks_mod'
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
+test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
test_klp_callbacks_mod: test_klp_callbacks_mod_init
% rmmod test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_exit
+test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module
'test_klp_callbacks_mod'
test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
-livepatch: 'test_klp_callbacks_demo': reversing transition from patching to unpatching
+livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
+test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
+test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux

ERROR: livepatch kselftest(s) failed
not ok 1..2 selftests: livepatch: test-callbacks.sh [FAIL]

which probably means that the consistency model is not in the best shape.
There were not many livepatch changes in the latest pull request. Stack
unwinder changes may be connected, so adding Thomas to be aware if it
leads in this direction.

Unfortunately, I'm leaving in a minute and will be gone till Wednesday, so
if someone confirms and wants to investigate, definitely feel free to do
it.

Miroslav


2019-05-17 15:52:43

by Joe Lawrence

[permalink] [raw]
Subject: Re: livepatching selftests failure on current master branch

On 5/17/19 10:17 AM, Miroslav Benes wrote:
> Hi,
>
> I noticed that livepatching selftests fail on our master branch
> (https://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching.git/).
>
> ...
> TEST: busy target module ... not ok
>
> --- expected
> +++ result
> @@ -7,16 +7,24 @@ livepatch: 'test_klp_callbacks_demo': in
> test_klp_callbacks_demo: pre_patch_callback: vmlinux
> test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
> livepatch: 'test_klp_callbacks_demo': starting patching transition
> +livepatch: 'test_klp_callbacks_demo': completing patching transition
> +test_klp_callbacks_demo: post_patch_callback: vmlinux
> +test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
> +livepatch: 'test_klp_callbacks_demo': patching complete
> % modprobe test_klp_callbacks_mod
> livepatch: applying patch 'test_klp_callbacks_demo' to loading module
> 'test_klp_callbacks_mod'
> test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
> +test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
> test_klp_callbacks_mod: test_klp_callbacks_mod_init
> % rmmod test_klp_callbacks_mod
> test_klp_callbacks_mod: test_klp_callbacks_mod_exit
> +test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
> livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module
> 'test_klp_callbacks_mod'
> test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
> % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
> -livepatch: 'test_klp_callbacks_demo': reversing transition from patching to unpatching
> +livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
> +test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
> +test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
> livepatch: 'test_klp_callbacks_demo': starting unpatching transition
> livepatch: 'test_klp_callbacks_demo': completing unpatching transition
> test_klp_callbacks_demo: post_unpatch_callback: vmlinux
>
> ERROR: livepatch kselftest(s) failed
> not ok 1..2 selftests: livepatch: test-callbacks.sh [FAIL]
>
> which probably means that the consistency model is not in the best shape.
> There were not many livepatch changes in the latest pull request. Stack
> unwinder changes may be connected, so adding Thomas to be aware if it
> leads in this direction.
>
> Unfortunately, I'm leaving in a minute and will be gone till Wednesday, so
> if someone confirms and wants to investigate, definitely feel free to do
> it.
>

I will take a look today. Thanks for reporting. I hope it's something
silly in the tests not the consistency model ...

-- Joe