Ticket #228 (closed defect: wontfix)

Opened 3 years ago

Last modified 14 months ago

Failed to update/fetch the rrd file.

Reported by: human Owned by: oetiker
Priority: major Milestone:
Component: rrd_update Version: 1.2.23
Keywords: Cc:

Description

There are two same nics in the machine,I made the script to update the rrd file for network error information per 6 minutes in the crontab. Now, one rrd file("Erroreth4.rrd") was incorrect and the file was not updated any more and I cannot fetch the data of the file.

But the other rrd file("Normaleth1.rrd") is correct. The following is the files' info:

$ ls -l

total 1720 -rw-r--r-- 1 hydragui hydragui 1259176 May 15 09:20 Normaleth1.rrd -rw-r--r-- 1 hydragui hydragui 491520 May 15 04:54 Erroreth4.rrd

$ rrdtool first Normaleth1.rrd

1241774040

$ rrdtool last Normaleth1.rrd

1242378780

$ rrdtool first Erroreth4.rrd

1241758500

$ rrdtool last Erroreth4.rrd

1242363267

$ rrdtool fetch Erroreth4.rrd AVERAGE -s 1241758500 -e 1242363267

ERROR: fetching cdp from rra

$ rrdtool update Erroreth4.rrd 1243296840:0:0:0:0:0:0:0

