commit 4cd5db03b907377a6193dd917121613ba471e1ee
Author: Greg Althaus <galthaus@austin.rr.com>
Date:   Mon Jan 31 14:41:40 2022 -0600

    build: update v4.7.15

M   go.mod
M   go.sum

commit 5592a92088f55a513a26faf9744fefdecc211d42
Author: Victor Lowther <victor.lowther@gmail.com>
Date:   Mon Jan 24 09:16:50 2022 -0600

    fix(consensus): Fix artifact replication loop.

    It was possible for artifact replication in a consensus cluster to get
    stuck in an infinite loop when the leader asserted an artifact state
    that was impossible for followers to sucessfully replicate or
    ignore. The foillowing factors contributed to this state, and are
    fixed by this patch:

    * When asserting artifact dominance, the leader based its known state
    for job logs and plugins based on their respective filesystems instead
    of the database.  This could lead to the followers being told they
    needed to pull artifact that were impossible to pull due to them going
    through an API path that referred to a nonexistent database object.
    This has beeb fixed by having the leader use the jobs and
    plugin_providers table to generate the list of job logs and plugin
    provider binaries instead of the contents of the filesystem where they
    are stored.

    * Followers were interpreting a 404 response as an error that could be
    resolved by retrying the request.  They will now interpret 404 as in
    indication that the artifact they are trying to replicate has vanished

M   clitest/test-data/output/TestFilesCli/files.upload.files_test.go.as.greg/greg/stderr.expect
M   datastack/etags.go
M   datastack/index/index.go
M   datastack/stack.go
M   go.mod
M   go.sum
M   tools/test.sh

End of Note