2022-09-09 03:01:58

by Zhou, Jie2X

[permalink] [raw]
Subject: make run_tests -C proc: proc-pid-vm assertion failed.

hi,

The test error is caused by g_vsyscall set failed.

Error output:
selftests: proc: proc-pid-vm
proc-pid-vm: proc-pid-vm.c:389: main: Assertion `rv == len' failed.
Aborted

g_vsyscall is set to 0.
In proc-pid-vm.c:
/*
* 0: vsyscall VMA doesn't exist vsyscall=none
* 1: vsyscall VMA is r-xp vsyscall=emulate
* 2: vsyscall VMA is --xp vsyscall=xonly
*/
static int g_vsyscall;
static const char *str_vsyscall;

static const char str_vsyscall_0[] = "";
static const char str_vsyscall_1[] =
"ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]\n";
static const char str_vsyscall_2[] =
"ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall]\n";

The /proc/%u/maps output is:
buf=100000000-100001000 r-xp 00000000 00:2d 2 /tmp/#2 (deleted)
ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall]

So the g_vsyscall should be 2 according to commentary(2: vsyscall VMA is --xp).
Is it a bug?

best regards,


2022-09-09 05:26:44

by Alexey Dobriyan

[permalink] [raw]
Subject: Re: make run_tests -C proc: proc-pid-vm assertion failed.

On Fri, Sep 09, 2022 at 10:19:16AM +0800, Jie2x Zhou wrote:
> hi,
>
> The test error is caused by g_vsyscall set failed.


> Error output:
> selftests: proc: proc-pid-vm
> proc-pid-vm: proc-pid-vm.c:389: main: Assertion `rv == len' failed.
> Aborted
>
> g_vsyscall is set to 0.
> In proc-pid-vm.c:
> /*
> * 0: vsyscall VMA doesn't exist vsyscall=none
> * 1: vsyscall VMA is r-xp vsyscall=emulate
> * 2: vsyscall VMA is --xp vsyscall=xonly
> */
> static int g_vsyscall;
> static const char *str_vsyscall;
>
> static const char str_vsyscall_0[] = "";
> static const char str_vsyscall_1[] =
> "ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]\n";
> static const char str_vsyscall_2[] =
> "ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall]\n";
>
> The /proc/%u/maps output is:
> buf=100000000-100001000 r-xp 00000000 00:2d 2 /tmp/#2 (deleted)
> ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall]
>
> So the g_vsyscall should be 2 according to commentary(2: vsyscall VMA is --xp).
> Is it a bug?

Can't reproduce. Please, post "strace -f ./proc-pid-vm".

2022-09-13 05:16:58

by Zhou, Jie2X

[permalink] [raw]
Subject: Re: make run_tests -C proc: proc-pid-vm assertion failed.

hi,

>Can't reproduce. Please, post "strace -f ./proc-pid-vm".
test in "Debian GNU/Linux bookworm/sid"
And the strace output is attached.

best regards,

________________________________________
From: Alexey Dobriyan <[email protected]>
Sent: Friday, September 9, 2022 1:20 PM
To: Zhou, Jie2X
Cc: [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; Li, Philip
Subject: Re: make run_tests -C proc: proc-pid-vm assertion failed.

On Fri, Sep 09, 2022 at 10:19:16AM +0800, Jie2x Zhou wrote:
> hi,
>
> The test error is caused by g_vsyscall set failed.


> Error output:
> selftests: proc: proc-pid-vm
> proc-pid-vm: proc-pid-vm.c:389: main: Assertion `rv == len' failed.
> Aborted
>
> g_vsyscall is set to 0.
> In proc-pid-vm.c:
> /*
> * 0: vsyscall VMA doesn't exist vsyscall=none
> * 1: vsyscall VMA is r-xp vsyscall=emulate
> * 2: vsyscall VMA is --xp vsyscall=xonly
> */
> static int g_vsyscall;
> static const char *str_vsyscall;
>
> static const char str_vsyscall_0[] = "";
> static const char str_vsyscall_1[] =
> "ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]\n";
> static const char str_vsyscall_2[] =
> "ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall]\n";
>
> The /proc/%u/maps output is:
> buf=100000000-100001000 r-xp 00000000 00:2d 2 /tmp/#2 (deleted)
> ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall]
>
> So the g_vsyscall should be 2 according to commentary(2: vsyscall VMA is --xp).
> Is it a bug?

Can't reproduce. Please, post "strace -f ./proc-pid-vm".


Attachments:
proc-pid-vm.strace.txt (5.42 kB)
proc-pid-vm.strace.txt