jiffies are unsigned long, so it can be 2^64 long, which is 20 decimal digits
Signed-off-by: Nikola Pajkovsky npajkovs@redhat.com --- examples/oops-with-jiffies.right | 23 +++++++++++++++++++++++ src/plugins/abrt-dump-oops.c | 6 ++++-- 2 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 examples/oops-with-jiffies.right
diff --git a/examples/oops-with-jiffies.right b/examples/oops-with-jiffies.right new file mode 100644 index 0000000..7bcc728 --- /dev/null +++ b/examples/oops-with-jiffies.right @@ -0,0 +1,23 @@ +[178856.137422] WARNING: at /builddir/build/BUILD/kernel-3.2.fc16/compat-wireless-3.3-rc1-2/include/net/mac80211.h:3618 rate_control_send_low+0x23e/0x250 [mac80211]() +[178856.137437] Hardware name: 4177CTO +[178856.137438] Modules linked in: usb_storage tcp_lp ppdev parport_pc lp parport fuse ipt_MASQUERADE iptable_nat nf_nat xt_CHECKSUM be2iscsi iscsi_boot_sysfs bnx2i iptable_mangle cnic uio cxgb4i cxgb4 cxgb3i bridge stp llc libcxgbi cxgb3 mdio ib_iser rdma_cm ib_cm iw_cm ib_sa ib_mad ib_core ib_addr iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi ip6t_REJECT nf_conntrack_ipv4 nf_conntrack_ipv6 nf_defrag_ipv6 nf_defrag_ipv4 xt_state ip6table_filter nf_conntrack ip6_tables sha256_generic dm_crypt snd_hda_codec_hdmi snd_hda_codec_conexant snd_hda_intel snd_hda_codec snd_hwdep arc4 vhost_net macvtap macvlan tun snd_seq snd_seq_device virtio_net snd_pcm kvm_intel snd_timer kvm thinkpad_acpi iwlwifi snd mac80211 e1000e tpm_tis tpm tpm_bios nfsd lockd snd_page_alloc soundcore cfg80211 rfkill nfs_acl auth_rpcgss i2c_i801 sunrpc uinput joydev iTCO_wdt iTCO_vendor_support microcode firewire_ohci firewire_core crc_itu_t sdhci_pci sdhci mmc_core wmi i915 drm_kms_helper drm i2c_alg! o_bit i2 +c_core video [last unloaded: scsi_wait_scan] +[178856.137482] Pid: 22695, comm: ksoftirqd/2 Not tainted 3.2.5-3.fc16.x86_64 #1 +[178856.137484] Call Trace: +[178856.137490] [<ffffffff8106dd4f>] warn_slowpath_common+0x7f/0xc0 +[178856.137493] [<ffffffff8106ddaa>] warn_slowpath_null+0x1a/0x20 +[178856.137500] [<ffffffffa02a344e>] rate_control_send_low+0x23e/0x250 [mac80211] +[178856.137506] [<ffffffffa0336d15>] rs_get_rate+0x65/0x1d0 [iwlwifi] +[178856.137513] [<ffffffffa02a37c6>] rate_control_get_rate+0x96/0x170 [mac80211] +[178856.137522] [<ffffffffa02af59f>] invoke_tx_handlers+0x6ff/0x13e0 [mac80211] +[178856.137528] [<ffffffffa028edac>] ? sta_info_get+0x6c/0x80 [mac80211] +[178856.137536] [<ffffffffa02b03d0>] ieee80211_tx+0x60/0xc0 [mac80211] +[178856.137543] [<ffffffffa02b1352>] ieee80211_tx_pending+0x162/0x270 [mac80211] +[178856.137546] [<ffffffff81074d18>] tasklet_action+0x78/0x140 +[178856.137548] [<ffffffff81075378>] __do_softirq+0xb8/0x230 +[178856.137550] [<ffffffff810755aa>] run_ksoftirqd+0xba/0x170 +[178856.137552] [<ffffffff810754f0>] ? __do_softirq+0x230/0x230 +[178856.137556] [<ffffffff8108fb9c>] kthread+0x8c/0xa0 +[178856.137559] [<ffffffff815eb8f4>] kernel_thread_helper+0x4/0x10 +[178856.137561] [<ffffffff8108fb10>] ? kthread_worker_fn+0x190/0x190 +[178856.137563] [<ffffffff815eb8f0>] ? gs_change+0x13/0x13 diff --git a/src/plugins/abrt-dump-oops.c b/src/plugins/abrt-dump-oops.c index 1722843..006c801 100644 --- a/src/plugins/abrt-dump-oops.c +++ b/src/plugins/abrt-dump-oops.c @@ -148,12 +148,14 @@ static void extract_oopses(GList **oops_list, char *buffer, size_t buflen) linelevel = c[1]; c += 3; } - /* remove jiffies time stamp counter if present */ + /* remove jiffies time stamp counter if present + * jiffies are unsigned long, so it can be 2^64 long, which is + * 20 decimal digits*/ if (*c == '[') { char *c2 = strchr(c, '.'); char *c3 = strchr(c, ']'); - if (c2 && c3 && (c2 < c3) && (c3-c) < 14 && (c2-c) < 8) + if (c2 && c3 && (c2 < c3) && (c3-c) < 21 && (c2-c) < 8) { c = c3 + 1; if (*c == ' ')
On 02/20/2012 02:42 PM, Nikola Pajkovsky wrote:
jiffies are unsigned long, so it can be 2^64 long, which is 20 decimal digits
Signed-off-by: Nikola Pajkovskynpajkovs@redhat.com
examples/oops-with-jiffies.right | 23 +++++++++++++++++++++++ src/plugins/abrt-dump-oops.c | 6 ++++-- 2 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 examples/oops-with-jiffies.right
diff --git a/examples/oops-with-jiffies.right b/examples/oops-with-jiffies.right new file mode 100644 index 0000000..7bcc728 --- /dev/null +++ b/examples/oops-with-jiffies.right @@ -0,0 +1,23 @@ +[178856.137422] WARNING: at /builddir/build/BUILD/kernel-3.2.fc16/compat-wireless-3.3-rc1-2/include/net/mac80211.h:3618 rate_control_send_low+0x23e/0x250 [mac80211]() +[178856.137437] Hardware name: 4177CTO +[178856.137438] Modules linked in: usb_storage tcp_lp ppdev parport_pc lp parport fuse ipt_MASQUERADE iptable_nat nf_nat xt_CHECKSUM be2iscsi iscsi_boot_sysfs bnx2i iptable_mangle cnic uio cxgb4i cxgb4 cxgb3i bridge stp llc libcxgbi cxgb3 mdio ib_iser rdma_cm ib_cm iw_cm ib_sa ib_mad ib_core ib_addr iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi ip6t_REJECT nf_conntrack_ipv4 nf_conntrack_ipv6 nf_defrag_ipv6 nf_defrag_ipv4 xt_state ip6table_filter nf_conntrack ip6_tables sha256_generic dm_crypt snd_hda_codec_hdmi snd_hda_codec_conexant snd_hda_intel snd_hda_codec snd_hwdep arc4 vhost_net macvtap macvlan tun snd_seq snd_seq_device virtio_net snd_pcm kvm_intel snd_timer kvm thinkpad_acpi iwlwifi snd mac80211 e1000e tpm_tis tpm tpm_bios nfsd lockd snd_page_alloc soundcore cfg80211 rfkill nfs_acl auth_rpcgss i2c_i801 sunrpc uinput joydev iTCO_wdt iTCO_vendor_support microcode firewire_ohci firewire_core crc_itu_t sdhci_pci sdhci mmc_core wmi i915 drm_kms_helper drm i2c_a!
lg!
o_bit i2 +c_core video [last unloaded: scsi_wait_scan] +[178856.137482] Pid: 22695, comm: ksoftirqd/2 Not tainted 3.2.5-3.fc16.x86_64 #1 +[178856.137484] Call Trace: +[178856.137490] [<ffffffff8106dd4f>] warn_slowpath_common+0x7f/0xc0 +[178856.137493] [<ffffffff8106ddaa>] warn_slowpath_null+0x1a/0x20 +[178856.137500] [<ffffffffa02a344e>] rate_control_send_low+0x23e/0x250 [mac80211] +[178856.137506] [<ffffffffa0336d15>] rs_get_rate+0x65/0x1d0 [iwlwifi] +[178856.137513] [<ffffffffa02a37c6>] rate_control_get_rate+0x96/0x170 [mac80211] +[178856.137522] [<ffffffffa02af59f>] invoke_tx_handlers+0x6ff/0x13e0 [mac80211] +[178856.137528] [<ffffffffa028edac>] ? sta_info_get+0x6c/0x80 [mac80211] +[178856.137536] [<ffffffffa02b03d0>] ieee80211_tx+0x60/0xc0 [mac80211] +[178856.137543] [<ffffffffa02b1352>] ieee80211_tx_pending+0x162/0x270 [mac80211] +[178856.137546] [<ffffffff81074d18>] tasklet_action+0x78/0x140 +[178856.137548] [<ffffffff81075378>] __do_softirq+0xb8/0x230 +[178856.137550] [<ffffffff810755aa>] run_ksoftirqd+0xba/0x170 +[178856.137552] [<ffffffff810754f0>] ? __do_softirq+0x230/0x230 +[178856.137556] [<ffffffff8108fb9c>] kthread+0x8c/0xa0 +[178856.137559] [<ffffffff815eb8f4>] kernel_thread_helper+0x4/0x10 +[178856.137561] [<ffffffff8108fb10>] ? kthread_worker_fn+0x190/0x190 +[178856.137563] [<ffffffff815eb8f0>] ? gs_change+0x13/0x13 diff --git a/src/plugins/abrt-dump-oops.c b/src/plugins/abrt-dump-oops.c index 1722843..006c801 100644 --- a/src/plugins/abrt-dump-oops.c +++ b/src/plugins/abrt-dump-oops.c @@ -148,12 +148,14 @@ static void extract_oopses(GList **oops_list, char *buffer, size_t buflen) linelevel = c[1]; c += 3; }
/* remove jiffies time stamp counter if present */
/* remove jiffies time stamp counter if present
* jiffies are unsigned long, so it can be 2^64 long, which is
* 20 decimal digits*/ if (*c == '[') { char *c2 = strchr(c, '.'); char *c3 = strchr(c, ']');
if (c2&& c3&& (c2< c3)&& (c3-c)< 14&& (c2-c)< 8)
if (c2&& c3&& (c2< c3)&& (c3-c)< 21&& (c2-c)< 8) { c = c3 + 1; if (*c == ' ')
- the patch looks sane, but I think the test part is not complete - you've provide only *.right file, but our tests needs *.test + *.right and since you're fixing the case with number longer than 14 digits it would make sense to provide the test for it, this test has only 13 digits.
Jirka
Jiri Moskovcak jmoskovc@redhat.com writes:
On 02/20/2012 02:42 PM, Nikola Pajkovsky wrote:
jiffies are unsigned long, so it can be 2^64 long, which is 20 decimal digits
Signed-off-by: Nikola Pajkovskynpajkovs@redhat.com
examples/oops-with-jiffies.right | 23 +++++++++++++++++++++++ src/plugins/abrt-dump-oops.c | 6 ++++-- 2 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 examples/oops-with-jiffies.right
diff --git a/examples/oops-with-jiffies.right b/examples/oops-with-jiffies.right new file mode 100644 index 0000000..7bcc728 --- /dev/null +++ b/examples/oops-with-jiffies.right @@ -0,0 +1,23 @@ +[178856.137422] WARNING: at /builddir/build/BUILD/kernel-3.2.fc16/compat-wireless-3.3-rc1-2/include/net/mac80211.h:3618 rate_control_send_low+0x23e/0x250 [mac80211]() +[178856.137437] Hardware name: 4177CTO +[178856.137438] Modules linked in: usb_storage tcp_lp ppdev parport_pc lp parport fuse ipt_MASQUERADE iptable_nat nf_nat xt_CHECKSUM be2iscsi iscsi_boot_sysfs bnx2i iptable_mangle cnic uio cxgb4i cxgb4 cxgb3i bridge stp llc libcxgbi cxgb3 mdio ib_iser rdma_cm ib_cm iw_cm ib_sa ib_mad ib_core ib_addr iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi ip6t_REJECT nf_conntrack_ipv4 nf_conntrack_ipv6 nf_defrag_ipv6 nf_defrag_ipv4 xt_state ip6table_filter nf_conntrack ip6_tables sha256_generic dm_crypt snd_hda_codec_hdmi snd_hda_codec_conexant snd_hda_intel snd_hda_codec snd_hwdep arc4 vhost_net macvtap macvlan tun snd_seq snd_seq_device virtio_net snd_pcm kvm_intel snd_timer kvm thinkpad_acpi iwlwifi snd mac80211 e1000e tpm_tis tpm tpm_bios nfsd lockd snd_page_alloc soundcore cfg80211 rfkill nfs_acl auth_rpcgss i2c_i801 sunrpc uinput joydev iTCO_wdt iTCO_vendor_support microcode firewire_ohci firewire_core crc_itu_t sdhci_pci sdhci mmc_core wmi i915 drm_kms_helper drm i2c_!
a!
lg!
o_bit i2 +c_core video [last unloaded: scsi_wait_scan] +[178856.137482] Pid: 22695, comm: ksoftirqd/2 Not tainted 3.2.5-3.fc16.x86_64 #1 +[178856.137484] Call Trace: +[178856.137490] [<ffffffff8106dd4f>] warn_slowpath_common+0x7f/0xc0 +[178856.137493] [<ffffffff8106ddaa>] warn_slowpath_null+0x1a/0x20 +[178856.137500] [<ffffffffa02a344e>] rate_control_send_low+0x23e/0x250 [mac80211] +[178856.137506] [<ffffffffa0336d15>] rs_get_rate+0x65/0x1d0 [iwlwifi] +[178856.137513] [<ffffffffa02a37c6>] rate_control_get_rate+0x96/0x170 [mac80211] +[178856.137522] [<ffffffffa02af59f>] invoke_tx_handlers+0x6ff/0x13e0 [mac80211] +[178856.137528] [<ffffffffa028edac>] ? sta_info_get+0x6c/0x80 [mac80211] +[178856.137536] [<ffffffffa02b03d0>] ieee80211_tx+0x60/0xc0 [mac80211] +[178856.137543] [<ffffffffa02b1352>] ieee80211_tx_pending+0x162/0x270 [mac80211] +[178856.137546] [<ffffffff81074d18>] tasklet_action+0x78/0x140 +[178856.137548] [<ffffffff81075378>] __do_softirq+0xb8/0x230 +[178856.137550] [<ffffffff810755aa>] run_ksoftirqd+0xba/0x170 +[178856.137552] [<ffffffff810754f0>] ? __do_softirq+0x230/0x230 +[178856.137556] [<ffffffff8108fb9c>] kthread+0x8c/0xa0 +[178856.137559] [<ffffffff815eb8f4>] kernel_thread_helper+0x4/0x10 +[178856.137561] [<ffffffff8108fb10>] ? kthread_worker_fn+0x190/0x190 +[178856.137563] [<ffffffff815eb8f0>] ? gs_change+0x13/0x13 diff --git a/src/plugins/abrt-dump-oops.c b/src/plugins/abrt-dump-oops.c index 1722843..006c801 100644 --- a/src/plugins/abrt-dump-oops.c +++ b/src/plugins/abrt-dump-oops.c @@ -148,12 +148,14 @@ static void extract_oopses(GList **oops_list, char *buffer, size_t buflen) linelevel = c[1]; c += 3; }
/* remove jiffies time stamp counter if present */
/* remove jiffies time stamp counter if present
* jiffies are unsigned long, so it can be 2^64 long, which is
* 20 decimal digits*/ if (*c == '[') { char *c2 = strchr(c, '.'); char *c3 = strchr(c, ']');
if (c2&& c3&& (c2< c3)&& (c3-c)< 14&& (c2-c)< 8)
if (c2&& c3&& (c2< c3)&& (c3-c)< 21&& (c2-c)< 8) { c = c3 + 1; if (*c == ' ')
- the patch looks sane, but I think the test part is not complete -
you've provide only *.right file, but our tests needs *.test + *.right and since you're fixing the case with number longer than 14 digits it would make sense to provide the test for it, this test has only 13 digits.
I will when I will be writing an unit-test
crash-catcher@lists.fedorahosted.org