This was the cause of a failure in one of my multi-archive test cases,
but it appears to be a long-standing bug. Probably not hit in real life
because the archive needs to be small in order to trigger it.
Changes committed to git://git.pcp.io/brolley/pcp.git master
Dave Brolley (1):
Fix bug in interp mode record caching.
src/libpcp/src/interp.c | 40 ++++++++++++++++++++++++++++++----------
1 file changed, 30 insertions(+), 10 deletions(-)
commit 1533df8944723fa8895d4036e6fef5cc7ae23099
Author: Dave Brolley <brolley@xxxxxxxxxx>
Date: Thu Jan 21 16:27:16 2016 -0500
Fix bug in interp mode record caching.
Records were cached based on
1) metrics file pointer(!!!!)
2) volume number
3) offset in the metrics file
The problem with this is that it is possible for the metrics file
pointer to remain the same when a volume/archive change occurs. In this
case, if the previous volume is small enough, records from the new
volume may be determined to be cache hits for records in the cache
from the old volume.
This change uses the name of the archive instead of the metrics file
pointer, as is done elsewhere in libpcp when distinguishing archives.
|