distributed-system-analysis / pbench

A benchmarking and performance analysis framework
http://distributed-system-analysis.github.io/pbench/
GNU General Public License v3.0
188 stars 108 forks source link

Handle duplicate tarball names with distinct MD5 #3552

Closed dbutenhof closed 1 year ago

dbutenhof commented 1 year ago

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).