Segmentation fault (core dumped) * Normal File info $ rrdtool info Normaleth1.rrd filename = "Normaleth1.rrd" rrd_version = "0003" step = 60 last_update = 1242378780 ds[In_Octets].type = "DERIVE" ds[In_Octets].minimal_heartbeat = 90 ds[In_Octets].min = 0.0000000000e+00 ds[In_Octets].max = NaN ds[In_Octets].last_ds = "0" ds[In_Octets].value = 0.0000000000e+00 ds[In_Octets].unknown_sec = 0 ds[Out_Octets].type = "DERIVE" ds[Out_Octets].minimal_heartbeat = 90 ds[Out_Octets].min = 0.0000000000e+00 ds[Out_Octets].max = NaN ds[Out_Octets].last_ds = "0" ds[Out_Octets].value = 0.0000000000e+00 ds[Out_Octets].unknown_sec = 0 ds[In_Errors].type = "GAUGE" ds[In_Errors].minimal_heartbeat = 90 ds[In_Errors].min = 0.0000000000e+00 ds[In_Errors].max = NaN ds[In_Errors].last_ds = "0" ds[In_Errors].value = 0.0000000000e+00 ds[In_Errors].unknown_sec = 0 ds[Out_Errors].type = "GAUGE" ds[Out_Errors].minimal_heartbeat = 90 ds[Out_Errors].min = 0.0000000000e+00 ds[Out_Errors].max = NaN ds[Out_Errors].last_ds = "0" ds[Out_Errors].value = 0.0000000000e+00 ds[Out_Errors].unknown_sec = 0 ds[In_Drop].type = "GAUGE" ds[In_Drop].minimal_heartbeat = 90 ds[In_Drop].min = 0.0000000000e+00 ds[In_Drop].max = NaN ds[In_Drop].last_ds = "0" ds[In_Drop].value = 0.0000000000e+00 ds[In_Drop].unknown_sec = 0 ds[Out_Drop].type = "GAUGE" ds[Out_Drop].minimal_heartbeat = 90 ds[Out_Drop].min = 0.0000000000e+00 ds[Out_Drop].max = NaN ds[Out_Drop].last_ds = "0" ds[Out_Drop].value = 0.0000000000e+00 ds[Out_Drop].unknown_sec = 0 ds[Collision].type = "GAUGE" ds[Collision].minimal_heartbeat = 90 ds[Collision].min = 0.0000000000e+00 ds[Collision].max = NaN ds[Collision].last_ds = "0" ds[Collision].value = 0.0000000000e+00 ds[Collision].unknown_sec = 0 rra[0].cf = "AVERAGE" rra[0].rows = 10080 rra[0].pdp_per_row = 1 rra[0].xff = 5.0000000000e-01 rra[0].cdp_prep[0].value = NaN rra[0].cdp_prep[0].unknown_datapoints = 0 rra[0].cdp_prep[1].value = NaN rra[0].cdp_prep[1].unknown_datapoints = 0 rra[0].cdp_prep[2].value = NaN rra[0].cdp_prep[2].unknown_datapoints = 0 rra[0].cdp_prep[3].value = NaN rra[0].cdp_prep[3].unknown_datapoints = 0 rra[0].cdp_prep[4].value = NaN rra[0].cdp_prep[4].unknown_datapoints = 0 rra[0].cdp_prep[5].value = NaN rra[0].cdp_prep[5].unknown_datapoints = 0 rra[0].cdp_prep[6].value = NaN rra[0].cdp_prep[6].unknown_datapoints = 0 rra[1].cf = "AVERAGE" rra[1].rows = 744 rra[1].pdp_per_row = 60 rra[1].xff = 5.0000000000e-01 rra[1].cdp_prep[0].value = 0.0000000000e+00 rra[1].cdp_prep[0].unknown_datapoints = 2 rra[1].cdp_prep[1].value = 0.0000000000e+00 rra[1].cdp_prep[1].unknown_datapoints = 2 rra[1].cdp_prep[2].value = 0.0000000000e+00 rra[1].cdp_prep[2].unknown_datapoints = 2 rra[1].cdp_prep[3].value = 0.0000000000e+00 rra[1].cdp_prep[3].unknown_datapoints = 2 rra[1].cdp_prep[4].value = 0.0000000000e+00 rra[1].cdp_prep[4].unknown_datapoints = 2 rra[1].cdp_prep[5].value = 0.0000000000e+00 rra[1].cdp_prep[5].unknown_datapoints = 2 rra[1].cdp_prep[6].value = 0.0000000000e+00 rra[1].cdp_prep[6].unknown_datapoints = 2 rra[2].cf = "AVERAGE" rra[2].rows = 366 rra[2].pdp_per_row = 1440 rra[2].xff = 5.0000000000e-01 rra[2].cdp_prep[0].value = 0.0000000000e+00 rra[2].cdp_prep[0].unknown_datapoints = 383 rra[2].cdp_prep[1].value = 0.0000000000e+00 rra[2].cdp_prep[1].unknown_datapoints = 383 rra[2].cdp_prep[2].value = 0.0000000000e+00 rra[2].cdp_prep[2].unknown_datapoints = 383 rra[2].cdp_prep[3].value = 0.0000000000e+00 rra[2].cdp_prep[3].unknown_datapoints = 383 rra[2].cdp_prep[4].value = 0.0000000000e+00 rra[2].cdp_prep[4].unknown_datapoints = 383 rra[2].cdp_prep[5].value = 0.0000000000e+00 rra[2].cdp_prep[5].unknown_datapoints = 383 rra[2].cdp_prep[6].value = 0.0000000000e+00 rra[2].cdp_prep[6].unknown_datapoints = 383 rra[3].cf = "MAX" rra[3].rows = 10080 rra[3].pdp_per_row = 1 rra[3].xff = 5.0000000000e-01 rra[3].cdp_prep[0].value = NaN rra[3].cdp_prep[0].unknown_datapoints = 0 rra[3].cdp_prep[1].value = NaN rra[3].cdp_prep[1].unknown_datapoints = 0 rra[3].cdp_prep[2].value = NaN rra[3].cdp_prep[2].unknown_datapoints = 0 rra[3].cdp_prep[3].value = NaN rra[3].cdp_prep[3].unknown_datapoints = 0 rra[3].cdp_prep[4].value = NaN rra[3].cdp_prep[4].unknown_datapoints = 0 rra[3].cdp_prep[5].value = NaN rra[3].cdp_prep[5].unknown_datapoints = 0 rra[3].cdp_prep[6].value = NaN rra[3].cdp_prep[6].unknown_datapoints = 0 rra[4].cf = "MAX" rra[4].rows = 744 rra[4].pdp_per_row = 60 rra[4].xff = 5.0000000000e-01 rra[4].cdp_prep[0].value = 0.0000000000e+00 rra[4].cdp_prep[0].unknown_datapoints = 2 rra[4].cdp_prep[1].value = 0.0000000000e+00 rra[4].cdp_prep[1].unknown_datapoints = 2 rra[4].cdp_prep[2].value = 0.0000000000e+00 rra[4].cdp_prep[2].unknown_datapoints = 2 rra[4].cdp_prep[3].value = 0.0000000000e+00 rra[4].cdp_prep[3].unknown_datapoints = 2 rra[4].cdp_prep[4].value = 0.0000000000e+00 rra[4].cdp_prep[4].unknown_datapoints = 2 rra[4].cdp_prep[5].value = 0.0000000000e+00 rra[4].cdp_prep[5].unknown_datapoints = 2 rra[4].cdp_prep[6].value = 0.0000000000e+00 rra[4].cdp_prep[6].unknown_datapoints = 2 rra[5].cf = "MAX" rra[5].rows = 366 rra[5].pdp_per_row = 1440 rra[5].xff = 5.0000000000e-01 rra[5].cdp_prep[0].value = 0.0000000000e+00 rra[5].cdp_prep[0].unknown_datapoints = 383 rra[5].cdp_prep[1].value = 0.0000000000e+00 rra[5].cdp_prep[1].unknown_datapoints = 383 rra[5].cdp_prep[2].value = 0.0000000000e+00 rra[5].cdp_prep[2].unknown_datapoints = 383 rra[5].cdp_prep[3].value = 0.0000000000e+00 rra[5].cdp_prep[3].unknown_datapoints = 383 rra[5].cdp_prep[4].value = 0.0000000000e+00 rra[5].cdp_prep[4].unknown_datapoints = 383 rra[5].cdp_prep[5].value = 0.0000000000e+00 rra[5].cdp_prep[5].unknown_datapoints = 383 rra[5].cdp_prep[6].value = 0.0000000000e+00 rra[5].cdp_prep[6].unknown_datapoints = 383

