I went through a few dozens of koopses in FAF and did not find anything else that is not on the blacklist already.
Closes #102.
Signed-off-by: Martin Milata mmilata@redhat.com --- lib/koops_stacktrace.c | 4 ++++ tests/kerneloopses/gh-102 | 25 +++++++++++++++++++++++++ tests/koops_stacktrace.at | 45 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+) create mode 100644 tests/kerneloopses/gh-102
diff --git a/lib/koops_stacktrace.c b/lib/koops_stacktrace.c index 6aae938..559e1c7 100644 --- a/lib/koops_stacktrace.c +++ b/lib/koops_stacktrace.c @@ -345,6 +345,10 @@ module_list_continues(const char *input) if (sr_skip_string(&input, "CPU ") && sr_skip_char_span(&input, "0123456789")) return false;
+ /* See https://github.com/abrt/satyr/issues/102 */ + if (sr_skip_string(&input, "CPU: ")) + return false; + /* Other conditions may need to be added */
return true; diff --git a/tests/kerneloopses/gh-102 b/tests/kerneloopses/gh-102 new file mode 100644 index 0000000..a26e6a5 --- /dev/null +++ b/tests/kerneloopses/gh-102 @@ -0,0 +1,25 @@ +WARNING: at include/linux/mm.h:283 putback_inactive_pages+0x2cc/0x360() +Modules linked in: vboxpci(OF) vboxnetadp(OF) vboxnetflt(OF) vboxdrv(OF) fuse ebtable_nat ipt_MASQUERADE nf_conntrack_netbios_ns nf_conntrack_broadcast bnep bluetooth rfkill ip6table_mangle ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 iptable_nat nf_nat_ipv4 nf_nat iptable_mangle nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack ebtable_filter ebtables ip6table_filter ip6_tables be2iscsi iscsi_boot_sysfs bnx2i cnic uio cxgb4i cxgb4 cxgb3i cxgb3 mdio libcxgbi ib_iser rdma_cm ib_addr iw_cm ib_cm ib_sa ib_mad ib_core iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi snd_hda_codec_hdmi snd_usb_audio snd_hda_codec_realtek snd_usbmidi_lib snd_hda_intel snd_hda_codec uvcvideo snd_rawmidi snd_hwdep snd_seq snd_seq_device snd_pcm snd_page_alloc snd_timer iTCO_wdt videobuf2_vmalloc videobuf2_memops fglrx(POF) acpi_cpufreq mperf coretemp videobuf2_core videodev joydev iTCO_vendor_support snd ppdev hid_logitech_dj i2c_i801 media i2c_core lpc_ich mfd_core parport_pc parport ! amd_iommu_v2 microcode serio_raw soundcore vhost_net tun macvtap macvlan kvm_intel kvm binfmt_misc uinput ata_generic pata_acpi r8169 mii pata_jmicron sunrpc +CPU: 1 PID: 42 Comm: kswapd0 Tainted: PF B WC O 3.10.4-100.fc18.x86_64 #1 +Hardware name: Gigabyte Technology Co., Ltd. EP45-UD3L/EP45-UD3L, BIOS F4 02/24/2009 + 0000000000000009 ffff88022259da58 ffffffff816606a8 ffff88022259da98 + ffffffff8105d660 ffff88022259dba0 ffff880227014410 ffff88022259dba8 + 0000000000000000 ffffea0004018020 0000000000000200 ffff88022259daa8 +Call Trace: + [<ffffffff816606a8>] dump_stack+0x19/0x1b + [<ffffffff8105d660>] warn_slowpath_common+0x70/0xa0 + [<ffffffff8105d6aa>] warn_slowpath_null+0x1a/0x20 + [<ffffffff8114545c>] putback_inactive_pages+0x2cc/0x360 + [<ffffffff8114567b>] shrink_inactive_list+0x18b/0x410 + [<ffffffff81145e91>] shrink_lruvec+0x231/0x4f0 + [<ffffffff8119fdc2>] ? drop_super+0x22/0x30 + [<ffffffff811461b6>] shrink_zone+0x66/0x1a0 + [<ffffffff811474fc>] balance_pgdat+0x48c/0x5c0 + [<ffffffff811477a4>] kswapd+0x174/0x440 + [<ffffffff81083260>] ? wake_up_bit+0x40/0x40 + [<ffffffff81147630>] ? balance_pgdat+0x5c0/0x5c0 + [<ffffffff81082a80>] kthread+0xc0/0xd0 + [<ffffffff81010000>] ? perf_trace_xen_mmu_flush_tlb_others+0xa0/0x110 + [<ffffffff810829c0>] ? kthread_create_on_node+0x120/0x120 + [<ffffffff8166ec6c>] ret_from_fork+0x7c/0xb0 + [<ffffffff810829c0>] ? kthread_create_on_node+0x120/0x120 diff --git a/tests/koops_stacktrace.at b/tests/koops_stacktrace.at index c6e5b20..613a569 100644 --- a/tests/koops_stacktrace.at +++ b/tests/koops_stacktrace.at @@ -726,3 +726,48 @@ main(void) return 0; } ]]) + +## --------------------------------------- ## +## sr_koops_stacktrace_parse_modules_gh102 ## +## --------------------------------------- ## +AT_TESTFUN([sr_koops_stacktrace_parse_modules_gh102], +[[ +#include "stacktrace.h" +#include "koops/stacktrace.h" +#include "location.h" +#include "utils.h" +#include <assert.h> +#include <stdio.h> + +int +main(void) +{ + char *error_message; + char *full_input = sr_file_to_string("../../kerneloopses/gh-102", + &error_message); + + assert(full_input); + char *input = full_input; + + struct sr_location location; + sr_location_init(&location); + struct sr_koops_stacktrace *stacktrace = + sr_koops_stacktrace_parse(&input, &location); + + assert(stacktrace); + assert(*input == '\0'); + free(full_input); + + int module_count = 0; + char **mod = stacktrace->modules; + assert(*mod); + + while (*mod++) + module_count++; + + assert(module_count == 104); + assert(0 == sr_strcmp0(stacktrace->modules[module_count-1], "sunrpc")); + + return 0; +} +]])