[rrd-users] rrdgraph never returns with small step
Josh Wyatt
josh.wyatt at hcssystems.com
Thu Jun 19 22:48:13 CEST 2008
Josh Wyatt wrote:
> Alex van den Bogaerdt wrote:
>> I modified and combined your scripts. I think it will do the
>> same as your originals. See attached, please test.
>>
>> The last modification is that I put everyting in a for-each loop.
>> I didn't bother to count the different versions but there's quite
>> a few, as early as 1.2.9 upto 1.2.27 or so.
>>
>>
>> No hangs.
>>
>>> Let me know if I can assist further. Also FYI, I am running 1.3.0
>>> currently. Happy to try another version.
>> I think this may be wise.
>
> Are you sure 1.2.27 resulted in no hangs for you? I had tried 1.2.27 before (ebuild) and got hangs (but before I had this testsuite), and I just now downloaded 1.2.27 from oss.oetiker.ch and compiled it, and now I *do* get hangs.
>
> And just like before with 1.2.27 I am seeing a memory leak, slowly consuming more and more memory.
>
Okay, time to bring out a little firepower.
I ran strace on the testsuite (with -f to follow the child processes), and I see that at the point of the hang, rrdtool seems to go into an infinite loop opening /etc/localtime.
Here are the system calls leading up to that loop (on 1.3.0):
[pid 23691] open("tc1.rrd", O_RDONLY) = 3
1267 [pid 23691] fstat64(3, {st_mode=S_IFREG|0644, st_size=784, ...}) = 0
1268 [pid 23691] fadvise64(3, 0, 0, POSIX_FADV_RANDOM) = 0
1269 [pid 23691] mmap2(NULL, 784, PROT_READ, MAP_PRIVATE|MAP_NORESERVE, 3, 0) = 0xb7eab000
1270 [pid 23691] madvise(0xb7eab000, 784, 0x1 /* MADV_??? */) = 0
1271 [pid 23691] madvise(0xb7eab000, 112, MADV_SEQUENTIAL|0x1) = 0
1272 [pid 23691] madvise(0xb7eab000, 120, MADV_SEQUENTIAL|0x1) = 0
1273 [pid 23691] madvise(0xb7eab000, 108, MADV_SEQUENTIAL|0x1) = 0
1274 [pid 23691] madvise(0xb7eab000, 8, MADV_SEQUENTIAL|0x1) = 0
1275 [pid 23691] msync(0xb7eab000, 784, MS_ASYNC) = 0
1276 [pid 23691] munmap(0xb7eab000, 784) = 0
1277 [pid 23691] close(3) = 0
1278 [pid 23691] time(NULL) = 1213907966
1279 [pid 23691] brk(0x80c8000) = 0x80c8000
1280 [pid 23691] brk(0x80ad000) = 0x80ad000
1281 [pid 23691] mmap2(NULL, 1077248, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb75d8000
1282 [pid 23691] mmap2(NULL, 147456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb75b4000
1283 [pid 23691] munmap(0xb75b4000, 147456) = 0
1284 [pid 23691] mmap2(NULL, 270336, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7596000
1285 [pid 23691] munmap(0xb7596000, 270336) = 0
1286 [pid 23691] mmap2(NULL, 270336, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7596000
1287 [pid 23691] munmap(0xb7596000, 270336) = 0
1288 [pid 23691] open("/etc/localtime", O_RDONLY) = 3
1289 [pid 23691] fstat64(3, {st_mode=S_IFREG|0644, st_size=1267, ...}) = 0
1290 [pid 23691] close(3) = 0
1291 [pid 23691] open("/etc/localtime", O_RDONLY) = 3
1292 [pid 23691] fstat64(3, {st_mode=S_IFREG|0644, st_size=1267, ...}) = 0
1293 [pid 23691] close(3) = 0
1294 [pid 23691] open("/etc/localtime", O_RDONLY) = 3
1295 [pid 23691] fstat64(3, {st_mode=S_IFREG|0644, st_size=1267, ...}) = 0
1296 [pid 23691] close(3) = 0
1297 [pid 23691] open("/etc/localtime", O_RDONLY) = 3
1298 [pid 23691] fstat64(3, {st_mode=S_IFREG|0644, st_size=1267, ...}) = 0
1299 [pid 23691] close(3) = 0
The hang on 1.2.27 was a little bit different, as apparently a font file got opened in the middle:
8813 [pid 23593] open("tc1.rrd", O_RDONLY) = 3
8814 [pid 23593] fadvise64(3, 0, 0, POSIX_FADV_RANDOM) = 0
8815 [pid 23593] fstat64(3, {st_mode=S_IFREG|0644, st_size=784, ...}) = 0
8816 [pid 23593] mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7ed8000
8817 [pid 23593] read(3, "RRD\0000003\0\0\0\0/%\300\307C+\37[\1\0\0\0\1\0\0\0\1\0\0\0"..., 4096) = 784
8818 [pid 23593] _llseek(3, -240, [544], SEEK_CUR) = 0
8819 [pid 23593] _llseek(3, 0, [0], SEEK_SET) = 0
8820 [pid 23593] read(3, "RRD\0000003\0\0\0\0/%\300\307C+\37[\1\0\0\0\1\0\0\0\1\0\0\0"..., 784) = 784
8821 [pid 23593] _llseek(3, 784, [784], SEEK_SET) = 0
8822 [pid 23593] close(3) = 0
8823 [pid 23593] munmap(0xb7ed8000, 4096) = 0
8824 [pid 23593] time(NULL) = 1213907859
8825 [pid 23593] open("/usr/local/rrdtool-1.2.27/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf", O_RDONLY) = 3
8826 [pid 23593] fcntl64(3, F_SETFD, FD_CLOEXEC) = 0
8827 [pid 23593] fstat64(3, {st_mode=S_IFREG|0644, st_size=60444, ...}) = 0
8828 [pid 23593] mmap2(NULL, 60444, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7eca000
8829 [pid 23593] close(3) = 0
8830 [pid 23593] munmap(0xb7eca000, 60444) = 0
8831 [pid 23593] open("/etc/localtime", O_RDONLY) = 3
8832 [pid 23593] fstat64(3, {st_mode=S_IFREG|0644, st_size=1267, ...}) = 0
8833 [pid 23593] close(3) = 0
8834 [pid 23593] open("/etc/localtime", O_RDONLY) = 3
8835 [pid 23593] fstat64(3, {st_mode=S_IFREG|0644, st_size=1267, ...}) = 0
8836 [pid 23593] close(3) = 0
8837 [pid 23593] open("/etc/localtime", O_RDONLY) = 3
8838 [pid 23593] fstat64(3, {st_mode=S_IFREG|0644, st_size=1267, ...}) = 0
8839 [pid 23593] close(3) = 0
8840 [pid 23593] open("/etc/localtime", O_RDONLY) = 3
8841 [pid 23593] fstat64(3, {st_mode=S_IFREG|0644, st_size=1267, ...}) = 0
8842 [pid 23593] close(3) = 0
Any additional thoughts on debugging this? Beginning to look like something specific to my system, but not sure where to go next.
For kicks I checked out the disposition of /etc/localtime. It's a symlink to a real zonefile:
root at monkeybiz testcase2 # file /etc/localtime
/etc/localtime: symbolic link to `/usr/share/zoneinfo/US/Eastern'
root at monkeybiz testcase2 # file /usr/share/zoneinfo/US/Eastern
/usr/share/zoneinfo/US/Eastern: timezone data
Thanks,
Josh
More information about the rrd-users
mailing list