Bug #419

rrd update fails during graceful restart

Added by Anonymous almost 14 years ago. Updated over 10 years ago.

Target version:
Start date:
Due date:
% Done:


Estimated time:
Missing in 1.5.x:


It appears that during graceful restarts where the old lighttpd takes some time to spin down, the new lighttpd's updates of rrd data can cause an rrdtool error:

2005-12-18 06:28:00: (mod_rrdtool.c.410) rrdtool-response: update /path/to/rrd/lighttpd.rrd N:5876:138222:23
 ERROR: illegal attempt to update using time 1134887281 when last update time is 1134887281 (minimum one second step)
OK u:0.00 s:0.00 r:29.41 
2005-12-18 06:28:00: (server.c.900) one of the triggers failed 

This error does not occur under normal restarts, only when two lighttpd processes are running (one waiting for existing connections to close, the other accepting new connections). After the error, the new lighttpd process does not log further rrd data.

Is there any workaround? Is it possible to have same-second updates of the rrd database treated as a soft failure and logged, but not stop future updates? As you might imagine, the combination of rrd and graceful restarts are very desirable to have working in combination on systems under heavy load. :)


-- jbyers

Associated revisions

Revision 2401 (diff)
Added by stbuehler over 10 years ago

Fix rrd error after graceful restart (fixes #419)

Revision 515d800f (diff)
Added by stbuehler over 10 years ago

Fix rrd error after graceful restart (fixes #419)

git-svn-id: svn:// 152afb58-edef-0310-8abb-c4023f1b3aa9

Revision 2416 (diff)
Added by stbuehler over 10 years ago

Port some mod_rrdtool fixes from 1.4.x (#604, #419 and more)



Updated by Anonymous over 13 years ago

I'm going to investigate stopping rrdtool updates when lighttpd gets a SIGINT, combined with a short delay on performing the first update on startup. Will advise.

-- jbyers


Updated by Anonymous about 13 years ago

Note rrd also fails with lighttpd in multiple listener mode for similar reasons.

-- jbyers


Updated by Anonymous almost 13 years ago

The problem still exists in 1.4.12. My suggestion for how to fix, is to stop rrdtool updates when old process receives SIGINT.

-- Elan Ruusamäe <glen


Updated by jan almost 13 years ago

handle this as a known limitation. It will be fixed in 1.5.x.


Updated by Anonymous almost 12 years ago

A hack-around to this problem in 1.4 is to kill the rrdtool owned by the first lighttpd instance before the restart. This will result in a few lines in the error log (broken pipe; trigger failed) but will allow the second lighttpd to pick up with rrd updates.

-- jbyers


Updated by stbuehler over 10 years ago

  • Status changed from New to Fixed
  • % Done changed from 0 to 100

Applied in changeset r2401.

Also available in: Atom