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