: [error] not found: [error] ~/.ivy2/local/delorean/core_2.11 [error] https://repo1.maven.org/maven2/verizon/inf/delorean/core_2.11/[error] https://oss.sonatype.org/content/repositories/releases/verizon/inf/delorean/core_2.11/[error] [error] wrong checksum: ~/.coursier/cache/v1/http/nexus.oncue.verizon.net/nexus/content/groups/internal/verizon/inf/delorean/core_2.11/file which is also in the right place in our Nexus, I get a file which contains the right hash.
This boolean option allows ansible to fall back to unsafe methods of updating files for those cases in which you do not have any other choice.
Be aware that this is subject to race conditions and can lead to data corruption.
I also have several other artifacts which are non-deterministically exhibiting this problem. Anyway, here's the error I get: [error] (core/*:coursier Resolution) coursier.
Resolution Exception: Encountered 1 error(s) in dependency resolution: [error] delorean:core_2.11:1.1.
Either Ivy is more forgiving of checksum failure on the artifact-level metadata, or it simply attempts to re-fetch the metadata or its checksum (or both) a few times in the event of a checksum failure.
@alexarchambault I think one solution that could be explored here is simply immediately expiring the metadata for any artifacts where the checksum doesn't match.
Normally this module uses atomic operations to prevent data corruption or inconsistent reads from the target files, sometimes systems are configured or just broken in ways that prevent this.
One example are docker mounted files, they cannot be updated atomically and can only be done in an unsafe manner.
I was recommended okhttp as a safer alternative to it seemed. @alexarchambault Any suggestions as to what I should be looking for? @alexarchambault Any suggestions as to what I should be looking for? Coursier is getting that incorrect file (only when it hits the problem, obviously), and in turn fails the build. If these two connections are load balanced to separate instances while the instances are out of sync, Coursier will acquire either stale metadata or a stale checksum.
That would result in some downloaded files being empty or corrupted. Connection Pool prune And Get Allocation Countent-2.6.2seen this in artifacts resolved from this specific Nexus. seen this in artifacts resolved from this specific Nexus. Correction to the previous: I've now seen it with both Nexuses. It's far easier to reproduce on a low bandwidth, high latency connection than it is on the inverse. Coursier is getting that incorrect file (only when it hits the problem, obviously), and in turn fails the build. Given that Nexus is actually serving up wrong files, it looks like Ivy is just straight-up ignoring checksum errors (or retrying until it's not errored maybe? It may actually acquire in a stale state, but that doesn't lead to errors.
Original error: Could not transfer metadata com.archetypes:ipp-archetype-tc6-ipp-portal-war/from/to ipp-archetype-tc6-ipp-portal-war-repo (https://infinity.sungard.com/repository/ipp-releases): Failed to transfer https://infinity.sungard.com/repository/ipp-releases/com/infinity/bpm/archetypes/ipp-archetype-tc6-ipp-portal-war/ ENTRY org.eclipse.m2e.logback.appender 2 0 2015-01-20 .153 !