[Bug 1830226] Please test proposed package

Robie Basak 1830226 at bugs.launchpad.net
Wed Jul 10 22:20:06 UTC 2019


Hello Andrea, or anyone else affected,

Accepted systemtap into xenial-proposed. The package will build now and
be available at
https://launchpad.net/ubuntu/+source/systemtap/2.9-2ubuntu2.1 in a few
hours, and then in the -proposed repository.

Please help us by testing this new package.  See
https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how
to enable and use -proposed.Your feedback will aid us getting this
update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug,
mentioning the version of the package you tested and change the tag from
verification-needed-xenial to verification-done-xenial. If it does not
fix the bug for you, please add a comment stating that, and change the
tag to verification-failed-xenial. In either case, details of your
testing will help us make a better decision.

Further information regarding the verification process can be found at
https://wiki.ubuntu.com/QATeam/PerformingSRUVerification .  Thank you in
advance!

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to systemtap in Ubuntu.
https://bugs.launchpad.net/bugs/1830226

Title:
  systemtap currently broken in xenial

Status in systemtap package in Ubuntu:
  Confirmed
Status in systemtap source package in Xenial:
  Fix Committed

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 at 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 at ubuntu:~$ uname -r
  4.4.0-148-generic

  ubuntu at 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 at ubuntu:~$ cat hello.stp
  #!/usr/bin/env stap
  probe oneshot { println("hello world") }

  ubuntu at 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



More information about the foundations-bugs mailing list