these 2 derivations will be built: /nix/store/dr7y98dvlygyv5ymrd7v87iyz0wim97d-niks3-tests-1.4.0.drv /nix/store/mxg17yc2rgr3l7r36njkdb7p32d2bqb8-niks3-go-unit-tests.drv building '/nix/store/dr7y98dvlygyv5ymrd7v87iyz0wim97d-niks3-tests-1.4.0.drv' niks3-tests-1.4.0> tribuchet: building on jamie niks3-tests-1.4.0> Running phase: unpackPhase niks3-tests-1.4.0> unpacking source archive /nix/store/327skg0p7vhrbajw0i3br1jx966v03vl-source niks3-tests-1.4.0> source root is source niks3-tests-1.4.0> Running phase: patchPhase niks3-tests-1.4.0> Running phase: updateAutotoolsGnuConfigScriptsPhase niks3-tests-1.4.0> Running phase: configurePhase niks3-tests-1.4.0> Running phase: buildPhase niks3-tests-1.4.0> Running phase: installPhase niks3-tests-1.4.0> Running phase: fixupPhase niks3-tests-1.4.0> shrinking RPATHs of ELF executables and libraries in /nix/store/ri7pdvsnr8pmfxycwb4k9g21n978lszk-niks3-tests-1.4.0 niks3-tests-1.4.0> shrinking /nix/store/ri7pdvsnr8pmfxycwb4k9g21n978lszk-niks3-tests-1.4.0/bin/niks3-hook.test niks3-tests-1.4.0> shrinking /nix/store/ri7pdvsnr8pmfxycwb4k9g21n978lszk-niks3-tests-1.4.0/bin/niks3-server.test niks3-tests-1.4.0> shrinking /nix/store/ri7pdvsnr8pmfxycwb4k9g21n978lszk-niks3-tests-1.4.0/bin/niks3-server-oidc.test niks3-tests-1.4.0> shrinking /nix/store/ri7pdvsnr8pmfxycwb4k9g21n978lszk-niks3-tests-1.4.0/bin/niks3-client.test niks3-tests-1.4.0> checking for references to /build/ in /nix/store/ri7pdvsnr8pmfxycwb4k9g21n978lszk-niks3-tests-1.4.0... niks3-tests-1.4.0> patching script interpreter paths in /nix/store/ri7pdvsnr8pmfxycwb4k9g21n978lszk-niks3-tests-1.4.0 niks3-tests-1.4.0> stripping (with command strip and flags -S -p) in /nix/store/ri7pdvsnr8pmfxycwb4k9g21n978lszk-niks3-tests-1.4.0/bin building '/nix/store/mxg17yc2rgr3l7r36njkdb7p32d2bqb8-niks3-go-unit-tests.drv' niks3-go-unit-tests> tribuchet: building on jamie niks3-go-unit-tests> Running client tests... niks3-go-unit-tests> === RUN TestDoServerRequestAttachesToken niks3-go-unit-tests> === PAUSE TestDoServerRequestAttachesToken niks3-go-unit-tests> === RUN TestRegisterUploadedObjectReusesConnections niks3-go-unit-tests> === PAUSE TestRegisterUploadedObjectReusesConnections niks3-go-unit-tests> === RUN TestCaseHackSuffix niks3-go-unit-tests> === PAUSE TestCaseHackSuffix niks3-go-unit-tests> === RUN TestFilterOversizedClosures niks3-go-unit-tests> === PAUSE TestFilterOversizedClosures niks3-go-unit-tests> === RUN TestUploadMultipart_PartsInParallel niks3-go-unit-tests> === PAUSE TestUploadMultipart_PartsInParallel niks3-go-unit-tests> === RUN TestPartSizeForNAR niks3-go-unit-tests> === PAUSE TestPartSizeForNAR niks3-go-unit-tests> === RUN TestUploadMultipart_SupersededByPeer niks3-go-unit-tests> === PAUSE TestUploadMultipart_SupersededByPeer niks3-go-unit-tests> === RUN TestDumpPathCaseHackMatchesNix niks3-go-unit-tests> --- PASS: TestDumpPathCaseHackMatchesNix (0.04s) niks3-go-unit-tests> === RUN TestDumpPathCaseHackCollision niks3-go-unit-tests> --- PASS: TestDumpPathCaseHackCollision (0.00s) niks3-go-unit-tests> === RUN TestDumpPathMatchesNix niks3-go-unit-tests> === PAUSE TestDumpPathMatchesNix niks3-go-unit-tests> === RUN TestDumpPathSingleFile niks3-go-unit-tests> === PAUSE TestDumpPathSingleFile niks3-go-unit-tests> === RUN TestDumpPathWriterError niks3-go-unit-tests> === PAUSE TestDumpPathWriterError niks3-go-unit-tests> === RUN TestEncodeNixBase32 niks3-go-unit-tests> === PAUSE TestEncodeNixBase32 niks3-go-unit-tests> === RUN TestEncodeNixBase32WithRealHash niks3-go-unit-tests> === PAUSE TestEncodeNixBase32WithRealHash niks3-go-unit-tests> === RUN TestConvertHashToNix32 niks3-go-unit-tests> === PAUSE TestConvertHashToNix32 niks3-go-unit-tests> === RUN TestGetStorePathHash niks3-go-unit-tests> === PAUSE TestGetStorePathHash niks3-go-unit-tests> === RUN TestPathInfoHashCompatibility niks3-go-unit-tests> === PAUSE TestPathInfoHashCompatibility niks3-go-unit-tests> === RUN TestParsePathInfoJSON niks3-go-unit-tests> === PAUSE TestParsePathInfoJSON niks3-go-unit-tests> === RUN TestParsePathInfoJSONMultiplePaths niks3-go-unit-tests> === PAUSE TestParsePathInfoJSONMultiplePaths niks3-go-unit-tests> === RUN TestPathInfoCACompatibility niks3-go-unit-tests> === PAUSE TestPathInfoCACompatibility niks3-go-unit-tests> === RUN TestRateLimiterFeedback niks3-go-unit-tests> === PAUSE TestRateLimiterFeedback niks3-go-unit-tests> === RUN TestRateLimiterFeedback_400DoesNotCountAsSuccess niks3-go-unit-tests> === PAUSE TestRateLimiterFeedback_400DoesNotCountAsSuccess niks3-go-unit-tests> === RUN TestResolveStorePath niks3-go-unit-tests> === PAUSE TestResolveStorePath niks3-go-unit-tests> === RUN TestDoWithRetry_BodyReplayedViaGetBody niks3-go-unit-tests> === PAUSE TestDoWithRetry_BodyReplayedViaGetBody niks3-go-unit-tests> === RUN TestShellSplit niks3-go-unit-tests> === PAUSE TestShellSplit niks3-go-unit-tests> === RUN TestShellSplitErrors niks3-go-unit-tests> === PAUSE TestShellSplitErrors niks3-go-unit-tests> === RUN TestStreamPushReportsEveryPath niks3-go-unit-tests> === PAUSE TestStreamPushReportsEveryPath niks3-go-unit-tests> === RUN TestStreamPushBatchesUnderLoad niks3-go-unit-tests> === PAUSE TestStreamPushBatchesUnderLoad niks3-go-unit-tests> === RUN TestStreamPushIsolatesFailures niks3-go-unit-tests> === PAUSE TestStreamPushIsolatesFailures niks3-go-unit-tests> === RUN TestStreamPushGivesUpOnDeadServer niks3-go-unit-tests> === PAUSE TestStreamPushGivesUpOnDeadServer niks3-go-unit-tests> === RUN TestStreamPushRequestLine niks3-go-unit-tests> === PAUSE TestStreamPushRequestLine niks3-go-unit-tests> === RUN TestStreamPushReportsSignatures niks3-go-unit-tests> === PAUSE TestStreamPushReportsSignatures niks3-go-unit-tests> === RUN TestClientSignaturesByStorePath niks3-go-unit-tests> === PAUSE TestClientSignaturesByStorePath niks3-go-unit-tests> === RUN TestSetClientTLS niks3-go-unit-tests> === PAUSE TestSetClientTLS niks3-go-unit-tests> === RUN TestSetClientTLSDoesNotMutateDefaultTransport niks3-go-unit-tests> === PAUSE TestSetClientTLSDoesNotMutateDefaultTransport niks3-go-unit-tests> === RUN TestSetClientTLSErrors niks3-go-unit-tests> === PAUSE TestSetClientTLSErrors niks3-go-unit-tests> === RUN TestStaticToken niks3-go-unit-tests> === PAUSE TestStaticToken niks3-go-unit-tests> === RUN TestFileTokenReadsAndCaches niks3-go-unit-tests> === PAUSE TestFileTokenReadsAndCaches niks3-go-unit-tests> === RUN TestFileTokenMissing niks3-go-unit-tests> === PAUSE TestFileTokenMissing niks3-go-unit-tests> === RUN TestFileTokenEmpty niks3-go-unit-tests> === PAUSE TestFileTokenEmpty niks3-go-unit-tests> === RUN TestScriptTokenNoExpiryRerunsEveryCall niks3-go-unit-tests> === PAUSE TestScriptTokenNoExpiryRerunsEveryCall niks3-go-unit-tests> === RUN TestScriptTokenCachesUntilRefresh niks3-go-unit-tests> === PAUSE TestScriptTokenCachesUntilRefresh niks3-go-unit-tests> === RUN TestScriptTokenEmptyToken niks3-go-unit-tests> === PAUSE TestScriptTokenEmptyToken niks3-go-unit-tests> === RUN TestScriptTokenBadJSON niks3-go-unit-tests> === PAUSE TestScriptTokenBadJSON niks3-go-unit-tests> === RUN TestScriptTokenScriptFails niks3-go-unit-tests> === PAUSE TestScriptTokenScriptFails niks3-go-unit-tests> === RUN TestScriptTokenEmptyCommand niks3-go-unit-tests> === PAUSE TestScriptTokenEmptyCommand niks3-go-unit-tests> === CONT TestDoServerRequestAttachesToken niks3-go-unit-tests> === CONT TestShellSplit niks3-go-unit-tests> --- PASS: TestShellSplit (0.00s) niks3-go-unit-tests> === CONT TestDumpPathWriterError niks3-go-unit-tests> === CONT TestSetClientTLSErrors niks3-go-unit-tests> === CONT TestScriptTokenEmptyCommand niks3-go-unit-tests> --- PASS: TestScriptTokenEmptyCommand (0.00s) niks3-go-unit-tests> === CONT TestParsePathInfoJSONMultiplePaths niks3-go-unit-tests> === CONT TestScriptTokenScriptFails niks3-go-unit-tests> === RUN TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths niks3-go-unit-tests> === PAUSE TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths niks3-go-unit-tests> === RUN TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths niks3-go-unit-tests> === PAUSE TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths niks3-go-unit-tests> === CONT TestEncodeNixBase32 niks3-go-unit-tests> === CONT TestScriptTokenBadJSON niks3-go-unit-tests> === CONT TestScriptTokenEmptyToken niks3-go-unit-tests> === CONT TestScriptTokenCachesUntilRefresh niks3-go-unit-tests> === CONT TestScriptTokenNoExpiryRerunsEveryCall niks3-go-unit-tests> === CONT TestFileTokenEmpty niks3-go-unit-tests> === CONT TestFileTokenMissing niks3-go-unit-tests> === CONT TestFileTokenReadsAndCaches niks3-go-unit-tests> === CONT TestStreamPushRequestLine niks3-go-unit-tests> --- PASS: TestFileTokenMissing (0.00s) niks3-go-unit-tests> === CONT TestParsePathInfoJSON niks3-go-unit-tests> === CONT TestSetClientTLSDoesNotMutateDefaultTransport niks3-go-unit-tests> === CONT TestStaticToken niks3-go-unit-tests> --- PASS: TestStaticToken (0.00s) niks3-go-unit-tests> === CONT TestGetStorePathHash niks3-go-unit-tests> === CONT TestSetClientTLS niks3-go-unit-tests> === CONT TestClientSignaturesByStorePath niks3-go-unit-tests> === CONT TestFilterOversizedClosures niks3-go-unit-tests> === CONT TestEncodeNixBase32WithRealHash niks3-go-unit-tests> === CONT TestDoWithRetry_BodyReplayedViaGetBody niks3-go-unit-tests> === CONT TestResolveStorePath niks3-go-unit-tests> === CONT TestStreamPushReportsSignatures niks3-go-unit-tests> 2026/09/22 10:44:30 ERROR Upload failed error=boom count=1 niks3-go-unit-tests> === CONT TestRateLimiterFeedback_400DoesNotCountAsSuccess niks3-go-unit-tests> === CONT TestRateLimiterFeedback niks3-go-unit-tests> === RUN TestRateLimiterFeedback/429_enables_limiter niks3-go-unit-tests> === PAUSE TestRateLimiterFeedback/429_enables_limiter niks3-go-unit-tests> === RUN TestRateLimiterFeedback/503_enables_limiter niks3-go-unit-tests> === CONT TestPathInfoCACompatibility niks3-go-unit-tests> 2026/09/22 10:44:30 WARN Rate limiter enabled after throttle name=server-test rate=5 niks3-go-unit-tests> === PAUSE TestRateLimiterFeedback/503_enables_limiter niks3-go-unit-tests> === RUN TestRateLimiterFeedback/200_does_not_enable_limiter niks3-go-unit-tests> === PAUSE TestRateLimiterFeedback/200_does_not_enable_limiter niks3-go-unit-tests> === RUN TestPathInfoCACompatibility/null_ca_field niks3-go-unit-tests> === PAUSE TestPathInfoCACompatibility/null_ca_field niks3-go-unit-tests> === RUN TestGetStorePathHash/valid_store_path niks3-go-unit-tests> --- PASS: TestFileTokenReadsAndCaches (0.00s) niks3-go-unit-tests> === CONT TestConvertHashToNix32 niks3-go-unit-tests> === CONT TestPathInfoHashCompatibility niks3-go-unit-tests> === CONT TestDumpPathSingleFile niks3-go-unit-tests> === CONT TestCaseHackSuffix niks3-go-unit-tests> === RUN TestFilterOversizedClosures/no_limit_keeps_everything niks3-go-unit-tests> === RUN TestEncodeNixBase32/test_string_hash niks3-go-unit-tests> 2026/09/22 10:44:30 ERROR Upload failed error=boom count=1 niks3-go-unit-tests> === RUN TestPathInfoCACompatibility/old_string_format_-_text niks3-go-unit-tests> === RUN TestParsePathInfoJSON/Nix_format niks3-go-unit-tests> === RUN TestRateLimiterFeedback/400_does_not_enable_limiter niks3-go-unit-tests> === PAUSE TestParsePathInfoJSON/Nix_format niks3-go-unit-tests> === RUN TestParsePathInfoJSON/Lix_format niks3-go-unit-tests> 2026/09/22 10:44:30 WARN Rate limiter enabled after throttle name=server-test rate=5 niks3-go-unit-tests> === RUN TestSetClientTLSErrors/missing_cert_file niks3-go-unit-tests> === PAUSE TestSetClientTLSErrors/missing_cert_file niks3-go-unit-tests> 2026/09/22 10:44:30 WARN Request returned retryable status, retrying attempt=1 max_attempts=6 backoff=0s status=503 url=http://127.0.0.1:41809 niks3-go-unit-tests> --- PASS: TestFileTokenEmpty (0.00s) niks3-go-unit-tests> --- PASS: TestScriptTokenScriptFails (0.01s) niks3-go-unit-tests> === PAUSE TestGetStorePathHash/valid_store_path niks3-go-unit-tests> === RUN TestGetStorePathHash/basename_without_hyphen_should_error niks3-go-unit-tests> === RUN TestPathInfoHashCompatibility/old_string_format_with_dash_(SRI) niks3-go-unit-tests> === RUN TestConvertHashToNix32/SRI_format_to_Nix32 niks3-go-unit-tests> 2026/09/22 10:44:30 WARN Rate limiter backed off name=server-test rate=5 niks3-go-unit-tests> === PAUSE TestFilterOversizedClosures/no_limit_keeps_everything niks3-go-unit-tests> 2026/09/22 10:44:30 WARN Request returned retryable status, retrying attempt=2 max_attempts=6 backoff=0s status=503 url=http://127.0.0.1:41809 niks3-go-unit-tests> === CONT TestPartSizeForNAR niks3-go-unit-tests> === RUN TestFilterOversizedClosures/closure_with_oversized_dependency_is_skipped niks3-go-unit-tests> === PAUSE TestFilterOversizedClosures/closure_with_oversized_dependency_is_skipped niks3-go-unit-tests> === RUN TestFilterOversizedClosures/all_closures_skipped niks3-go-unit-tests> === PAUSE TestEncodeNixBase32/test_string_hash niks3-go-unit-tests> === CONT TestUploadMultipart_SupersededByPeer niks3-go-unit-tests> === PAUSE TestRateLimiterFeedback/400_does_not_enable_limiter niks3-go-unit-tests> === PAUSE TestParsePathInfoJSON/Lix_format niks3-go-unit-tests> === PAUSE TestPathInfoCACompatibility/old_string_format_-_text niks3-go-unit-tests> === RUN TestSetClientTLSErrors/missing_key_file niks3-go-unit-tests> --- PASS: TestClientSignaturesByStorePath (0.00s) niks3-go-unit-tests> --- PASS: TestEncodeNixBase32WithRealHash (0.00s) niks3-go-unit-tests> === PAUSE TestGetStorePathHash/basename_without_hyphen_should_error niks3-go-unit-tests> === CONT TestRegisterUploadedObjectReusesConnections niks3-go-unit-tests> === PAUSE TestConvertHashToNix32/SRI_format_to_Nix32 niks3-go-unit-tests> === PAUSE TestPathInfoHashCompatibility/old_string_format_with_dash_(SRI) niks3-go-unit-tests> === CONT TestUploadMultipart_PartsInParallel niks3-go-unit-tests> === RUN TestPathInfoCACompatibility/old_string_format_-_fixed_recursive niks3-go-unit-tests> === PAUSE TestPathInfoCACompatibility/old_string_format_-_fixed_recursive niks3-go-unit-tests> === RUN TestPathInfoHashCompatibility/old_string_format_with_colon niks3-go-unit-tests> === RUN TestPathInfoCACompatibility/new_structured_format_-_text niks3-go-unit-tests> === RUN TestPartSizeForNAR/zero_stays_at_minimum niks3-go-unit-tests> === PAUSE TestFilterOversizedClosures/all_closures_skipped niks3-go-unit-tests> === RUN TestEncodeNixBase32/empty_input niks3-go-unit-tests> === PAUSE TestEncodeNixBase32/empty_input niks3-go-unit-tests> === RUN TestUploadMultipart_SupersededByPeer/exists niks3-go-unit-tests> === PAUSE TestUploadMultipart_SupersededByPeer/exists niks3-go-unit-tests> === RUN TestUploadMultipart_SupersededByPeer/missing niks3-go-unit-tests> === PAUSE TestUploadMultipart_SupersededByPeer/missing niks3-go-unit-tests> === CONT TestShellSplitErrors niks3-go-unit-tests> === CONT TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths niks3-go-unit-tests> === CONT TestDumpPathMatchesNix niks3-go-unit-tests> === CONT TestStreamPushBatchesUnderLoad niks3-go-unit-tests> === CONT TestRateLimiterFeedback/429_enables_limiter niks3-go-unit-tests> === RUN TestSetClientTLS/rejects_connection_without_client_cert niks3-go-unit-tests> === PAUSE TestSetClientTLS/rejects_connection_without_client_cert niks3-go-unit-tests> === RUN TestSetClientTLS/succeeds_with_client_cert_and_CA niks3-go-unit-tests> === PAUSE TestSetClientTLS/succeeds_with_client_cert_and_CA niks3-go-unit-tests> === CONT TestStreamPushReportsEveryPath niks3-go-unit-tests> --- PASS: TestDoServerRequestAttachesToken (0.01s) niks3-go-unit-tests> === CONT TestStreamPushGivesUpOnDeadServer niks3-go-unit-tests> --- PASS: TestStreamPushReportsSignatures (0.00s) niks3-go-unit-tests> --- PASS: TestScriptTokenBadJSON (0.01s) niks3-go-unit-tests> --- PASS: TestScriptTokenEmptyToken (0.01s) niks3-go-unit-tests> --- PASS: TestResolveStorePath (0.00s) niks3-go-unit-tests> --- PASS: TestSetClientTLSDoesNotMutateDefaultTransport (0.01s) niks3-go-unit-tests> === CONT TestRateLimiterFeedback/400_does_not_enable_limiter niks3-go-unit-tests> === RUN TestGetStorePathHash/hash_with_invalid_characters_should_error niks3-go-unit-tests> === RUN TestConvertHashToNix32/already_Nix32_format niks3-go-unit-tests> === PAUSE TestSetClientTLSErrors/missing_key_file niks3-go-unit-tests> --- PASS: TestDoWithRetry_BodyReplayedViaGetBody (0.00s) niks3-go-unit-tests> --- PASS: TestShellSplitErrors (0.00s) niks3-go-unit-tests> --- PASS: TestScriptTokenCachesUntilRefresh (0.01s) niks3-go-unit-tests> --- PASS: TestStreamPushReportsEveryPath (0.00s) niks3-go-unit-tests> === PAUSE TestPathInfoHashCompatibility/old_string_format_with_colon niks3-go-unit-tests> === PAUSE TestPathInfoCACompatibility/new_structured_format_-_text niks3-go-unit-tests> === PAUSE TestPartSizeForNAR/zero_stays_at_minimum niks3-go-unit-tests> 2026/09/22 10:44:30 ERROR Upload failed error="connection refused" count=1 niks3-go-unit-tests> 2026/09/22 10:44:30 ERROR Upload failed error="connection refused" count=1 niks3-go-unit-tests> 2026/09/22 10:44:30 ERROR Upload failed error="connection refused" count=18 niks3-go-unit-tests> 2026/09/22 10:44:30 ERROR Server seems unavailable, giving up on batch untried=15 niks3-go-unit-tests> === CONT TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths niks3-go-unit-tests> === RUN TestPartSizeForNAR/small_stays_at_minimum niks3-go-unit-tests> === PAUSE TestPartSizeForNAR/small_stays_at_minimum niks3-go-unit-tests> === RUN TestPartSizeForNAR/80_GiB_fits_at_minimum niks3-go-unit-tests> === PAUSE TestPartSizeForNAR/80_GiB_fits_at_minimum niks3-go-unit-tests> === RUN TestPartSizeForNAR/115_GiB_needs_larger_parts niks3-go-unit-tests> === PAUSE TestPartSizeForNAR/115_GiB_needs_larger_parts niks3-go-unit-tests> === RUN TestPartSizeForNAR/1_TiB niks3-go-unit-tests> === PAUSE TestPartSizeForNAR/1_TiB niks3-go-unit-tests> === RUN TestPartSizeForNAR/5_TiB_S3_max_object niks3-go-unit-tests> --- PASS: TestParsePathInfoJSONMultiplePaths (0.00s) niks3-go-unit-tests> --- PASS: TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths (0.00s) niks3-go-unit-tests> --- PASS: TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths (0.00s) niks3-go-unit-tests> === PAUSE TestPartSizeForNAR/5_TiB_S3_max_object niks3-go-unit-tests> === CONT TestRateLimiterFeedback/503_enables_limiter niks3-go-unit-tests> === RUN TestParsePathInfoJSON/empty_input niks3-go-unit-tests> === RUN TestSetClientTLS/preserves_debug_logging_transport niks3-go-unit-tests> === CONT TestRateLimiterFeedback/200_does_not_enable_limiter niks3-go-unit-tests> === RUN TestSetClientTLSErrors/missing_ca_file niks3-go-unit-tests> === RUN TestPathInfoCACompatibility/new_structured_format_-_nar_method niks3-go-unit-tests> === RUN TestPathInfoHashCompatibility/new_structured_format_-_converts_to_SRI niks3-go-unit-tests> === PAUSE TestGetStorePathHash/hash_with_invalid_characters_should_error niks3-go-unit-tests> === PAUSE TestConvertHashToNix32/already_Nix32_format niks3-go-unit-tests> === CONT TestStreamPushIsolatesFailures niks3-go-unit-tests> === NAME TestStreamPushGivesUpOnDeadServer niks3-go-unit-tests> streampush_test.go:240: push called 6 times, want <= 4 niks3-go-unit-tests> === PAUSE TestParsePathInfoJSON/empty_input niks3-go-unit-tests> === PAUSE TestSetClientTLS/preserves_debug_logging_transport niks3-go-unit-tests> === CONT TestFilterOversizedClosures/all_closures_skipped niks3-go-unit-tests> 2026/09/22 10:44:30 WARN Skipping closure: path exceeds server max NAR size top_level_path=/nix/store/cccccccccccccccccccccccccccccccc-wrapper oversized_path=/nix/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-small nar_size=1000 max_nar_size=50 niks3-go-unit-tests> 2026/09/22 10:44:30 ERROR Upload failed error="bad path" count=3 niks3-go-unit-tests> === CONT TestEncodeNixBase32/test_string_hash niks3-go-unit-tests> === RUN TestConvertHashToNix32/invalid_format niks3-go-unit-tests> === CONT TestUploadMultipart_SupersededByPeer/missing niks3-go-unit-tests> 2026/09/22 10:44:30 WARN Rate limiter enabled after throttle name=server-test rate=5 niks3-go-unit-tests> 2026/09/22 10:44:30 WARN Request returned retryable status, retrying attempt=1 max_attempts=2 backoff=0s status=503 url=http://127.0.0.1:45375 niks3-go-unit-tests> === RUN TestPartSizeForNAR/capped_at_5_GiB niks3-go-unit-tests> === PAUSE TestConvertHashToNix32/invalid_format niks3-go-unit-tests> 2026/09/22 10:44:30 WARN Rate limiter backed off name=server-test rate=5 niks3-go-unit-tests> === PAUSE TestSetClientTLSErrors/missing_ca_file niks3-go-unit-tests> === RUN TestSetClientTLSErrors/invalid_ca_file niks3-go-unit-tests> === PAUSE TestSetClientTLSErrors/invalid_ca_file niks3-go-unit-tests> === CONT TestEncodeNixBase32/empty_input niks3-go-unit-tests> === CONT TestSetClientTLS/preserves_debug_logging_transport niks3-go-unit-tests> === CONT TestSetClientTLS/succeeds_with_client_cert_and_CA niks3-go-unit-tests> === CONT TestSetClientTLSErrors/missing_cert_file niks3-go-unit-tests> === CONT TestSetClientTLS/rejects_connection_without_client_cert niks3-go-unit-tests> 2026/09/22 10:44:30 WARN Rate limiter enabled after throttle name=server-test rate=5 niks3-go-unit-tests> 2026/09/22 10:44:30 WARN Request returned retryable status, retrying attempt=1 max_attempts=2 backoff=0s status=429 url=http://127.0.0.1:37031 niks3-go-unit-tests> === CONT TestSetClientTLSErrors/invalid_ca_file niks3-go-unit-tests> 2026/09/22 10:44:30 WARN Rate limiter backed off name=server-test rate=5 niks3-go-unit-tests> === CONT TestConvertHashToNix32/SRI_format_to_Nix32 niks3-go-unit-tests> === CONT TestConvertHashToNix32/already_Nix32_format niks3-go-unit-tests> === CONT TestSetClientTLSErrors/missing_key_file niks3-go-unit-tests> === CONT TestFilterOversizedClosures/no_limit_keeps_everything niks3-go-unit-tests> === PAUSE TestPathInfoCACompatibility/new_structured_format_-_nar_method niks3-go-unit-tests> === CONT TestConvertHashToNix32/invalid_format niks3-go-unit-tests> === CONT TestPathInfoCACompatibility/old_string_format_-_fixed_recursive niks3-go-unit-tests> === RUN TestGetStorePathHash/hash_with_wrong_length_should_error niks3-go-unit-tests> === RUN TestParsePathInfoJSON/whitespace_only niks3-go-unit-tests> === CONT TestFilterOversizedClosures/closure_with_oversized_dependency_is_skipped niks3-go-unit-tests> === CONT TestUploadMultipart_SupersededByPeer/exists niks3-go-unit-tests> === PAUSE TestPartSizeForNAR/capped_at_5_GiB niks3-go-unit-tests> === CONT TestPartSizeForNAR/zero_stays_at_minimum niks3-go-unit-tests> === CONT TestPathInfoCACompatibility/old_string_format_-_text niks3-go-unit-tests> === CONT TestPartSizeForNAR/capped_at_5_GiB niks3-go-unit-tests> === CONT TestPartSizeForNAR/115_GiB_needs_larger_parts niks3-go-unit-tests> 2026/09/22 10:44:30 WARN Skipping closure: path exceeds server max NAR size top_level_path=/nix/store/cccccccccccccccccccccccccccccccc-wrapper oversized_path=/nix/store/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb-vm-image nar_size=5000 max_nar_size=2000 niks3-go-unit-tests> === CONT TestPartSizeForNAR/small_stays_at_minimum niks3-go-unit-tests> === PAUSE TestGetStorePathHash/hash_with_wrong_length_should_error niks3-go-unit-tests> === CONT TestGetStorePathHash/valid_store_path niks3-go-unit-tests> === CONT TestPartSizeForNAR/1_TiB niks3-go-unit-tests> === CONT TestGetStorePathHash/hash_with_invalid_characters_should_error niks3-go-unit-tests> === CONT TestGetStorePathHash/hash_with_wrong_length_should_error niks3-go-unit-tests> === CONT TestPathInfoCACompatibility/null_ca_field niks3-go-unit-tests> === CONT TestSetClientTLSErrors/missing_ca_file niks3-go-unit-tests> === PAUSE TestPathInfoHashCompatibility/new_structured_format_-_converts_to_SRI niks3-go-unit-tests> === CONT TestPathInfoCACompatibility/new_structured_format_-_nar_method niks3-go-unit-tests> === CONT TestPathInfoCACompatibility/new_structured_format_-_text niks3-go-unit-tests> === PAUSE TestParsePathInfoJSON/whitespace_only niks3-go-unit-tests> === CONT TestPartSizeForNAR/5_TiB_S3_max_object niks3-go-unit-tests> === CONT TestPartSizeForNAR/80_GiB_fits_at_minimum niks3-go-unit-tests> --- PASS: TestDumpPathSingleFile (0.07s) niks3-go-unit-tests> --- FAIL: TestStreamPushGivesUpOnDeadServer (0.07s) niks3-go-unit-tests> === CONT TestGetStorePathHash/basename_without_hyphen_should_error niks3-go-unit-tests> === RUN TestPathInfoHashCompatibility/new_structured_format_with_sha512 niks3-go-unit-tests> === PAUSE TestPathInfoHashCompatibility/new_structured_format_with_sha512 niks3-go-unit-tests> === RUN TestParsePathInfoJSON/invalid_JSON niks3-go-unit-tests> --- PASS: TestCaseHackSuffix (0.07s) niks3-go-unit-tests> === CONT TestPathInfoHashCompatibility/old_string_format_with_dash_(SRI) niks3-go-unit-tests> === CONT TestPathInfoHashCompatibility/new_structured_format_-_converts_to_SRI niks3-go-unit-tests> === CONT TestPathInfoHashCompatibility/old_string_format_with_colon niks3-go-unit-tests> === CONT TestPathInfoHashCompatibility/new_structured_format_with_sha512 niks3-go-unit-tests> === PAUSE TestParsePathInfoJSON/invalid_JSON niks3-go-unit-tests> === CONT TestParsePathInfoJSON/Nix_format niks3-go-unit-tests> === CONT TestParsePathInfoJSON/whitespace_only niks3-go-unit-tests> --- PASS: TestStreamPushIsolatesFailures (0.00s) niks3-go-unit-tests> === CONT TestParsePathInfoJSON/invalid_JSON niks3-go-unit-tests> === CONT TestParsePathInfoJSON/Lix_format niks3-go-unit-tests> === CONT TestParsePathInfoJSON/empty_input niks3-go-unit-tests> --- PASS: TestEncodeNixBase32 (0.01s) niks3-go-unit-tests> --- PASS: TestEncodeNixBase32/test_string_hash (0.00s) niks3-go-unit-tests> --- PASS: TestEncodeNixBase32/empty_input (0.00s) niks3-go-unit-tests> --- PASS: TestScriptTokenNoExpiryRerunsEveryCall (0.08s) niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback (0.00s) niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback/503_enables_limiter (0.00s) niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback/400_does_not_enable_limiter (0.07s) niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback/200_does_not_enable_limiter (0.00s) niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback/429_enables_limiter (0.07s) niks3-go-unit-tests> --- PASS: TestFilterOversizedClosures (0.00s) niks3-go-unit-tests> --- PASS: TestFilterOversizedClosures/all_closures_skipped (0.00s) niks3-go-unit-tests> --- PASS: TestFilterOversizedClosures/no_limit_keeps_everything (0.00s) niks3-go-unit-tests> --- PASS: TestFilterOversizedClosures/closure_with_oversized_dependency_is_skipped (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoCACompatibility (0.08s) niks3-go-unit-tests> --- PASS: TestPathInfoCACompatibility/old_string_format_-_text (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoCACompatibility/old_string_format_-_fixed_recursive (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoCACompatibility/null_ca_field (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoCACompatibility/new_structured_format_-_nar_method (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoCACompatibility/new_structured_format_-_text (0.00s) niks3-go-unit-tests> --- PASS: TestConvertHashToNix32 (0.07s) niks3-go-unit-tests> --- PASS: TestConvertHashToNix32/SRI_format_to_Nix32 (0.00s) niks3-go-unit-tests> --- PASS: TestConvertHashToNix32/already_Nix32_format (0.00s) niks3-go-unit-tests> --- PASS: TestConvertHashToNix32/invalid_format (0.00s) niks3-go-unit-tests> --- PASS: TestParsePathInfoJSON (0.08s) niks3-go-unit-tests> --- PASS: TestParsePathInfoJSON/Nix_format (0.00s) niks3-go-unit-tests> --- PASS: TestParsePathInfoJSON/whitespace_only (0.00s) niks3-go-unit-tests> --- PASS: TestParsePathInfoJSON/invalid_JSON (0.00s) niks3-go-unit-tests> --- PASS: TestParsePathInfoJSON/Lix_format (0.00s) niks3-go-unit-tests> --- PASS: TestParsePathInfoJSON/empty_input (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoHashCompatibility (0.08s) niks3-go-unit-tests> --- PASS: TestPathInfoHashCompatibility/old_string_format_with_dash_(SRI) (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoHashCompatibility/new_structured_format_-_converts_to_SRI (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoHashCompatibility/old_string_format_with_colon (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoHashCompatibility/new_structured_format_with_sha512 (0.00s) niks3-go-unit-tests> --- PASS: TestPartSizeForNAR (0.07s) niks3-go-unit-tests> --- PASS: TestPartSizeForNAR/zero_stays_at_minimum (0.00s) niks3-go-unit-tests> --- PASS: TestPartSizeForNAR/capped_at_5_GiB (0.00s) niks3-go-unit-tests> --- PASS: TestPartSizeForNAR/115_GiB_needs_larger_parts (0.00s) niks3-go-unit-tests> --- PASS: TestPartSizeForNAR/small_stays_at_minimum (0.00s) niks3-go-unit-tests> --- PASS: TestPartSizeForNAR/1_TiB (0.00s) niks3-go-unit-tests> --- PASS: TestPartSizeForNAR/5_TiB_S3_max_object (0.00s) niks3-go-unit-tests> --- PASS: TestPartSizeForNAR/80_GiB_fits_at_minimum (0.00s) niks3-go-unit-tests> --- PASS: TestGetStorePathHash (0.08s) niks3-go-unit-tests> --- PASS: TestGetStorePathHash/valid_store_path (0.00s) niks3-go-unit-tests> --- PASS: TestGetStorePathHash/hash_with_invalid_characters_should_error (0.00s) niks3-go-unit-tests> --- PASS: TestGetStorePathHash/hash_with_wrong_length_should_error (0.00s) niks3-go-unit-tests> --- PASS: TestGetStorePathHash/basename_without_hyphen_should_error (0.00s) niks3-go-unit-tests> --- PASS: TestUploadMultipart_SupersededByPeer (0.00s) niks3-go-unit-tests> --- PASS: TestUploadMultipart_SupersededByPeer/missing (0.00s) niks3-go-unit-tests> --- PASS: TestUploadMultipart_SupersededByPeer/exists (0.00s) niks3-go-unit-tests> --- PASS: TestSetClientTLSErrors (0.08s) niks3-go-unit-tests> --- PASS: TestSetClientTLSErrors/missing_cert_file (0.00s) niks3-go-unit-tests> --- PASS: TestSetClientTLSErrors/invalid_ca_file (0.00s) niks3-go-unit-tests> --- PASS: TestSetClientTLSErrors/missing_key_file (0.00s) niks3-go-unit-tests> --- PASS: TestSetClientTLSErrors/missing_ca_file (0.00s) niks3-go-unit-tests> --- PASS: TestStreamPushRequestLine (0.09s) niks3-go-unit-tests> 2026/09/22 10:44:30 http: TLS handshake error from 127.0.0.1:38190: remote error: tls: bad certificate niks3-go-unit-tests> --- PASS: TestSetClientTLS (0.08s) niks3-go-unit-tests> --- PASS: TestSetClientTLS/succeeds_with_client_cert_and_CA (0.00s) niks3-go-unit-tests> --- PASS: TestSetClientTLS/preserves_debug_logging_transport (0.00s) niks3-go-unit-tests> --- PASS: TestSetClientTLS/rejects_connection_without_client_cert (0.01s) niks3-go-unit-tests> --- PASS: TestRegisterUploadedObjectReusesConnections (0.10s) niks3-go-unit-tests> --- PASS: TestDumpPathWriterError (0.12s) niks3-go-unit-tests> --- PASS: TestStreamPushBatchesUnderLoad (0.12s) niks3-go-unit-tests> --- PASS: TestDumpPathMatchesNix (0.14s) niks3-go-unit-tests> --- PASS: TestUploadMultipart_PartsInParallel (0.69s) niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback_400DoesNotCountAsSuccess (1.00s) niks3-go-unit-tests> FAIL error: Cannot build '/nix/store/mxg17yc2rgr3l7r36njkdb7p32d2bqb8-niks3-go-unit-tests.drv'. Reason: builder failed with exit code 1. Output paths: /nix/store/s8wicbfckyajmlvnpwbygi6xzl94cxmc-niks3-go-unit-tests Last 25 log lines: > --- PASS: TestGetStorePathHash/valid_store_path (0.00s) > --- PASS: TestGetStorePathHash/hash_with_invalid_characters_should_error (0.00s) > --- PASS: TestGetStorePathHash/hash_with_wrong_length_should_error (0.00s) > --- PASS: TestGetStorePathHash/basename_without_hyphen_should_error (0.00s) > --- PASS: TestUploadMultipart_SupersededByPeer (0.00s) > --- PASS: TestUploadMultipart_SupersededByPeer/missing (0.00s) > --- PASS: TestUploadMultipart_SupersededByPeer/exists (0.00s) > --- PASS: TestSetClientTLSErrors (0.08s) > --- PASS: TestSetClientTLSErrors/missing_cert_file (0.00s) > --- PASS: TestSetClientTLSErrors/invalid_ca_file (0.00s) > --- PASS: TestSetClientTLSErrors/missing_key_file (0.00s) > --- PASS: TestSetClientTLSErrors/missing_ca_file (0.00s) > --- PASS: TestStreamPushRequestLine (0.09s) > 2026/09/22 10:44:30 http: TLS handshake error from 127.0.0.1:38190: remote error: tls: bad certificate > --- PASS: TestSetClientTLS (0.08s) > --- PASS: TestSetClientTLS/succeeds_with_client_cert_and_CA (0.00s) > --- PASS: TestSetClientTLS/preserves_debug_logging_transport (0.00s) > --- PASS: TestSetClientTLS/rejects_connection_without_client_cert (0.01s) > --- PASS: TestRegisterUploadedObjectReusesConnections (0.10s) > --- PASS: TestDumpPathWriterError (0.12s) > --- PASS: TestStreamPushBatchesUnderLoad (0.12s) > --- PASS: TestDumpPathMatchesNix (0.14s) > --- PASS: TestUploadMultipart_PartsInParallel (0.69s) > --- PASS: TestRateLimiterFeedback_400DoesNotCountAsSuccess (1.00s) > FAIL For full logs, run: nix log /nix/store/mxg17yc2rgr3l7r36njkdb7p32d2bqb8-niks3-go-unit-tests.drv