2016-02-12 21:33:53 |
Dan Streetman |
bug |
|
|
added bug |
2016-02-17 17:54:41 |
Dan Streetman |
attachment added |
|
debdiff of the required patches, listed above. https://bugs.launchpad.net/ubuntu/+source/systemtap/+bug/1545173/+attachment/4573809/+files/lp1545173.debdiff |
|
2016-02-17 17:56:33 |
Dan Streetman |
systemtap (Ubuntu): assignee |
|
Dan Streetman (ddstreet) |
|
2016-02-17 17:59:55 |
Chris J Arges |
nominated for series |
|
Ubuntu Trusty |
|
2016-02-17 17:59:55 |
Chris J Arges |
bug task added |
|
systemtap (Ubuntu Trusty) |
|
2016-02-17 18:00:06 |
Chris J Arges |
systemtap (Ubuntu Trusty): assignee |
|
Dan Streetman (ddstreet) |
|
2016-02-17 18:00:11 |
Chris J Arges |
systemtap (Ubuntu): status |
New |
Fix Released |
|
2016-02-17 18:00:15 |
Chris J Arges |
systemtap (Ubuntu): assignee |
Dan Streetman (ddstreet) |
|
|
2016-02-19 15:52:58 |
Dan Streetman |
systemtap (Ubuntu Trusty): status |
New |
In Progress |
|
2016-02-19 19:40:49 |
Dan Streetman |
systemtap (Ubuntu): assignee |
|
Dan Streetman (ddstreet) |
|
2016-03-15 11:28:01 |
Dan Streetman |
tags |
sts |
sts sts-sru |
|
2016-03-16 16:39:17 |
Dan Streetman |
description |
Attempting to use systemtap results in:
In file included from /usr/share/systemtap/runtime/linux/task_finder.c:17:0,
from /usr/share/systemtap/runtime/linux/runtime.h:188,
from /usr/share/systemtap/runtime/runtime.h:24,
from /tmp/stapcEoS7h/stap_f4621118dc34d17850373d218d3dab98_4225_src.c:24:
/usr/share/systemtap/runtime/linux/task_finder2.c: In function ‘__stp_call_mmap_callbacks_with_addr’:
/usr/share/systemtap/runtime/linux/task_finder2.c:703:24: error: ‘struct file’ has no member named ‘f_dentry’
dentry = vma->vm_file->f_dentry;
^
/usr/share/systemtap/runtime/linux/task_finder2.c: In function ‘__stp_utrace_attach_match_filename’:
/usr/share/systemtap/runtime/linux/task_finder2.c:821:11: error: incompatible types when assigning to type ‘uid_t’ from type ‘kuid_t’
tsk_euid = task_euid(tsk);
^
/usr/share/systemtap/runtime/linux/task_finder2.c: In function ‘__stp_call_mmap_callbacks_for_task’:
/usr/share/systemtap/runtime/linux/task_finder2.c:1206:42: error: ‘struct file’ has no member named ‘f_dentry’
vma_cache_p->dentry = vma->vm_file->f_dentry;
^
/usr/share/systemtap/runtime/linux/task_finder2.c: In function ‘stap_start_task_finder’:
/usr/share/systemtap/runtime/linux/task_finder2.c:1711:12: error: incompatible types when assigning to type ‘uid_t’ from type ‘kuid_t’
tsk_euid = task_euid(tsk);
^
In file included from /usr/share/systemtap/runtime/linux/runtime.h:194:0,
from /usr/share/systemtap/runtime/runtime.h:24,
from /tmp/stapcEoS7h/stap_f4621118dc34d17850373d218d3dab98_4225_src.c:24:
/usr/share/systemtap/runtime/sym.c: In function ‘_stp_snprint_addr’:
/usr/share/systemtap/runtime/sym.c:567:4: error: implicit declaration of function ‘preempt_enable_no_resched’ [-Werror=implicit-function-declaration]
preempt_enable_no_resched();
^
In file included from include/linux/sched.h:56:0,
from include/linux/ptrace.h:5,
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/stapcEoS7h/stap_f4621118dc34d17850373d218d3dab98_4225_src.c:24:
/usr/share/systemtap/runtime/transport/control.c: In function ‘_stp_ctl_write_cmd’:
include/linux/cred.h:343:25: error: incompatible types when initializing type ‘uid_t’ using type ‘kuid_t’
#define current_euid() (current_cred_xxx(euid))
^
/usr/share/systemtap/runtime/transport/control.c:41:15: note: in expansion of macro ‘current_euid’
uid_t euid = current_euid();
^
In file included from /usr/share/systemtap/runtime/linux/print.c:17:0,
from /usr/share/systemtap/runtime/print.c:17,
from /usr/share/systemtap/runtime/runtime_context.h:22,
from /tmp/stapcEoS7h/stap_f4621118dc34d17850373d218d3dab98_4225_src.c:67:
/usr/share/systemtap/runtime/transport/transport.c: In function ‘_stp_transport_init’:
/usr/share/systemtap/runtime/transport/transport.c:344:11: error: incompatible types when assigning to type ‘uid_t’ from type ‘kuid_t’
_stp_uid = current_uid();
^
/usr/share/systemtap/runtime/transport/transport.c:345:11: error: incompatible types when assigning to type ‘gid_t’ from type ‘kgid_t’
_stp_gid = current_gid();
^
cc1: all warnings being treated as errors
make[1]: *** [/tmp/stapcEoS7h/stap_f4621118dc34d17850373d218d3dab98_4225_src.o] Error 1
make: *** [_module_/tmp/stapcEoS7h] 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.
several upstream patches are required to get systemtap working with the lts kernel. |
[Impact]
Attempting to use systemtap on trusty with the lts-vivid kernel fails with:
In file included from /usr/share/systemtap/runtime/linux/task_finder.c:17:0,
from /usr/share/systemtap/runtime/linux/runtime.h:188,
from /usr/share/systemtap/runtime/runtime.h:24,
from /tmp/stapcEoS7h/stap_f4621118dc34d17850373d218d3dab98_4225_src.c:24:
/usr/share/systemtap/runtime/linux/task_finder2.c: In function ‘__stp_call_mmap_callbacks_with_addr’:
/usr/share/systemtap/runtime/linux/task_finder2.c:703:24: error: ‘struct file’ has no member named ‘f_dentry’
dentry = vma->vm_file->f_dentry;
^
/usr/share/systemtap/runtime/linux/task_finder2.c: In function ‘__stp_utrace_attach_match_filename’:
/usr/share/systemtap/runtime/linux/task_finder2.c:821:11: error: incompatible types when assigning to type ‘uid_t’ from type ‘kuid_t’
tsk_euid = task_euid(tsk);
^
/usr/share/systemtap/runtime/linux/task_finder2.c: In function ‘__stp_call_mmap_callbacks_for_task’:
/usr/share/systemtap/runtime/linux/task_finder2.c:1206:42: error: ‘struct file’ has no member named ‘f_dentry’
vma_cache_p->dentry = vma->vm_file->f_dentry;
^
/usr/share/systemtap/runtime/linux/task_finder2.c: In function ‘stap_start_task_finder’:
/usr/share/systemtap/runtime/linux/task_finder2.c:1711:12: error: incompatible types when assigning to type ‘uid_t’ from type ‘kuid_t’
tsk_euid = task_euid(tsk);
^
In file included from /usr/share/systemtap/runtime/linux/runtime.h:194:0,
from /usr/share/systemtap/runtime/runtime.h:24,
from /tmp/stapcEoS7h/stap_f4621118dc34d17850373d218d3dab98_4225_src.c:24:
/usr/share/systemtap/runtime/sym.c: In function ‘_stp_snprint_addr’:
/usr/share/systemtap/runtime/sym.c:567:4: error: implicit declaration of function ‘preempt_enable_no_resched’ [-Werror=implicit-function-declaration]
preempt_enable_no_resched();
^
In file included from include/linux/sched.h:56:0,
from include/linux/ptrace.h:5,
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/stapcEoS7h/stap_f4621118dc34d17850373d218d3dab98_4225_src.c:24:
/usr/share/systemtap/runtime/transport/control.c: In function ‘_stp_ctl_write_cmd’:
include/linux/cred.h:343:25: error: incompatible types when initializing type ‘uid_t’ using type ‘kuid_t’
#define current_euid() (current_cred_xxx(euid))
^
/usr/share/systemtap/runtime/transport/control.c:41:15: note: in expansion of macro ‘current_euid’
uid_t euid = current_euid();
^
In file included from /usr/share/systemtap/runtime/linux/print.c:17:0,
from /usr/share/systemtap/runtime/print.c:17,
from /usr/share/systemtap/runtime/runtime_context.h:22,
from /tmp/stapcEoS7h/stap_f4621118dc34d17850373d218d3dab98_4225_src.c:67:
/usr/share/systemtap/runtime/transport/transport.c: In function ‘_stp_transport_init’:
/usr/share/systemtap/runtime/transport/transport.c:344:11: error: incompatible types when assigning to type ‘uid_t’ from type ‘kuid_t’
_stp_uid = current_uid();
^
/usr/share/systemtap/runtime/transport/transport.c:345:11: error: incompatible types when assigning to type ‘gid_t’ from type ‘kgid_t’
_stp_gid = current_gid();
^
cc1: all warnings being treated as errors
make[1]: *** [/tmp/stapcEoS7h/stap_f4621118dc34d17850373d218d3dab98_4225_src.o] Error 1
make: *** [_module_/tmp/stapcEoS7h] 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.
[Test Case]
on a trusty system that's running a lts-vivid kernel, with the kernel dbgsym deb installed, simply create a dummy systemtap script and try to run it, e.g.
$ cat test.stap
#!/usr/bin/stap
probe kernel.function("find_module") {
println("hello")
}
$ sudo stap test.stap
the above compliation failure will happen.
[Regression Potential]
As this only changes how systemtap uses the kernel header structures, the most likely regression is systemtap failing to compile on earlier kernels.
I tested on the trusty 3.13 kernel and the updated stap does still compile and run the test case above.
[Other Info]
The commits provided in the debdiff fix systemtap to correctly use the kernel header functions for the newer kernel; they are cherry-picked from upstream systemtap. |
|
2016-03-16 16:46:14 |
Chris J Arges |
systemtap (Ubuntu Trusty): status |
In Progress |
Fix Committed |
|
2016-03-16 16:46:18 |
Chris J Arges |
bug |
|
|
added subscriber Ubuntu Stable Release Updates Team |
2016-03-16 16:46:20 |
Chris J Arges |
bug |
|
|
added subscriber SRU Verification |
2016-03-16 16:46:25 |
Chris J Arges |
tags |
sts sts-sru |
sts sts-sru verification-needed |
|
2016-03-16 17:45:16 |
Dan Streetman |
tags |
sts sts-sru verification-needed |
sts sts-sru verification-done verification-trusty-done verification-vivid-done |
|
2016-03-24 17:32:07 |
Launchpad Janitor |
systemtap (Ubuntu Trusty): status |
Fix Committed |
Fix Released |
|
2016-03-24 17:32:12 |
Brian Murray |
removed subscriber Ubuntu Stable Release Updates Team |
|
|
|
2016-11-09 12:18:24 |
Louis Bouchard |
tags |
sts sts-sru verification-done verification-trusty-done verification-vivid-done |
sts verification-done verification-trusty-done verification-vivid-done |
|