Automated testing can easily launch similar tests simultaneously, resulting in distinct tests with identical tarball names. Pbench Server has maintained result data using tarball names: in 0.69, a duplicate name quietly overwrote the earlier tarball, and recently 1.0 code has explicitly rejected this case.
Because we're seeing this moderately commonly in cloud testing environments, this PR makes changes to gracefully accept these duplicate names, by storing the tarballs under an "isolation" directory layer using the MD5 (resource ID) to avoid duplicate names. The cache tree already has a resource ID layer.
Add a functional test case, using a tarball manually unpacked and repacked with a metadata.log modified to resemble the likely actual differences (node name and fine-grained timestamp).
PBENCH-1276
Automated testing can easily launch similar tests simultaneously, resulting in distinct tests with identical tarball names. Pbench Server has maintained result data using tarball names: in 0.69, a duplicate name quietly overwrote the earlier tarball, and recently 1.0 code has explicitly rejected this case.
Because we're seeing this moderately commonly in cloud testing environments, this PR makes changes to gracefully accept these duplicate names, by storing the tarballs under an "isolation" directory layer using the MD5 (resource ID) to avoid duplicate names. The cache tree already has a resource ID layer.
Add a functional test case, using a tarball manually unpacked and repacked with a
metadata.log
modified to resemble the likely actual differences (node name and fine-grained timestamp).