* Error File info $ rrdtool info Erroreth4.rrd filename = "Erroreth4.rrd" rrd_version = "0003" step = 60 last_update = 1242363267 ds[In_Octets].type = "DERIVE" ds[In_Octets].minimal_heartbeat = 90 ds[In_Octets].min = 0.0000000000e+00 ds[In_Octets].max = NaN ds[In_Octets].last_ds = "UNKN" ds[In_Octets].value = 0.0000000000e+00 ds[In_Octets].unknown_sec = 27 ds[Out_Octets].type = "DERIVE" ds[Out_Octets].minimal_heartbeat = 90 ds[Out_Octets].min = 0.0000000000e+00 ds[Out_Octets].max = NaN ds[Out_Octets].last_ds = "UNKN" ds[Out_Octets].value = 0.0000000000e+00 ds[Out_Octets].unknown_sec = 27 ds[In_Errors].type = "GAUGE" ds[In_Errors].minimal_heartbeat = 90 ds[In_Errors].min = 0.0000000000e+00 ds[In_Errors].max = NaN ds[In_Errors].last_ds = "UNKN" ds[In_Errors].value = 0.0000000000e+00 ds[In_Errors].unknown_sec = 27 ds[Out_Errors].type = "GAUGE" ds[Out_Errors].minimal_heartbeat = 90 ds[Out_Errors].min = 0.0000000000e+00 ds[Out_Errors].max = NaN ds[Out_Errors].last_ds = "UNKN" ds[Out_Errors].value = 0.0000000000e+00 ds[Out_Errors].unknown_sec = 27 ds[In_Drop].type = "GAUGE" ds[In_Drop].minimal_heartbeat = 90 ds[In_Drop].min = 0.0000000000e+00 ds[In_Drop].max = NaN ds[In_Drop].last_ds = "UNKN" ds[In_Drop].value = 0.0000000000e+00 ds[In_Drop].unknown_sec = 27 ds[Out_Drop].type = "GAUGE" ds[Out_Drop].minimal_heartbeat = 90 ds[Out_Drop].min = 0.0000000000e+00 ds[Out_Drop].max = NaN ds[Out_Drop].last_ds = "UNKN" ds[Out_Drop].value = 0.0000000000e+00 ds[Out_Drop].unknown_sec = 27 ds[Collision].type = "GAUGE" ds[Collision].minimal_heartbeat = 90 ds[Collision].min = 0.0000000000e+00 ds[Collision].max = NaN ds[Collision].last_ds = "UNKN" ds[Collision].value = 0.0000000000e+00 ds[Collision].unknown_sec = 27 rra[0].cf = "AVERAGE" rra[0].rows = 10080 rra[0].pdp_per_row = 1 rra[0].xff = 5.0000000000e-01 rra[0].cdp_prep[0].value = NaN rra[0].cdp_prep[0].unknown_datapoints = 0 rra[0].cdp_prep[1].value = NaN rra[0].cdp_prep[1].unknown_datapoints = 0 rra[0].cdp_prep[2].value = NaN rra[0].cdp_prep[2].unknown_datapoints = 0 rra[0].cdp_prep[3].value = NaN rra[0].cdp_prep[3].unknown_datapoints = 0 rra[0].cdp_prep[4].value = NaN rra[0].cdp_prep[4].unknown_datapoints = 0 rra[0].cdp_prep[5].value = NaN rra[0].cdp_prep[5].unknown_datapoints = 0 rra[0].cdp_prep[6].value = NaN rra[0].cdp_prep[6].unknown_datapoints = 0 rra[1].cf = "AVERAGE" rra[1].rows = 744 rra[1].pdp_per_row = 60 rra[1].xff = 5.0000000000e-01 rra[1].cdp_prep[0].value = NaN rra[1].cdp_prep[0].unknown_datapoints = 54 rra[1].cdp_prep[1].value = NaN rra[1].cdp_prep[1].unknown_datapoints = 54 rra[1].cdp_prep[2].value = NaN rra[1].cdp_prep[2].unknown_datapoints = 54 rra[1].cdp_prep[3].value = NaN rra[1].cdp_prep[3].unknown_datapoints = 54 rra[1].cdp_prep[4].value = NaN rra[1].cdp_prep[4].unknown_datapoints = 54 rra[1].cdp_prep[5].value = NaN rra[1].cdp_prep[5].unknown_datapoints = 54 rra[1].cdp_prep[6].value = NaN rra[1].cdp_prep[6].unknown_datapoints = 54 rra[2].cf = "AVERAGE" rra[2].rows = 366 rra[2].pdp_per_row = 1440 rra[2].xff = 5.0000000000e-01 rra[2].cdp_prep[0].value = NaN rra[2].cdp_prep[0].unknown_datapoints = 294 rra[2].cdp_prep[1].value = NaN rra[2].cdp_prep[1].unknown_datapoints = 294 rra[2].cdp_prep[2].value = NaN rra[2].cdp_prep[2].unknown_datapoints = 294 rra[2].cdp_prep[3].value = NaN rra[2].cdp_prep[3].unknown_datapoints = 294 rra[2].cdp_prep[4].value = NaN rra[2].cdp_prep[4].unknown_datapoints = 294 rra[2].cdp_prep[5].value = NaN rra[2].cdp_prep[5].unknown_datapoints = 294 rra[2].cdp_prep[6].value = NaN rra[2].cdp_prep[6].unknown_datapoints = 294 rra[3].cf = "MAX" rra[3].rows = 10080 rra[3].pdp_per_row = 1 rra[3].xff = 5.0000000000e-01 rra[3].cdp_prep[0].value = NaN rra[3].cdp_prep[0].unknown_datapoints = 0 rra[3].cdp_prep[1].value = NaN rra[3].cdp_prep[1].unknown_datapoints = 0 rra[3].cdp_prep[2].value = NaN rra[3].cdp_prep[2].unknown_datapoints = 0 rra[3].cdp_prep[3].value = NaN rra[3].cdp_prep[3].unknown_datapoints = 0 rra[3].cdp_prep[4].value = NaN rra[3].cdp_prep[4].unknown_datapoints = 0 rra[3].cdp_prep[5].value = NaN rra[3].cdp_prep[5].unknown_datapoints = 0 rra[3].cdp_prep[6].value = NaN rra[3].cdp_prep[6].unknown_datapoints = 0 rra[4].cf = "MAX" rra[4].rows = 744 rra[4].pdp_per_row = 60 rra[4].xff = 5.0000000000e-01 rra[4].cdp_prep[0].value = NaN rra[4].cdp_prep[0].unknown_datapoints = 54 rra[4].cdp_prep[1].value = NaN rra[4].cdp_prep[1].unknown_datapoints = 54 rra[4].cdp_prep[2].value = NaN rra[4].cdp_prep[2].unknown_datapoints = 54 rra[4].cdp_prep[3].value = NaN rra[4].cdp_prep[3].unknown_datapoints = 54 rra[4].cdp_prep[4].value = NaN rra[4].cdp_prep[4].unknown_datapoints = 54 rra[4].cdp_prep[5].value = NaN rra[4].cdp_prep[5].unknown_datapoints = 54 rra[4].cdp_prep[6].value = NaN rra[4].cdp_prep[6].unknown_datapoints = 54 rra[5].cf = "MAX" rra[5].rows = 366 rra[5].pdp_per_row = 1440 rra[5].xff = 5.0000000000e-01 rra[5].cdp_prep[0].value = NaN rra[5].cdp_prep[0].unknown_datapoints = 294 rra[5].cdp_prep[1].value = NaN rra[5].cdp_prep[1].unknown_datapoints = 294 rra[5].cdp_prep[2].value = NaN rra[5].cdp_prep[2].unknown_datapoints = 294 rra[5].cdp_prep[3].value = NaN rra[5].cdp_prep[3].unknown_datapoints = 294 rra[5].cdp_prep[4].value = NaN rra[5].cdp_prep[4].unknown_datapoints = 294 rra[5].cdp_prep[5].value = NaN rra[5].cdp_prep[5].unknown_datapoints = 294 rra[5].cdp_prep[6].value = NaN rra[5].cdp_prep[6].unknown_datapoints = 294

