group.of.nepali.translators team mailing list archive
-
group.of.nepali.translators team
-
Mailing list archive
-
Message #39478
[Bug 1830226] Re: systemtap currently broken in xenial
The version of systemtap in the proposed pocket of Xenial that was
purported to fix this bug report has been removed because the bugs that
were to be fixed by the upload were not verified in a timely (105 days)
fashion.
** Tags removed: verification-needed-xenial
** Changed in: systemtap (Ubuntu Xenial)
Status: Fix Committed => Won't Fix
--
You received this bug notification because you are a member of नेपाली
भाषा समायोजकहरुको समूह, which is subscribed to Xenial.
Matching subscriptions: Ubuntu 16.04 Bugs
https://bugs.launchpad.net/bugs/1830226
Title:
systemtap currently broken in xenial
Status in systemtap package in Ubuntu:
Fix Released
Status in systemtap source package in Xenial:
Won't Fix
Bug description:
[Impact]
Kernel commit 768ae309a96103ed02eb1e111e838c87854d8b51 changed the
prototype of get_user_pages() removing 'write' and 'force' arguments,
merging them into 'gup_flags'.
This breaks systemtap that makes use of get_user_pages() in its kernel
runtime interface.
Fix the usage of get_user_pages() checking if it requires the old or
the new signature.
[Test Case]
ubuntu@ubuntu:~$ cat hello.stp
#!/usr/bin/env stap
probe oneshot { println("hello world") }
[Regression Potential]
A similar change is already present in bionic+. This is a backported
change for xenial. Moreover the fix adds a runtime check (done every
time a stap script is executed) to verify if the running kernel is
using the old or the new signature of get_user_pages(), so this change
does not break the old stap scripts. Therefore regression potential is
minimal.
[Original bug report]
Running a simple systemtap hello world example on a fresh installed
Xenial VM produces the following errors:
ubuntu@ubuntu:~$ uname -r
4.4.0-148-generic
ubuntu@ubuntu:~$ dpkg -l | grep systemtap
ii systemtap 2.9-2ubuntu2 amd64 instrumentation system for Linux
ii systemtap-common 2.9-2ubuntu2 all instrumentation system for Linux (common component)
ii systemtap-runtime 2.9-2ubuntu2 amd64 instrumentation system for Linux (runtime component)
ubuntu@ubuntu:~$ cat hello.stp
#!/usr/bin/env stap
probe oneshot { println("hello world") }
ubuntu@ubuntu:~$ sudo ./hello.stp
In file included from /usr/share/systemtap/runtime/linux/runtime.h:204:0,
from /usr/share/systemtap/runtime/runtime.h:24,
from /tmp/stapCrPm1y/stap_9bc2f1adeaead87a69b1ab80b0f14480_967_src.c:25:
/usr/share/systemtap/runtime/linux/access_process_vm.h: In function ‘__access_process_vm_’:
/usr/share/systemtap/runtime/linux/access_process_vm.h:35:54: error: passing argument 6 of ‘get_user_pages’ makes pointer from integer without a cast [-Werror=int-conversion]
ret = get_user_pages (tsk, mm, addr, 1, write, 1, &page, &vma);
^
In file included from include/linux/pid_namespace.h:6:0,
from include/linux/ptrace.h:8,
from include/linux/ftrace.h:13,
from include/linux/kprobes.h:42,
from /usr/share/systemtap/runtime/linux/runtime.h:21,
from /usr/share/systemtap/runtime/runtime.h:24,
from /tmp/stapCrPm1y/stap_9bc2f1adeaead87a69b1ab80b0f14480_967_src.c:25:
include/linux/mm.h:1222:6: note: expected ‘struct page **’ but argument is of type ‘int’
long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
^
In file included from /usr/share/systemtap/runtime/linux/runtime.h:204:0,
from /usr/share/systemtap/runtime/runtime.h:24,
from /tmp/stapCrPm1y/stap_9bc2f1adeaead87a69b1ab80b0f14480_967_src.c:25:
/usr/share/systemtap/runtime/linux/access_process_vm.h:35:57: error: passing argument 7 of ‘get_user_pages’ from incompatible pointer type [-Werror=incompatible-pointer-types]
ret = get_user_pages (tsk, mm, addr, 1, write, 1, &page, &vma);
^
In file included from include/linux/pid_namespace.h:6:0,
from include/linux/ptrace.h:8,
from include/linux/ftrace.h:13,
from include/linux/kprobes.h:42,
from /usr/share/systemtap/runtime/linux/runtime.h:21,
from /usr/share/systemtap/runtime/runtime.h:24,
from /tmp/stapCrPm1y/stap_9bc2f1adeaead87a69b1ab80b0f14480_967_src.c:25:
include/linux/mm.h:1222:6: note: expected ‘struct vm_area_struct **’ but argument is of type ‘struct page **’
long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
^
In file included from /usr/share/systemtap/runtime/linux/runtime.h:204:0,
from /usr/share/systemtap/runtime/runtime.h:24,
from /tmp/stapCrPm1y/stap_9bc2f1adeaead87a69b1ab80b0f14480_967_src.c:25:
/usr/share/systemtap/runtime/linux/access_process_vm.h:35:13: error: too many arguments to function ‘get_user_pages’
ret = get_user_pages (tsk, mm, addr, 1, write, 1, &page, &vma);
^
In file included from include/linux/pid_namespace.h:6:0,
from include/linux/ptrace.h:8,
from include/linux/ftrace.h:13,
from include/linux/kprobes.h:42,
from /usr/share/systemtap/runtime/linux/runtime.h:21,
from /usr/share/systemtap/runtime/runtime.h:24,
from /tmp/stapCrPm1y/stap_9bc2f1adeaead87a69b1ab80b0f14480_967_src.c:25:
include/linux/mm.h:1222:6: note: declared here
long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
^
cc1: all warnings being treated as errors
scripts/Makefile.build:285: recipe for target '/tmp/stapCrPm1y/stap_9bc2f1adeaead87a69b1ab80b0f14480_967_src.o' failed
make[1]: *** [/tmp/stapCrPm1y/stap_9bc2f1adeaead87a69b1ab80b0f14480_967_src.o] Error 1
Makefile:1454: recipe for target '_module_/tmp/stapCrPm1y' failed
make: *** [_module_/tmp/stapCrPm1y] Error 2
WARNING: kbuild exited with status: 2
Pass 4: compilation failed. [man error::pass4]
Tip: /usr/share/doc/systemtap/README.Debian should help you get started.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemtap/+bug/1830226/+subscriptions