If just got bitten by this bug, but the fix was quite easy. The problem was that the cgi script only decides to answer positive to "if-modified-since" requests if the png on disk has changed. When you are using graph_strategy=cgi, that will never happen. So a check for the current time is also needed.
I'll submit this to upstream as well, if I can find the right place. Sincerely, Richard van den Berg
--- munin-cgi-graph.in.bak 2006-11-29 13:08:31.000000000 +0100 +++ munin-cgi-graph.in 2006-11-29 13:18:22.000000000 +0100 @@ -84,7 +84,8 @@ my $slast_modified = strftime ("%a, %d %b %Y %H:%M:%S %Z", localtime ($sstats[9])); if (defined $ENV{HTTP_IF_MODIFIED_SINCE} and - !&modified ($ENV{HTTP_IF_MODIFIED_SINCE}, $sstats[9]-1)) + !&modified ($ENV{HTTP_IF_MODIFIED_SINCE}, $sstats[9]-1) and + !&modified (gmtime(time+($period{$scale}-($time%$period{$scale}))), $sstats[9]-1)) { print "Status: 304\n"; print "Content-Type: image/png\n";