Thank you

Change History

comment:1 follow-up: ↓ 2 Changed 3 years ago by oetiker

it seems your file has been damaged somehow ... can you reproduce this problem with a fresh file? Please submit a script to reproduce the problem.

comment:2 in reply to: ↑ 1 Changed 3 years ago by human

Replying to oetiker:

it seems your file has been damaged somehow ... can you reproduce this problem with a fresh file? Please submit a script to reproduce the problem.

Thank you for you reply. I don't know how to reproduce the problem. How can catch the exception when I use "RRDs::update()" to update the damaged file? Could I use the exit code or other information?

comment:3 Changed 3 years ago by oetiker

you can't prevent a segfault ... rrdtool is not currently equiped to handle damaged rrd files ... sorry ... that rrd_fetch sees the problem is more by chance than by design ... :-(

cheers tobi

comment:4 Changed 14 months ago by oetiker

  • Status changed from new to closed
  • Resolution set to wontfix

please upgrade to the latest version of rrdtool chances are that the bug has been resolved via other fixes.

Note: See TracTickets for help on using tickets.

NOTE: The content of this website is accessible with any browser. The graphical design though relies completely on CSS2 styles. If you see this text, this means that your browser does not support CSS2. Consider upgrading to a standard conformant browser like Mozilla Firefox or Opera but also Apple's Safari or KDE's Konqueror for example. It may also be that you are looking at a mirror page which did not copy the CSS for this page. Or if some pictu res are missing, then the mirror may not have picked up the contents of the inc directory.