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 Pajkovsky<npajkovs(a)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