Comment 0 for bug 2004644

Revision history for this message
Roxana Nicolescu (roxanan) wrote : ubuntu_lttng_smoke_test failed with wrong jbd format on 5.4.0-143.160

[SRU Justification]

Impact: Upstream stable added a change in the format of jbd2 in 5.4.229.
This is incompatible with the current changes in the lttng-module.

Fix: Picking 4 patches from upstream lttng-modules which handle the changed interface as well as add the required code to enable that change for other versions as well:
LTTNG_KERNEL_RANGE(5,4,229, 5,5,0)
LTTNG_KERNEL_RANGE(5,10,163, 5,11,0)
LTTNG_KERNEL_RANGE(5,15,87, 5,16,0)
LTTNG_KERNEL_RANGE(6,0,18, 6,1,0)
LTTNG_KERNEL_RANGE(6,1,4, 6,2,0)

Tescase: lttng-smoke-test fail to compile with the error from below

Regression potential: We may notice regressions with lttng-modules on kernels < 5.4.229

760 21:14:39 DEBUG| [stdout] In file included from /var/lib/dkms/lttng-modules/2.12.5/build/probes/../probes/define_trace.h:87,
      761 21:14:39 DEBUG| [stdout] from /var/lib/dkms/lttng-modules/2.12.5/build/probes/../instrumentation/events/lttng-module/jbd2.h:177,
      762 21:14:39 DEBUG| [stdout] from /var/lib/dkms/lttng-modules/2.12.5/build/probes/lttng-probe-jbd2.c:29:
      763 21:14:39 DEBUG| [stdout] /var/lib/dkms/lttng-modules/2.12.5/build/probes/../probes/lttng-tracepoint-event-impl.h:131:6: error: conflicting types for ‘trace_jbd2_run_stats’
      764 21:14:39 DEBUG| [stdout] 131 | void trace_##_name(_proto);
      765 21:14:39 DEBUG| [stdout] | ^~~~~~
      766 21:14:39 DEBUG| [stdout] /var/lib/dkms/lttng-modules/2.12.5/build/probes/../probes/lttng-tracepoint-event-impl.h:43:2: note: in expansion of macro ‘LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP’
      767 21:14:39 DEBUG| [stdout] 43 | LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(map, name, map, PARAMS(proto), PARAMS(args))
      768 21:14:39 DEBUG| [stdout] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      769 21:14:39 DEBUG| [stdout] /var/lib/dkms/lttng-modules/2.12.5/build/probes/../probes/lttng-tracepoint-event-impl.h:85:2: note: in expansion of macro ‘LTTNG_TRACEPOINT_EVENT_MAP’
      770 21:14:39 DEBUG| [stdout] 85 | LTTNG_TRACEPOINT_EVENT_MAP(name, name, \
      771 21:14:39 DEBUG| [stdout] | ^~~~~~~~~~~~~~~~~~~~~~~~~~
      772 21:14:39 DEBUG| [stdout] /var/lib/dkms/lttng-modules/2.12.5/build/probes/../instrumentation/events/lttng-module/jbd2.h:104:1: note: in expansion of macro ‘LTTNG_TRACEPOINT_EVENT’
      773 21:14:39 DEBUG| [stdout] 104 | LTTNG_TRACEPOINT_EVENT(jbd2_run_stats,
      774 21:14:39 DEBUG| [stdout] | ^~~~~~~~~~~~~~~~~~~~~~
      775 21:14:39 DEBUG| [stdout] In file included from ./include/trace/events/jbd2.h:9,
      776 21:14:39 DEBUG| [stdout] from /var/lib/dkms/lttng-modules/2.12.5/build/probes/lttng-probe-jbd2.c:18:
      777 21:14:39 DEBUG| [stdout] ./include/linux/tracepoint.h:243:21: note: previous definition of ‘trace_jbd2_run_stats’ was here
      778 21:14:39 DEBUG| [stdout] 243 | static inline void trace_##name(proto) \
      779 21:14:39 DEBUG| [stdout] | ^~~~~~
      780 21:14:39 DEBUG| [stdout] ./include/linux/tracepoint.h:406:2: note: in expansion of macro ‘__DECLARE_TRACE’
      781 21:14:39 DEBUG| [stdout] 406 | __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \
      782 21:14:39 DEBUG| [stdout] | ^~~~~~~~~~~~~~~
      783 21:14:39 DEBUG| [stdout] ./include/linux/tracepoint.h:542:2: note: in expansion of macro ‘DECLARE_TRACE’
      784 21:14:39 DEBUG| [stdout] 542 | DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
      785 21:14:39 DEBUG| [stdout] | ^~~~~~~~~~~~~
      786 21:14:39 DEBUG| [stdout] ./include/trace/events/jbd2.h:234:1: note: in expansion of macro ‘TRACE_EVENT’
      787 21:14:39 DEBUG| [stdout] 234 | TRACE_EVENT(jbd2_run_stats,
      788 21:14:39 DEBUG| [stdout] | ^~~~~~~~~~~
      789 21:14:39 DEBUG| [stdout] In file included from /var/lib/dkms/lttng-modules/2.12.5/build/probes/../probes/define_trace.h:87,
      790 21:14:39 DEBUG| [stdout] from /var/lib/dkms/lttng-modules/2.12.5/build/probes/../instrumentation/events/lttng-module/jbd2.h:177,
      791 21:14:39 DEBUG| [stdout] from /var/lib/dkms/lttng-modules/2.12.5/build/probes/lttng-probe-jbd2.c:29:
      792 21:14:39 DEBUG| [stdout] /var/lib/dkms/lttng-modules/2.12.5/build/probes/../probes/lttng-tracepoint-event-impl.h:131:6: error: conflicting types for ‘trace_jbd2_checkpoint_stats’
      793 21:14:39 DEBUG| [stdout] 131 | void trace_##_name(_proto);
      794 21:14:39 DEBUG| [stdout] | ^~~~~~
      795 21:14:39 DEBUG| [stdout] /var/lib/dkms/lttng-modules/2.12.5/build/probes/../probes/lttng-tracepoint-event-impl.h:43:2: note: in expansion of macro ‘LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP’
      796 21:14:39 DEBUG| [stdout] 43 | LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(map, name, map, PARAMS(proto), PARAMS(args))
      797 21:14:39 DEBUG| [stdout] | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      798 21:14:39 DEBUG| [stdout] /var/lib/dkms/lttng-modules/2.12.5/build/probes/../probes/lttng-tracepoint-event-impl.h:85:2: note: in expansion of macro ‘LTTNG_TRACEPOINT_EVENT_MAP’
      799 21:14:39 DEBUG| [stdout] 85 | LTTNG_TRACEPOINT_EVENT_MAP(name, name, \
      800 21:14:39 DEBUG| [stdout] | ^~~~~~~~~~~~~~~~~~~~~~~~~~
      801 21:14:39 DEBUG| [stdout] /var/lib/dkms/lttng-modules/2.12.5/build/probes/../instrumentation/events/lttng-module/jbd2.h:124:1: note: in expansion of macro ‘LTTNG_TRACEPOINT_EVENT’
      802 21:14:39 DEBUG| [stdout] 124 | LTTNG_TRACEPOINT_EVENT(jbd2_checkpoint_stats,
      803 21:14:39 DEBUG| [stdout] | ^~~~~~~~~~~~~~~~~~~~~~
      804 21:14:39 DEBUG| [stdout] In file included from ./include/trace/events/jbd2.h:9,
      805 21:14:39 DEBUG| [stdout] from /var/lib/dkms/lttng-modules/2.12.5/build/probes/lttng-probe-jbd2.c:18:
      806 21:14:39 DEBUG| [stdout] ./include/linux/tracepoint.h:243:21: note: previous definition of ‘trace_jbd2_checkpoint_stats’ was here
      807 21:14:39 DEBUG| [stdout] 243 | static inline void trace_##name(proto) \
      808 21:14:39 DEBUG| [stdout] | ^~~~~~
      809 21:14:39 DEBUG| [stdout] ./include/linux/tracepoint.h:406:2: note: in expansion of macro ‘__DECLARE_TRACE’
      810 21:14:39 DEBUG| [stdout] 406 | __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \
      811 21:14:39 DEBUG| [stdout] | ^~~~~~~~~~~~~~~
      812 21:14:39 DEBUG| [stdout] ./include/linux/tracepoint.h:542:2: note: in expansion of macro ‘DECLARE_TRACE’
      813 21:14:39 DEBUG| [stdout] 542 | DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
      814 21:14:39 DEBUG| [stdout] | ^~~~~~~~~~~~~
      815 21:14:39 DEBUG| [stdout] ./include/trace/events/jbd2.h:282:1: note: in expansion of macro ‘TRACE_EVENT’
      816 21:14:39 DEBUG| [stdout] 282 | TRACE_EVENT(jbd2_checkpoint_stats,
      817 21:14:39 DEBUG| [stdout] | ^~~~~~~~~~~
      818 21:14:39 DEBUG| [stdout] make[2]: *** [scripts/Makefile.build:270: /var/lib/dkms/lttng-modules/2.12.5/build/probes/lttng-probe-jbd2.o] Error 1
      819 21:14:39 DEBUG| [stdout] make[1]: *** [scripts/Makefile.build:519: /var/lib/dkms/lttng-modules/2.12.5/build/probes] Error 2
      820 21:14:39 DEBUG| [stdout] make: *** [Makefile:1767: /var/lib/dkms/lttng-modules/2.12.5/build] Error 2
      821 21:14:39 DEBUG| [stdout] make: Leaving directory '/usr/src/linux-headers-5.4.0-143-generic'
      822 21:14:39 ERROR| Exception escaping from test:
      823 Traceback (most recent call last):
      824 File "/home/ubuntu/autotest/client/shared/test.py", line 378, in _exec
      825 _cherry_pick_call(self.initialize, *args, **dargs)
      826 File "/home/ubuntu/autotest/client/shared/test.py", line 738, in _cherry_pick_call
      827 return func(*p_args, **p_dargs)
      828 File "/home/ubuntu/autotest/client/tests/ubuntu_lttng_smoke_test/ubuntu_lttng_smoke_test.py", line 58, in initialize
      829 raise error.TestError('DKMS failed to install')