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

_______________________________________________
Mailing list: https://launchpad.net/~group.of.nepali.translators
Post to     : group.of.nepali.translators@lists.launchpad.net
Unsubscribe : https://launchpad.net/~group.of.nepali.translators
More help   : https://help.launchpad.net/ListHelp

Reply via email to