I've finally narrowed down the source of the bug where hardware-monitor uses 2GB of RAM and 100% CPU, and has to be killed.
The backtrace always showed it to be in
line->property_fill_color_rgba() = color;
in Curve::draw(), which didn't make any sense because
line->points() was never set to more than 34 points.
Here is a trace of the output: value_history.values contains
1.8e+19 (all other values are ~ 1e07), and max = 1e-06 (I guess it
was 0 or negative). Thereafter points gets some crazy values,
e.g. (65.8, -3.551e+26) followed by (63.8, -2.13586e+14).
Now that I've gotten this far I figure it should be easy to
reproduce :) Just play back the values to a CurveView monitor.
It looks to me like a chain of bugs triggered by an unlikely
scenario: 1. The value shouldn't be 2e19 in the first place (is
this bytes/sec?) - possible glibtop bug. 2. A huge number like
that shouldn't confuse hardware-monitor. 3. Weird point values
like that shouldn't corrupt memory - possible bug in
libgnomecanvas or libart.
hardware-monitor debug # 18264
Monitor: Eth. 1 (Ethernet (first))
values (34):
1.84467e+19
1.10954e+07
1.0973e+07
1.10938e+07
1.12003e+07
1.10197e+07
1.10458e+07
1.0987e+07
1.12158e+07
1.1124e+07
1.12816e+07
1.10643e+07
1.11833e+07
1.10957e+07
1.11778e+07
1.09945e+07
1.12144e+07
1.10695e+07
1.12187e+07
1.11084e+07
1.10673e+07
1.10522e+07
1.10682e+07
1.11573e+07
1.12827e+07
1.11648e+07
1.11065e+07
1.13194e+07
1.10678e+07
1.12579e+07
1.10514e+07
1.08507e+07
1.11317e+07
1.12981e+07
time_offset = 0.9
line already initialized.
monitor->max = 1e-06
points (34):
(65.8, -3.551e+26)
(63.8, -2.13586e+14)
(61.8, -2.1123e+14)
(59.8, -2.13555e+14)
(57.8, -2.15606e+14)
(55.8, -2.12129e+14)
(53.8, -2.12632e+14)
(51.8, -2.115e+14)
(49.8, -2.15903e+14)
(47.8, -2.14136e+14)
(45.8, -2.17171e+14)
(43.8, -2.12987e+14)
(41.8, -2.15278e+14)
(39.8, -2.13593e+14)
(37.8, -2.15173e+14)
(35.8, -2.11643e+14)
(33.8, -2.15877e+14)
(31.8, -2.13088e+14)
(29.8, -2.15961e+14)
(27.8, -2.13836e+14)
(25.8, -2.13046e+14)
(23.8, -2.12755e+14)
(21.8, -2.13062e+14)
(19.8, -2.14778e+14)
(17.8, -2.17193e+14)
(15.8, -2.14923e+14)
(13.8, -2.138e+14)
(11.8, -2.17899e+14)
(9.8, -2.13055e+14)
(7.8, -2.16714e+14)
(5.8, -2.12739e+14)
(3.8, -2.08875e+14)
(1.8, -2.14285e+14)
(-0.2, -2.17488e+14)
hardware-monitor-trace.tar.gz
Description: Binary data
-- Karl 2006-04-11 23:12

