this derivation will be built: /nix/store/kcc62ssqkx2r3raf7ly3mpzyygdi831j-niks3-go-unit-tests.drv building '/nix/store/kcc62ssqkx2r3raf7ly3mpzyygdi831j-niks3-go-unit-tests.drv' niks3-go-unit-tests> tribuchet: building on mac02 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 TestRunGarbageCollection_FinishedOnAnotherReplica niks3-go-unit-tests> === PAUSE TestRunGarbageCollection_FinishedOnAnotherReplica niks3-go-unit-tests> === RUN TestRunGarbageCollection_NotFoundAfterLocalRun niks3-go-unit-tests> === PAUSE TestRunGarbageCollection_NotFoundAfterLocalRun 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.44s) 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 TestRetryTimeoutOutlastsMaxRetries niks3-go-unit-tests> === PAUSE TestRetryTimeoutOutlastsMaxRetries 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 TestStreamPushStopsWhenCanceled niks3-go-unit-tests> === PAUSE TestStreamPushStopsWhenCanceled 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 TestScriptTokenScriptFails niks3-go-unit-tests> === CONT TestPathInfoHashCompatibility niks3-go-unit-tests> === RUN TestPathInfoHashCompatibility/old_string_format_with_dash_(SRI) niks3-go-unit-tests> === CONT TestDoWithRetry_BodyReplayedViaGetBody niks3-go-unit-tests> === CONT TestEncodeNixBase32 niks3-go-unit-tests> === RUN TestEncodeNixBase32/test_string_hash niks3-go-unit-tests> === PAUSE TestEncodeNixBase32/test_string_hash niks3-go-unit-tests> === RUN TestEncodeNixBase32/empty_input niks3-go-unit-tests> === CONT TestResolveStorePath 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> === 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 TestRateLimiterFeedback/400_does_not_enable_limiter niks3-go-unit-tests> === PAUSE TestRateLimiterFeedback/400_does_not_enable_limiter niks3-go-unit-tests> === CONT TestClientSignaturesByStorePath niks3-go-unit-tests> --- PASS: TestClientSignaturesByStorePath (0.00s) niks3-go-unit-tests> === CONT TestStreamPushReportsSignatures niks3-go-unit-tests> === CONT TestPathInfoCACompatibility niks3-go-unit-tests> === RUN TestPathInfoCACompatibility/null_ca_field niks3-go-unit-tests> === PAUSE TestPathInfoCACompatibility/null_ca_field niks3-go-unit-tests> === RUN TestPathInfoCACompatibility/old_string_format_-_text niks3-go-unit-tests> === PAUSE TestPathInfoCACompatibility/old_string_format_-_text niks3-go-unit-tests> === RUN TestPathInfoCACompatibility/old_string_format_-_fixed_recursive niks3-go-unit-tests> === CONT TestParsePathInfoJSONMultiplePaths niks3-go-unit-tests> === PAUSE TestPathInfoCACompatibility/old_string_format_-_fixed_recursive niks3-go-unit-tests> === RUN TestPathInfoCACompatibility/new_structured_format_-_text niks3-go-unit-tests> === PAUSE TestPathInfoCACompatibility/new_structured_format_-_text niks3-go-unit-tests> === RUN TestPathInfoCACompatibility/new_structured_format_-_nar_method niks3-go-unit-tests> === RUN TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Rate limiter enabled after throttle name=server-test rate=5 niks3-go-unit-tests> === PAUSE TestPathInfoCACompatibility/new_structured_format_-_nar_method niks3-go-unit-tests> === CONT TestScriptTokenBadJSON niks3-go-unit-tests> === CONT TestScriptTokenEmptyToken niks3-go-unit-tests> --- PASS: TestResolveStorePath (0.00s) 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 TestStaticToken niks3-go-unit-tests> === CONT TestSetClientTLSErrors niks3-go-unit-tests> === CONT TestSetClientTLSDoesNotMutateDefaultTransport niks3-go-unit-tests> === CONT TestSetClientTLS niks3-go-unit-tests> === CONT TestStreamPushStopsWhenCanceled niks3-go-unit-tests> 2026/10/08 17:03:09 ERROR Upload failed error=boom count=1 niks3-go-unit-tests> === PAUSE TestPathInfoHashCompatibility/old_string_format_with_dash_(SRI) niks3-go-unit-tests> === CONT TestScriptTokenEmptyCommand niks3-go-unit-tests> === PAUSE TestEncodeNixBase32/empty_input niks3-go-unit-tests> === CONT TestParsePathInfoJSON niks3-go-unit-tests> === PAUSE TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths niks3-go-unit-tests> === CONT TestStreamPushRequestLine niks3-go-unit-tests> === CONT TestStreamPushGivesUpOnDeadServer niks3-go-unit-tests> === CONT TestStreamPushReportsEveryPath niks3-go-unit-tests> === RUN TestPathInfoHashCompatibility/old_string_format_with_colon niks3-go-unit-tests> === PAUSE TestPathInfoHashCompatibility/old_string_format_with_colon niks3-go-unit-tests> === CONT TestShellSplitErrors niks3-go-unit-tests> === CONT TestShellSplit niks3-go-unit-tests> 2026/10/08 17:03:09 ERROR Upload failed error="connection refused" count=20 niks3-go-unit-tests> === CONT TestRetryTimeoutOutlastsMaxRetries niks3-go-unit-tests> === RUN TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths niks3-go-unit-tests> === PAUSE TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths niks3-go-unit-tests> === RUN TestParsePathInfoJSON/Nix_format niks3-go-unit-tests> === PAUSE TestParsePathInfoJSON/Nix_format niks3-go-unit-tests> === RUN TestParsePathInfoJSON/Lix_format niks3-go-unit-tests> === PAUSE TestParsePathInfoJSON/Lix_format niks3-go-unit-tests> === RUN TestParsePathInfoJSON/empty_input niks3-go-unit-tests> === CONT TestDumpPathMatchesNix niks3-go-unit-tests> === RUN TestPathInfoHashCompatibility/new_structured_format_-_converts_to_SRI niks3-go-unit-tests> 2026/10/08 17:03:09 ERROR Server seems unavailable, giving up on batch untried=17 niks3-go-unit-tests> === CONT TestStreamPushBatchesUnderLoad niks3-go-unit-tests> --- PASS: TestStreamPushReportsSignatures (0.00s) niks3-go-unit-tests> --- PASS: TestStaticToken (0.00s) niks3-go-unit-tests> --- PASS: TestStreamPushReportsEveryPath (0.00s) niks3-go-unit-tests> --- PASS: TestStreamPushStopsWhenCanceled (0.00s) niks3-go-unit-tests> --- PASS: TestScriptTokenEmptyCommand (0.00s) niks3-go-unit-tests> --- PASS: TestShellSplitErrors (0.00s) niks3-go-unit-tests> --- PASS: TestShellSplit (0.00s) niks3-go-unit-tests> === PAUSE TestParsePathInfoJSON/empty_input niks3-go-unit-tests> === CONT TestDumpPathWriterError niks3-go-unit-tests> === CONT TestStreamPushIsolatesFailures niks3-go-unit-tests> 2026/10/08 17:03:09 ERROR Upload failed error=boom count=1 niks3-go-unit-tests> === CONT TestDumpPathSingleFile niks3-go-unit-tests> --- PASS: TestFileTokenMissing (0.00s) niks3-go-unit-tests> === CONT TestRunGarbageCollection_NotFoundAfterLocalRun niks3-go-unit-tests> --- PASS: TestFileTokenEmpty (0.00s) niks3-go-unit-tests> === CONT TestFilterOversizedClosures niks3-go-unit-tests> --- PASS: TestScriptTokenScriptFails (0.01s) niks3-go-unit-tests> === CONT TestCaseHackSuffix niks3-go-unit-tests> --- PASS: TestFileTokenReadsAndCaches (0.01s) niks3-go-unit-tests> === CONT TestUploadMultipart_PartsInParallel niks3-go-unit-tests> --- PASS: TestSetClientTLSDoesNotMutateDefaultTransport (0.01s) niks3-go-unit-tests> === RUN TestParsePathInfoJSON/whitespace_only niks3-go-unit-tests> === RUN TestFilterOversizedClosures/no_limit_keeps_everything niks3-go-unit-tests> === PAUSE TestFilterOversizedClosures/no_limit_keeps_everything niks3-go-unit-tests> === PAUSE TestPathInfoHashCompatibility/new_structured_format_-_converts_to_SRI niks3-go-unit-tests> === RUN TestSetClientTLSErrors/missing_cert_file niks3-go-unit-tests> === RUN TestPathInfoHashCompatibility/new_structured_format_with_sha512 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> --- PASS: TestStreamPushGivesUpOnDeadServer (0.01s) niks3-go-unit-tests> === CONT TestGetStorePathHash niks3-go-unit-tests> === RUN TestGetStorePathHash/valid_store_path niks3-go-unit-tests> === PAUSE TestGetStorePathHash/valid_store_path niks3-go-unit-tests> === RUN TestGetStorePathHash/basename_without_hyphen_should_error niks3-go-unit-tests> === PAUSE TestParsePathInfoJSON/whitespace_only niks3-go-unit-tests> === RUN TestParsePathInfoJSON/invalid_JSON niks3-go-unit-tests> === CONT TestUploadMultipart_SupersededByPeer niks3-go-unit-tests> === RUN TestUploadMultipart_SupersededByPeer/exists niks3-go-unit-tests> 2026/10/08 17:03:09 ERROR Upload failed error="bad path" count=3 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> === PAUSE TestSetClientTLSErrors/missing_cert_file niks3-go-unit-tests> === PAUSE TestPathInfoHashCompatibility/new_structured_format_with_sha512 niks3-go-unit-tests> === RUN TestSetClientTLSErrors/missing_key_file niks3-go-unit-tests> === PAUSE TestSetClientTLSErrors/missing_key_file niks3-go-unit-tests> === PAUSE TestGetStorePathHash/basename_without_hyphen_should_error niks3-go-unit-tests> === PAUSE TestFilterOversizedClosures/all_closures_skipped niks3-go-unit-tests> === CONT TestRunGarbageCollection_FinishedOnAnotherReplica niks3-go-unit-tests> === RUN TestSetClientTLSErrors/missing_ca_file niks3-go-unit-tests> === CONT TestEncodeNixBase32WithRealHash niks3-go-unit-tests> === CONT TestRateLimiterFeedback/429_enables_limiter niks3-go-unit-tests> === PAUSE TestParsePathInfoJSON/invalid_JSON niks3-go-unit-tests> === PAUSE TestSetClientTLSErrors/missing_ca_file niks3-go-unit-tests> === CONT TestPartSizeForNAR niks3-go-unit-tests> === CONT TestRateLimiterFeedback/503_enables_limiter niks3-go-unit-tests> === RUN TestPartSizeForNAR/zero_stays_at_minimum niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Request returned retryable status, retrying attempt=1 backoff=1ms status=502 url=http://127.0.0.1:54070 niks3-go-unit-tests> --- PASS: TestDoServerRequestAttachesToken (0.02s) niks3-go-unit-tests> === CONT TestRegisterUploadedObjectReusesConnections niks3-go-unit-tests> === PAUSE TestPartSizeForNAR/zero_stays_at_minimum 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> === PAUSE TestPartSizeForNAR/5_TiB_S3_max_object niks3-go-unit-tests> === RUN TestPartSizeForNAR/capped_at_5_GiB niks3-go-unit-tests> === PAUSE TestPartSizeForNAR/capped_at_5_GiB niks3-go-unit-tests> === CONT TestRateLimiterFeedback/400_does_not_enable_limiter niks3-go-unit-tests> --- PASS: TestStreamPushIsolatesFailures (0.00s) niks3-go-unit-tests> --- PASS: TestEncodeNixBase32WithRealHash (0.00s) niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Rate limiter enabled after throttle name=server-test rate=5 niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Request returned retryable status, retrying attempt=1 backoff=0s status=503 url=http://127.0.0.1:54067 niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Rate limiter backed off name=server-test rate=5 niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Request returned retryable status, retrying attempt=2 backoff=0s status=503 url=http://127.0.0.1:54067 niks3-go-unit-tests> === RUN TestGetStorePathHash/hash_with_invalid_characters_should_error niks3-go-unit-tests> === PAUSE TestGetStorePathHash/hash_with_invalid_characters_should_error niks3-go-unit-tests> === RUN TestGetStorePathHash/hash_with_wrong_length_should_error niks3-go-unit-tests> === PAUSE TestGetStorePathHash/hash_with_wrong_length_should_error niks3-go-unit-tests> === CONT TestConvertHashToNix32 niks3-go-unit-tests> === RUN TestConvertHashToNix32/SRI_format_to_Nix32 niks3-go-unit-tests> === PAUSE TestConvertHashToNix32/SRI_format_to_Nix32 niks3-go-unit-tests> === RUN TestConvertHashToNix32/already_Nix32_format niks3-go-unit-tests> === PAUSE TestConvertHashToNix32/already_Nix32_format niks3-go-unit-tests> === RUN TestConvertHashToNix32/invalid_format niks3-go-unit-tests> === PAUSE TestConvertHashToNix32/invalid_format niks3-go-unit-tests> === CONT TestRateLimiterFeedback/200_does_not_enable_limiter niks3-go-unit-tests> === RUN TestSetClientTLSErrors/invalid_ca_file niks3-go-unit-tests> === PAUSE TestSetClientTLSErrors/invalid_ca_file niks3-go-unit-tests> === CONT TestPathInfoCACompatibility/new_structured_format_-_nar_method niks3-go-unit-tests> 2026/10/08 17:03:09 INFO Garbage collection started niks3-go-unit-tests> === CONT TestPathInfoCACompatibility/new_structured_format_-_text niks3-go-unit-tests> === CONT TestPathInfoCACompatibility/old_string_format_-_fixed_recursive niks3-go-unit-tests> === CONT TestPathInfoCACompatibility/old_string_format_-_text niks3-go-unit-tests> === CONT TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths niks3-go-unit-tests> === CONT TestPathInfoCACompatibility/null_ca_field niks3-go-unit-tests> --- PASS: TestPathInfoCACompatibility (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: TestPathInfoCACompatibility/old_string_format_-_fixed_recursive (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoCACompatibility/old_string_format_-_text (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoCACompatibility/null_ca_field (0.00s) niks3-go-unit-tests> === CONT TestEncodeNixBase32/test_string_hash niks3-go-unit-tests> === CONT TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths niks3-go-unit-tests> --- PASS: TestParsePathInfoJSONMultiplePaths (0.01s) niks3-go-unit-tests> --- PASS: TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths (0.00s) niks3-go-unit-tests> --- PASS: TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths (0.00s) niks3-go-unit-tests> === CONT TestEncodeNixBase32/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> === CONT TestUploadMultipart_SupersededByPeer/exists niks3-go-unit-tests> === CONT TestUploadMultipart_SupersededByPeer/missing niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Rate limiter enabled after throttle name=server-test rate=5 niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Request returned retryable status, retrying attempt=1 backoff=0s status=429 url=http://127.0.0.1:54077 niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Request returned retryable status, retrying attempt=2 backoff=1ms status=502 url=http://127.0.0.1:54070 niks3-go-unit-tests> --- PASS: TestDoWithRetry_BodyReplayedViaGetBody (0.02s) niks3-go-unit-tests> === CONT TestPathInfoHashCompatibility/old_string_format_with_dash_(SRI) niks3-go-unit-tests> === CONT TestPathInfoHashCompatibility/new_structured_format_with_sha512 niks3-go-unit-tests> 2026/10/08 17:03:09 INFO Garbage collection started niks3-go-unit-tests> --- PASS: TestScriptTokenBadJSON (0.02s) 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 TestFilterOversizedClosures/no_limit_keeps_everything niks3-go-unit-tests> === CONT TestFilterOversizedClosures/all_closures_skipped niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Skipping closure: path exceeds server max NAR size top_level_path=/nix/store/cccccccccccccccccccccccccccccccc-wrapper oversized_path=/nix/store/cccccccccccccccccccccccccccccccc-wrapper nar_size=100 max_nar_size=50 niks3-go-unit-tests> === CONT TestFilterOversizedClosures/closure_with_oversized_dependency_is_skipped niks3-go-unit-tests> 2026/10/08 17:03:09 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> --- PASS: TestFilterOversizedClosures (0.01s) niks3-go-unit-tests> --- PASS: TestFilterOversizedClosures/no_limit_keeps_everything (0.00s) niks3-go-unit-tests> --- PASS: TestFilterOversizedClosures/all_closures_skipped (0.00s) niks3-go-unit-tests> --- PASS: TestFilterOversizedClosures/closure_with_oversized_dependency_is_skipped (0.00s) niks3-go-unit-tests> === CONT TestParsePathInfoJSON/Nix_format niks3-go-unit-tests> === CONT TestParsePathInfoJSON/whitespace_only niks3-go-unit-tests> === CONT TestParsePathInfoJSON/invalid_JSON niks3-go-unit-tests> === CONT TestParsePathInfoJSON/empty_input niks3-go-unit-tests> === CONT TestParsePathInfoJSON/Lix_format niks3-go-unit-tests> --- PASS: TestParsePathInfoJSON (0.01s) 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/empty_input (0.00s) niks3-go-unit-tests> --- PASS: TestParsePathInfoJSON/Lix_format (0.00s) niks3-go-unit-tests> === CONT TestPartSizeForNAR/zero_stays_at_minimum niks3-go-unit-tests> === CONT TestPartSizeForNAR/1_TiB niks3-go-unit-tests> === CONT TestPartSizeForNAR/capped_at_5_GiB 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> === CONT TestPartSizeForNAR/small_stays_at_minimum niks3-go-unit-tests> --- PASS: TestPathInfoHashCompatibility (0.02s) 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> === CONT TestGetStorePathHash/valid_store_path niks3-go-unit-tests> === CONT TestPartSizeForNAR/115_GiB_needs_larger_parts niks3-go-unit-tests> --- PASS: TestPartSizeForNAR (0.00s) niks3-go-unit-tests> --- PASS: TestPartSizeForNAR/zero_stays_at_minimum (0.00s) niks3-go-unit-tests> --- PASS: TestPartSizeForNAR/1_TiB (0.00s) niks3-go-unit-tests> --- PASS: TestPartSizeForNAR/capped_at_5_GiB (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: TestPartSizeForNAR/small_stays_at_minimum (0.00s) niks3-go-unit-tests> --- PASS: TestPartSizeForNAR/115_GiB_needs_larger_parts (0.00s) niks3-go-unit-tests> === CONT TestConvertHashToNix32/SRI_format_to_Nix32 niks3-go-unit-tests> === CONT TestGetStorePathHash/hash_with_wrong_length_should_error niks3-go-unit-tests> === CONT TestGetStorePathHash/basename_without_hyphen_should_error niks3-go-unit-tests> === CONT TestGetStorePathHash/hash_with_invalid_characters_should_error niks3-go-unit-tests> --- PASS: TestGetStorePathHash (0.00s) niks3-go-unit-tests> --- PASS: TestGetStorePathHash/valid_store_path (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: TestGetStorePathHash/hash_with_invalid_characters_should_error (0.00s) niks3-go-unit-tests> === CONT TestSetClientTLSErrors/missing_cert_file niks3-go-unit-tests> === CONT TestConvertHashToNix32/invalid_format niks3-go-unit-tests> === CONT TestSetClientTLSErrors/invalid_ca_file niks3-go-unit-tests> === CONT TestConvertHashToNix32/already_Nix32_format niks3-go-unit-tests> --- PASS: TestConvertHashToNix32 (0.00s) niks3-go-unit-tests> --- PASS: TestConvertHashToNix32/SRI_format_to_Nix32 (0.00s) niks3-go-unit-tests> --- PASS: TestConvertHashToNix32/invalid_format (0.00s) niks3-go-unit-tests> --- PASS: TestConvertHashToNix32/already_Nix32_format (0.00s) niks3-go-unit-tests> === CONT TestSetClientTLSErrors/missing_ca_file niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Rate limiter backed off name=server-test rate=5 niks3-go-unit-tests> === CONT TestSetClientTLSErrors/missing_key_file niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Rate limiter enabled after throttle name=server-test rate=5 niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Request returned retryable status, retrying attempt=1 backoff=0s status=503 url=http://127.0.0.1:54136 niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Request returned retryable status, retrying attempt=1 backoff=1ms status=502 url=http://127.0.0.1:54070 niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Rate limiter backed off name=server-test rate=5 niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback (0.00s) niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback/400_does_not_enable_limiter (0.00s) niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback/200_does_not_enable_limiter (0.00s) niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback/503_enables_limiter (0.01s) niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback/429_enables_limiter (0.01s) niks3-go-unit-tests> --- PASS: TestSetClientTLSErrors (0.01s) niks3-go-unit-tests> --- PASS: TestSetClientTLSErrors/missing_cert_file (0.00s) niks3-go-unit-tests> --- PASS: TestSetClientTLSErrors/missing_ca_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: TestRunGarbageCollection_NotFoundAfterLocalRun (0.02s) niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Request returned retryable status, retrying attempt=2 backoff=1ms status=502 url=http://127.0.0.1:54070 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> === RUN TestSetClientTLS/preserves_debug_logging_transport niks3-go-unit-tests> === PAUSE TestSetClientTLS/preserves_debug_logging_transport niks3-go-unit-tests> === CONT TestSetClientTLS/rejects_connection_without_client_cert niks3-go-unit-tests> --- PASS: TestScriptTokenEmptyToken (0.03s) 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> 2026/10/08 17:03:09 INFO Garbage collection progress phase=running_on_another_replica failed_uploads_deleted=0 old_closures_deleted=0 objects_marked=0 objects_deleted=0 objects_failed=0 niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Request returned retryable status, retrying attempt=3 backoff=1ms status=502 url=http://127.0.0.1:54070 niks3-go-unit-tests> --- PASS: TestUploadMultipart_SupersededByPeer (0.00s) niks3-go-unit-tests> --- PASS: TestUploadMultipart_SupersededByPeer/exists (0.01s) niks3-go-unit-tests> --- PASS: TestUploadMultipart_SupersededByPeer/missing (0.01s) niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Garbage collection finished on another replica. Its statistics are not available here niks3-go-unit-tests> --- PASS: TestRunGarbageCollection_FinishedOnAnotherReplica (0.02s) niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Request returned retryable status, retrying attempt=4 backoff=1ms status=502 url=http://127.0.0.1:54070 niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Request returned retryable status, retrying attempt=5 backoff=1ms status=502 url=http://127.0.0.1:54070 niks3-go-unit-tests> --- PASS: TestStreamPushRequestLine (0.03s) niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Request returned retryable status, retrying attempt=6 backoff=1ms status=502 url=http://127.0.0.1:54070 niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Request returned retryable status, retrying attempt=7 backoff=1ms status=502 url=http://127.0.0.1:54070 niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Request returned retryable status, retrying attempt=8 backoff=1ms status=502 url=http://127.0.0.1:54070 niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Request returned retryable status, retrying attempt=9 backoff=1ms status=502 url=http://127.0.0.1:54070 niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Request returned retryable status, retrying attempt=10 backoff=1ms status=502 url=http://127.0.0.1:54070 niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Request returned retryable status, retrying attempt=11 backoff=1ms status=502 url=http://127.0.0.1:54070 niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Request returned retryable status, retrying attempt=12 backoff=1ms status=502 url=http://127.0.0.1:54070 niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Request returned retryable status, retrying attempt=13 backoff=1ms status=502 url=http://127.0.0.1:54070 niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Request returned retryable status, retrying attempt=14 backoff=1ms status=502 url=http://127.0.0.1:54070 niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Request returned retryable status, retrying attempt=15 backoff=1ms status=502 url=http://127.0.0.1:54070 niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Request returned retryable status, retrying attempt=16 backoff=1ms status=502 url=http://127.0.0.1:54070 niks3-go-unit-tests> --- PASS: TestScriptTokenCachesUntilRefresh (0.05s) niks3-go-unit-tests> 2026/10/08 17:03:09 http: TLS handshake error from 127.0.0.1:54160: read tcp 127.0.0.1:54145->127.0.0.1:54160: use of closed network connection niks3-go-unit-tests> --- PASS: TestSetClientTLS (0.03s) niks3-go-unit-tests> --- PASS: TestSetClientTLS/preserves_debug_logging_transport (0.00s) niks3-go-unit-tests> --- PASS: TestSetClientTLS/succeeds_with_client_cert_and_CA (0.01s) niks3-go-unit-tests> --- PASS: TestSetClientTLS/rejects_connection_without_client_cert (0.03s) niks3-go-unit-tests> 2026/10/08 17:03:09 WARN Request returned retryable status, retrying attempt=17 backoff=1ms status=502 url=http://127.0.0.1:54070 niks3-go-unit-tests> --- PASS: TestRegisterUploadedObjectReusesConnections (0.04s) niks3-go-unit-tests> --- PASS: TestScriptTokenNoExpiryRerunsEveryCall (0.06s) niks3-go-unit-tests> --- PASS: TestRetryTimeoutOutlastsMaxRetries (0.06s) niks3-go-unit-tests> --- PASS: TestDumpPathWriterError (0.05s) niks3-go-unit-tests> --- PASS: TestDumpPathSingleFile (0.07s) niks3-go-unit-tests> --- PASS: TestCaseHackSuffix (0.08s) niks3-go-unit-tests> --- PASS: TestDumpPathMatchesNix (0.09s) niks3-go-unit-tests> --- PASS: TestStreamPushBatchesUnderLoad (0.10s) niks3-go-unit-tests> --- PASS: TestUploadMultipart_PartsInParallel (0.62s) niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback_400DoesNotCountAsSuccess (1.01s) niks3-go-unit-tests> PASS niks3-go-unit-tests> Running server tests... niks3-go-unit-tests> The files belonging to this database system will be owned by user "_tribuchetbld3". niks3-go-unit-tests> This user must also own the server process. niks3-go-unit-tests> niks3-go-unit-tests> The database cluster will be initialized with locale "C". niks3-go-unit-tests> The default database encoding has accordingly been set to "SQL_ASCII". niks3-go-unit-tests> The default text search configuration will be set to "english". niks3-go-unit-tests> niks3-go-unit-tests> Data page checksums are enabled. niks3-go-unit-tests> niks3-go-unit-tests> creating directory /private/var/tb/3/scratch/ec71b307c420129e/build/postgres2819432535/data ... ok niks3-go-unit-tests> creating subdirectories ... ok niks3-go-unit-tests> selecting dynamic shared memory implementation ... posix niks3-go-unit-tests> selecting default "max_connections" ... 100 niks3-go-unit-tests> selecting default "shared_buffers" ... 128MB niks3-go-unit-tests> selecting default time zone ... UTC niks3-go-unit-tests> creating configuration files ... ok niks3-go-unit-tests> running bootstrap script ... ok niks3-go-unit-tests> performing post-bootstrap initialization ... ok niks3-go-unit-tests> syncing data to disk ... ok niks3-go-unit-tests> niks3-go-unit-tests> initdb: warning: enabling "trust" authentication for local connections niks3-go-unit-tests> initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb. niks3-go-unit-tests> niks3-go-unit-tests> Success. You can now start the database server using: niks3-go-unit-tests> niks3-go-unit-tests> pg_ctl -D /private/var/tb/3/scratch/ec71b307c420129e/build/postgres2819432535/data -l logfile start niks3-go-unit-tests> niks3-go-unit-tests> 2026-10-08 17:03:11.576 UTC [67677] LOG: starting PostgreSQL 18.6 on aarch64-apple-darwin25.6.0, compiled by clang version 21.1.8, 64-bit niks3-go-unit-tests> 2026-10-08 17:03:11.577 UTC [67677] LOG: listening on Unix socket "/private/var/tb/3/scratch/ec71b307c420129e/build/postgres2819432535/.s.PGSQL.5432" niks3-go-unit-tests> 2026-10-08 17:03:11.579 UTC [67684] LOG: database system was shut down at 2026-10-08 17:03:11 UTC niks3-go-unit-tests> 2026-10-08 17:03:11.579 UTC [67685] FATAL: the database system is starting up niks3-go-unit-tests> /private/var/tb/3/scratch/ec71b307c420129e/build/postgres2819432535:5432 - rejecting connections niks3-go-unit-tests> 2026-10-08 17:03:11.579 UTC [67677] LOG: database system is ready to accept connections niks3-go-unit-tests> /private/var/tb/3/scratch/ec71b307c420129e/build/postgres2819432535:5432 - accepting connections niks3-go-unit-tests> {"timestamp":"2026-10-08T17:03:11.838188Z","level":"ERROR","message":"HTTP request completed","event":"http_request_completed","component":"server","subsystem":"http","request_id":"95ecd863-72fc-45aa-8068-b416faef08f8","trace_id":"unknown","span_id":"unknown","peer_addr":"127.0.0.1","method":"GET","uri":"/health/ready","status_code":503,"suppressed_errors":0,"duration_ms":9,"result":"server_error","target":"rustfs::server::http","filename":"rustfs/src/server/layer.rs","line_number":501,"threadName":"rustfs-worker","threadId":"ThreadId(4)"} niks3-go-unit-tests> {"timestamp":"2026-10-08T17:03:11.950931Z","level":"ERROR","message":"HTTP request completed","event":"http_request_completed","component":"server","subsystem":"http","request_id":"3ae8b835-3b07-4b37-ac0f-3ffe11371fc6","trace_id":"unknown","span_id":"unknown","peer_addr":"127.0.0.1","method":"GET","uri":"/health/ready","status_code":503,"suppressed_errors":0,"duration_ms":0,"result":"server_error","target":"rustfs::server::http","filename":"rustfs/src/server/layer.rs","line_number":501,"threadName":"rustfs-worker","threadId":"ThreadId(4)"} niks3-go-unit-tests> === RUN TestService_AuthMiddleware niks3-go-unit-tests> === PAUSE TestService_AuthMiddleware niks3-go-unit-tests> === RUN TestService_AuthMiddleware_MTLSProxyHeader niks3-go-unit-tests> === PAUSE TestService_AuthMiddleware_MTLSProxyHeader niks3-go-unit-tests> === RUN TestService_AuthMiddleware_MTLSBoundSubjects niks3-go-unit-tests> === PAUSE TestService_AuthMiddleware_MTLSBoundSubjects niks3-go-unit-tests> === RUN TestService_ReadAuthMiddleware niks3-go-unit-tests> === PAUSE TestService_ReadAuthMiddleware niks3-go-unit-tests> === RUN TestService_AuthMiddleware_OIDC niks3-go-unit-tests> === PAUSE TestService_AuthMiddleware_OIDC niks3-go-unit-tests> === RUN TestService_RequireScope_OIDC niks3-go-unit-tests> === PAUSE TestService_RequireScope_OIDC niks3-go-unit-tests> === RUN TestService_ReadScope_PublicByDefault niks3-go-unit-tests> === PAUSE TestService_ReadScope_PublicByDefault niks3-go-unit-tests> === RUN TestCacheConfigHandler niks3-go-unit-tests> === PAUSE TestCacheConfigHandler niks3-go-unit-tests> === RUN TestCacheStatsHandler niks3-go-unit-tests> === PAUSE TestCacheStatsHandler niks3-go-unit-tests> === RUN TestClientCADerivations niks3-go-unit-tests> === PAUSE TestClientCADerivations niks3-go-unit-tests> === RUN TestClientErrorHandling niks3-go-unit-tests> === PAUSE TestClientErrorHandling niks3-go-unit-tests> === RUN TestClientIntegration niks3-go-unit-tests> === PAUSE TestClientIntegration niks3-go-unit-tests> === RUN TestClientMultipleUploads niks3-go-unit-tests> === PAUSE TestClientMultipleUploads niks3-go-unit-tests> === RUN TestClientWithDependencies niks3-go-unit-tests> === PAUSE TestClientWithDependencies niks3-go-unit-tests> === RUN TestClientSharedPathCommittedMidPush niks3-go-unit-tests> === PAUSE TestClientSharedPathCommittedMidPush niks3-go-unit-tests> === RUN TestPinProtectsFromGC niks3-go-unit-tests> === PAUSE TestPinProtectsFromGC niks3-go-unit-tests> === RUN TestClientPushesUseOnePush niks3-go-unit-tests> === PAUSE TestClientPushesUseOnePush niks3-go-unit-tests> === RUN TestClientFallsBackToClosures niks3-go-unit-tests> === PAUSE TestClientFallsBackToClosures niks3-go-unit-tests> === RUN TestDeleteClosuresRacingPins niks3-go-unit-tests> === PAUSE TestDeleteClosuresRacingPins niks3-go-unit-tests> === RUN TestConcurrentCommitsSharingObjectsDoNotDeadlock niks3-go-unit-tests> === PAUSE TestConcurrentCommitsSharingObjectsDoNotDeadlock niks3-go-unit-tests> === RUN TestResolveDBConnectionString niks3-go-unit-tests> === PAUSE TestResolveDBConnectionString niks3-go-unit-tests> === RUN TestConnectWaitsForAPeerMigration niks3-go-unit-tests> === PAUSE TestConnectWaitsForAPeerMigration niks3-go-unit-tests> === RUN TestLeadElectsOneAndHandsOver niks3-go-unit-tests> === PAUSE TestLeadElectsOneAndHandsOver niks3-go-unit-tests> === RUN TestLeadIncumbentWinsAfterRestart niks3-go-unit-tests> 2026/10/08 17:03:12 INFO lead: acquired remote=192.0.2.1:1234 niks3-go-unit-tests> 2026/10/08 17:03:13 INFO lead: released remote=192.0.2.1:1234 niks3-go-unit-tests> 2026/10/08 17:03:13 INFO lead: acquired remote=192.0.2.1:1234 niks3-go-unit-tests> 2026/10/08 17:03:14 INFO lead: released remote=192.0.2.1:1234 niks3-go-unit-tests> --- PASS: TestLeadIncumbentWinsAfterRestart (2.10s) niks3-go-unit-tests> === RUN TestLeadIncumbentAnnouncesAtOnce niks3-go-unit-tests> === PAUSE TestLeadIncumbentAnnouncesAtOnce niks3-go-unit-tests> === RUN TestLeadEndsOnShutdown niks3-go-unit-tests> === PAUSE TestLeadEndsOnShutdown niks3-go-unit-tests> === RUN TestLeadEndsWhenItsConnectionHangs niks3-go-unit-tests> 2026/10/08 17:03:14 INFO lead: acquired remote=192.0.2.1:1234 niks3-go-unit-tests> 2026-10-08 17:03:15.728 UTC [67720] FATAL: terminating connection due to administrator command niks3-go-unit-tests> 2026/10/08 17:03:15 INFO lead: acquired remote=192.0.2.1:1234 niks3-go-unit-tests> 2026/10/08 17:03:16 WARN lead: lock connection lost error="timeout: context deadline exceeded" niks3-go-unit-tests> 2026/10/08 17:03:16 INFO lead: released remote=192.0.2.1:1234 niks3-go-unit-tests> 2026/10/08 17:03:17 INFO lead: released remote=192.0.2.1:1234 niks3-go-unit-tests> --- PASS: TestLeadEndsWhenItsConnectionHangs (2.97s) niks3-go-unit-tests> === RUN TestGCAdvisoryLockBlocksConcurrentRun niks3-go-unit-tests> === PAUSE TestGCAdvisoryLockBlocksConcurrentRun niks3-go-unit-tests> === RUN TestGCBugBareHashReferences niks3-go-unit-tests> === PAUSE TestGCBugBareHashReferences niks3-go-unit-tests> === RUN TestGCMetrics niks3-go-unit-tests> === PAUSE TestGCMetrics niks3-go-unit-tests> === RUN TestPushDedupSurvivesConcurrentGC niks3-go-unit-tests> === PAUSE TestPushDedupSurvivesConcurrentGC niks3-go-unit-tests> === RUN TestDeduplicatedObjectsRecordedAsPending niks3-go-unit-tests> === PAUSE TestDeduplicatedObjectsRecordedAsPending niks3-go-unit-tests> === RUN TestGCSweepSkipsPendingObjects niks3-go-unit-tests> === PAUSE TestGCSweepSkipsPendingObjects niks3-go-unit-tests> === RUN TestTombstonedObjectOfferedWithoutWaiting niks3-go-unit-tests> === PAUSE TestTombstonedObjectOfferedWithoutWaiting niks3-go-unit-tests> === RUN TestGCSweepDeliversEachKeyOnce niks3-go-unit-tests> === PAUSE TestGCSweepDeliversEachKeyOnce niks3-go-unit-tests> === RUN TestCreatePendingClosureVerifyS3FailureReleasesConnection niks3-go-unit-tests> === PAUSE TestCreatePendingClosureVerifyS3FailureReleasesConnection niks3-go-unit-tests> === RUN TestForceGCDuringPushOffersSweptObject niks3-go-unit-tests> === PAUSE TestForceGCDuringPushOffersSweptObject niks3-go-unit-tests> === RUN TestFailedS3DeleteKeepsTombstone niks3-go-unit-tests> === PAUSE TestFailedS3DeleteKeepsTombstone niks3-go-unit-tests> === RUN TestSweepSkipsRowsLockedByPush niks3-go-unit-tests> === PAUSE TestSweepSkipsRowsLockedByPush niks3-go-unit-tests> === RUN TestRegisterCompletedObjectNeedsPendingRow niks3-go-unit-tests> === PAUSE TestRegisterCompletedObjectNeedsPendingRow niks3-go-unit-tests> === RUN TestGetExistingObjectsLocksRows niks3-go-unit-tests> === PAUSE TestGetExistingObjectsLocksRows niks3-go-unit-tests> === RUN TestSweepRechecksPendingAfterLocking niks3-go-unit-tests> === PAUSE TestSweepRechecksPendingAfterLocking niks3-go-unit-tests> === RUN TestPushWaitsForSweepHoldingRow niks3-go-unit-tests> === PAUSE TestPushWaitsForSweepHoldingRow niks3-go-unit-tests> === RUN TestCommitRacingPendingCleanupKeepsObjects niks3-go-unit-tests> === PAUSE TestCommitRacingPendingCleanupKeepsObjects niks3-go-unit-tests> === RUN TestGCEndsOnShutdown niks3-go-unit-tests> === PAUSE TestGCEndsOnShutdown niks3-go-unit-tests> === RUN TestGCTaskStore_StartNew niks3-go-unit-tests> === PAUSE TestGCTaskStore_StartNew niks3-go-unit-tests> === RUN TestGCTaskStore_DeduplicateSameParams niks3-go-unit-tests> === PAUSE TestGCTaskStore_DeduplicateSameParams niks3-go-unit-tests> === RUN TestGCTaskStore_ConflictDifferentParams niks3-go-unit-tests> === PAUSE TestGCTaskStore_ConflictDifferentParams niks3-go-unit-tests> === RUN TestGCTaskStore_GetEmpty niks3-go-unit-tests> === PAUSE TestGCTaskStore_GetEmpty niks3-go-unit-tests> === RUN TestGCTaskStore_GetReturnsLatest niks3-go-unit-tests> === PAUSE TestGCTaskStore_GetReturnsLatest niks3-go-unit-tests> === RUN TestGCTaskStore_CompletedAllowsNewTask niks3-go-unit-tests> === PAUSE TestGCTaskStore_CompletedAllowsNewTask niks3-go-unit-tests> === RUN TestGCTaskStore_PhaseUpdates niks3-go-unit-tests> === PAUSE TestGCTaskStore_PhaseUpdates niks3-go-unit-tests> === RUN TestGCTaskStore_Fail niks3-go-unit-tests> === PAUSE TestGCTaskStore_Fail niks3-go-unit-tests> === RUN TestGracefulShutdownDrainsInflight niks3-go-unit-tests> === PAUSE TestGracefulShutdownDrainsInflight niks3-go-unit-tests> === RUN TestService_healthCheckHandler niks3-go-unit-tests> === PAUSE TestService_healthCheckHandler niks3-go-unit-tests> === RUN TestService_readinessHandler niks3-go-unit-tests> === PAUSE TestService_readinessHandler niks3-go-unit-tests> === RUN TestGenerateLandingPage niks3-go-unit-tests> === PAUSE TestGenerateLandingPage niks3-go-unit-tests> === RUN TestCacheConfigHandlerMaxNarSize niks3-go-unit-tests> === PAUSE TestCacheConfigHandlerMaxNarSize niks3-go-unit-tests> === RUN TestCreatePendingClosureRejectsOversizedNAR niks3-go-unit-tests> === PAUSE TestCreatePendingClosureRejectsOversizedNAR niks3-go-unit-tests> === RUN TestNARDeduplicationMetadataUploadBug niks3-go-unit-tests> === PAUSE TestNARDeduplicationMetadataUploadBug niks3-go-unit-tests> === RUN TestMetricsInventory niks3-go-unit-tests> === PAUSE TestMetricsInventory niks3-go-unit-tests> === RUN TestMetricsCommit niks3-go-unit-tests> === PAUSE TestMetricsCommit niks3-go-unit-tests> === RUN TestService_NativeMTLS niks3-go-unit-tests> === PAUSE TestService_NativeMTLS niks3-go-unit-tests> === RUN TestServerTLSConfig niks3-go-unit-tests> === PAUSE TestServerTLSConfig niks3-go-unit-tests> === RUN TestMultipartCleanup niks3-go-unit-tests> === PAUSE TestMultipartCleanup niks3-go-unit-tests> === RUN TestMultipartUploadAbortedWhenCancelledBeforeRecorded niks3-go-unit-tests> === PAUSE TestMultipartUploadAbortedWhenCancelledBeforeRecorded niks3-go-unit-tests> === RUN TestPendingCleanupUsesOneCutoff niks3-go-unit-tests> === PAUSE TestPendingCleanupUsesOneCutoff niks3-go-unit-tests> === RUN TestObjectStatsTrigger niks3-go-unit-tests> === PAUSE TestObjectStatsTrigger niks3-go-unit-tests> === RUN TestObjectStatsLargeCommit niks3-go-unit-tests> === PAUSE TestObjectStatsLargeCommit niks3-go-unit-tests> === RUN TestOrphanedObjectsGC niks3-go-unit-tests> === PAUSE TestOrphanedObjectsGC niks3-go-unit-tests> === RUN TestOrphanedObjectsGCStressTest niks3-go-unit-tests> === PAUSE TestOrphanedObjectsGCStressTest niks3-go-unit-tests> === RUN TestCreatePin_ReservedPins niks3-go-unit-tests> === PAUSE TestCreatePin_ReservedPins niks3-go-unit-tests> === RUN TestPresentReportsOnlyClosureRoots niks3-go-unit-tests> === PAUSE TestPresentReportsOnlyClosureRoots niks3-go-unit-tests> === RUN TestPresentRefreshesOnlyStaleClosures niks3-go-unit-tests> === PAUSE TestPresentRefreshesOnlyStaleClosures niks3-go-unit-tests> === RUN TestPresentNotReportedWhileGCDeletesClosure niks3-go-unit-tests> === PAUSE TestPresentNotReportedWhileGCDeletesClosure niks3-go-unit-tests> === RUN TestParseSingleRange niks3-go-unit-tests> === PAUSE TestParseSingleRange niks3-go-unit-tests> === RUN TestProxyHeadersOnlyTrustedOnSocket niks3-go-unit-tests> 2026/10/08 17:03:17 INFO Starting HTTP server address=proxy.sock niks3-go-unit-tests> 2026/10/08 17:03:17 INFO Starting HTTP server address=127.0.0.1:54186 niks3-go-unit-tests> 2026/10/08 17:03:17 WARN mTLS auth: subject not in bound subjects subject="CN=someone" niks3-go-unit-tests> 2026/10/08 17:03:17 INFO Shutdown signal received, draining in-flight requests timeout=10s niks3-go-unit-tests> --- PASS: TestProxyHeadersOnlyTrustedOnSocket (0.17s) niks3-go-unit-tests> === RUN TestIsValidCachePath niks3-go-unit-tests> === PAUSE TestIsValidCachePath niks3-go-unit-tests> === RUN TestReadProxyNarinfo niks3-go-unit-tests> === PAUSE TestReadProxyNarinfo niks3-go-unit-tests> === RUN TestReadProxyNarinfoAlreadyDecompressed niks3-go-unit-tests> === PAUSE TestReadProxyNarinfoAlreadyDecompressed niks3-go-unit-tests> === RUN TestReadProxyContentNegotiation niks3-go-unit-tests> === PAUSE TestReadProxyContentNegotiation niks3-go-unit-tests> === RUN TestReadProxyNarStreaming niks3-go-unit-tests> === PAUSE TestReadProxyNarStreaming niks3-go-unit-tests> === RUN TestReadProxy404 niks3-go-unit-tests> === PAUSE TestReadProxy404 niks3-go-unit-tests> === RUN TestReadProxyInvalidPath niks3-go-unit-tests> === PAUSE TestReadProxyInvalidPath niks3-go-unit-tests> === RUN TestReadProxyHead niks3-go-unit-tests> === PAUSE TestReadProxyHead niks3-go-unit-tests> === RUN TestReadProxyOutlastsServerWriteTimeout niks3-go-unit-tests> === PAUSE TestReadProxyOutlastsServerWriteTimeout niks3-go-unit-tests> === RUN TestReadProxyConditionalGet niks3-go-unit-tests> === PAUSE TestReadProxyConditionalGet niks3-go-unit-tests> === RUN TestReadProxyRootRedirectsToIndexHTML niks3-go-unit-tests> === PAUSE TestReadProxyRootRedirectsToIndexHTML niks3-go-unit-tests> === RUN TestReadProxyDisabled niks3-go-unit-tests> === PAUSE TestReadProxyDisabled niks3-go-unit-tests> === RUN TestReadRedirectNar niks3-go-unit-tests> === PAUSE TestReadRedirectNar niks3-go-unit-tests> === RUN TestReadRedirectKeepsNarinfoProxied niks3-go-unit-tests> === PAUSE TestReadRedirectKeepsNarinfoProxied niks3-go-unit-tests> === RUN TestReadProxyRangeRequest niks3-go-unit-tests> === PAUSE TestReadProxyRangeRequest niks3-go-unit-tests> === RUN TestReadRedirectUsesPublicS3URL niks3-go-unit-tests> === PAUSE TestReadRedirectUsesPublicS3URL niks3-go-unit-tests> === RUN TestPush_OverlappingRootsStoreOneRowPerKey niks3-go-unit-tests> === PAUSE TestPush_OverlappingRootsStoreOneRowPerKey niks3-go-unit-tests> === RUN TestPush_CompleteCommitsEveryRoot niks3-go-unit-tests> === PAUSE TestPush_CompleteCommitsEveryRoot niks3-go-unit-tests> === RUN TestPush_RepeatedRootCommitsOnce niks3-go-unit-tests> === PAUSE TestPush_RepeatedRootCommitsOnce niks3-go-unit-tests> === RUN TestPush_CompleteWaitsForCleanupOfThePush niks3-go-unit-tests> === PAUSE TestPush_CompleteWaitsForCleanupOfThePush niks3-go-unit-tests> === RUN TestPush_RootsAreLockedInByteOrder niks3-go-unit-tests> === PAUSE TestPush_RootsAreLockedInByteOrder niks3-go-unit-tests> === RUN TestPush_SkippedKeySurvivesGCBeforeCommit niks3-go-unit-tests> === PAUSE TestPush_SkippedKeySurvivesGCBeforeCommit niks3-go-unit-tests> === RUN TestPush_RejectsBadRequests niks3-go-unit-tests> === PAUSE TestPush_RejectsBadRequests niks3-go-unit-tests> === RUN TestPush_SignsNarinfosOfItsPendingObjects niks3-go-unit-tests> === PAUSE TestPush_SignsNarinfosOfItsPendingObjects niks3-go-unit-tests> === RUN TestRedundantMultipartUpload niks3-go-unit-tests> === PAUSE TestRedundantMultipartUpload niks3-go-unit-tests> === RUN TestCompleteMultipartUpload_ErrorButObjectExists niks3-go-unit-tests> === PAUSE TestCompleteMultipartUpload_ErrorButObjectExists niks3-go-unit-tests> === RUN TestCompletedNarNotReofferedAcrossClosures niks3-go-unit-tests> === PAUSE TestCompletedNarNotReofferedAcrossClosures niks3-go-unit-tests> === RUN TestPresignedUploadRegisteredBeforeCommit niks3-go-unit-tests> === PAUSE TestPresignedUploadRegisteredBeforeCommit niks3-go-unit-tests> === RUN TestService_Rustfstest niks3-go-unit-tests> === PAUSE TestService_Rustfstest niks3-go-unit-tests> === RUN TestParseSize niks3-go-unit-tests> === PAUSE TestParseSize niks3-go-unit-tests> === RUN TestSkippedUploadsHandler niks3-go-unit-tests> === PAUSE TestSkippedUploadsHandler niks3-go-unit-tests> === RUN TestSystemdListenerNotActivated niks3-go-unit-tests> --- PASS: TestSystemdListenerNotActivated (0.00s) niks3-go-unit-tests> === RUN TestWatchdogBeatsWhenHealthy niks3-go-unit-tests> --- PASS: TestWatchdogBeatsWhenHealthy (0.03s) niks3-go-unit-tests> === RUN TestWatchdogSkipsWhenUnhealthy niks3-go-unit-tests> 2026/10/08 17:03:17 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/10/08 17:03:17 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/10/08 17:03:17 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/10/08 17:03:17 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/10/08 17:03:17 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/10/08 17:03:17 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/10/08 17:03:17 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/10/08 17:03:17 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/10/08 17:03:17 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/10/08 17:03:17 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> --- PASS: TestWatchdogSkipsWhenUnhealthy (0.20s) niks3-go-unit-tests> === RUN TestCompleteMultipartUploadHandler_RateLimitTriggersThrottle niks3-go-unit-tests> === PAUSE TestCompleteMultipartUploadHandler_RateLimitTriggersThrottle niks3-go-unit-tests> === RUN TestProxyWriteTimeout niks3-go-unit-tests> === PAUSE TestProxyWriteTimeout niks3-go-unit-tests> === RUN TestPendingClosureWriteTimeout niks3-go-unit-tests> === PAUSE TestPendingClosureWriteTimeout niks3-go-unit-tests> === RUN TestIsValidUploadKey niks3-go-unit-tests> === PAUSE TestIsValidUploadKey niks3-go-unit-tests> === RUN TestUploadHandlersRejectInvalidKeys niks3-go-unit-tests> === PAUSE TestUploadHandlersRejectInvalidKeys niks3-go-unit-tests> === RUN TestUploadHandlersRejectOversizedBody niks3-go-unit-tests> === PAUSE TestUploadHandlersRejectOversizedBody niks3-go-unit-tests> === RUN TestService_cleanupPendingClosuresHandler niks3-go-unit-tests> === PAUSE TestService_cleanupPendingClosuresHandler niks3-go-unit-tests> === RUN TestService_createPendingClosureHandler niks3-go-unit-tests> === PAUSE TestService_createPendingClosureHandler niks3-go-unit-tests> === RUN TestService_verifyS3Integrity niks3-go-unit-tests> === PAUSE TestService_verifyS3Integrity niks3-go-unit-tests> === RUN TestCompleteMultipartUnregistered niks3-go-unit-tests> === PAUSE TestCompleteMultipartUnregistered niks3-go-unit-tests> === RUN TestCreatePendingClosure_SmallNARUsesSimplePUT niks3-go-unit-tests> === PAUSE TestCreatePendingClosure_SmallNARUsesSimplePUT niks3-go-unit-tests> === CONT TestReadProxyHead niks3-go-unit-tests> === CONT TestRegisterCompletedObjectNeedsPendingRow niks3-go-unit-tests> === CONT TestPresentNotReportedWhileGCDeletesClosure niks3-go-unit-tests> === CONT TestConcurrentCommitsSharingObjectsDoNotDeadlock niks3-go-unit-tests> === RUN TestPresentNotReportedWhileGCDeletesClosure/stale niks3-go-unit-tests> === CONT TestGCSweepSkipsPendingObjects niks3-go-unit-tests> === CONT TestCompleteMultipartUpload_ErrorButObjectExists niks3-go-unit-tests> === CONT TestGetExistingObjectsLocksRows niks3-go-unit-tests> === CONT TestPushDedupSurvivesConcurrentGC niks3-go-unit-tests> === PAUSE TestPresentNotReportedWhileGCDeletesClosure/stale niks3-go-unit-tests> === RUN TestPresentNotReportedWhileGCDeletesClosure/fresh niks3-go-unit-tests> === PAUSE TestPresentNotReportedWhileGCDeletesClosure/fresh niks3-go-unit-tests> === CONT TestReadProxyNarStreaming niks3-go-unit-tests> === CONT TestReadProxyInvalidPath niks3-go-unit-tests> === CONT TestPresentReportsOnlyClosureRoots niks3-go-unit-tests> === CONT TestService_AuthMiddleware niks3-go-unit-tests> === CONT TestReadProxyNarinfo niks3-go-unit-tests> === CONT TestIsValidCachePath niks3-go-unit-tests> === CONT TestParseSingleRange niks3-go-unit-tests> === CONT TestSweepSkipsRowsLockedByPush niks3-go-unit-tests> === RUN TestParseSingleRange/none niks3-go-unit-tests> === CONT TestFailedS3DeleteKeepsTombstone niks3-go-unit-tests> === CONT TestForceGCDuringPushOffersSweptObject niks3-go-unit-tests> === CONT TestCreatePendingClosureVerifyS3FailureReleasesConnection niks3-go-unit-tests> === CONT TestGCSweepDeliversEachKeyOnce niks3-go-unit-tests> === RUN TestForceGCDuringPushOffersSweptObject/before_pending_rows niks3-go-unit-tests> === CONT TestTombstonedObjectOfferedWithoutWaiting niks3-go-unit-tests> === CONT TestPresentRefreshesOnlyStaleClosures niks3-go-unit-tests> === CONT TestReadProxyContentNegotiation niks3-go-unit-tests> === CONT TestReadProxyNarinfoAlreadyDecompressed niks3-go-unit-tests> === CONT TestReadProxy404 niks3-go-unit-tests> === RUN TestIsValidCachePath/narinfo niks3-go-unit-tests> === PAUSE TestParseSingleRange/none niks3-go-unit-tests> === PAUSE TestForceGCDuringPushOffersSweptObject/before_pending_rows niks3-go-unit-tests> === PAUSE TestIsValidCachePath/narinfo niks3-go-unit-tests> === RUN TestForceGCDuringPushOffersSweptObject/after_presence_check niks3-go-unit-tests> === RUN TestParseSingleRange/unknown_unit niks3-go-unit-tests> === RUN TestIsValidCachePath/narinfo_all_nix_base32_chars niks3-go-unit-tests> === PAUSE TestParseSingleRange/unknown_unit niks3-go-unit-tests> === PAUSE TestIsValidCachePath/narinfo_all_nix_base32_chars niks3-go-unit-tests> === PAUSE TestForceGCDuringPushOffersSweptObject/after_presence_check niks3-go-unit-tests> === RUN TestParseSingleRange/multi-range_ignored niks3-go-unit-tests> === RUN TestIsValidCachePath/nar_zst niks3-go-unit-tests> === PAUSE TestParseSingleRange/multi-range_ignored niks3-go-unit-tests> === CONT TestCreatePin_ReservedPins niks3-go-unit-tests> === RUN TestParseSingleRange/malformed_no_dash niks3-go-unit-tests> === PAUSE TestParseSingleRange/malformed_no_dash niks3-go-unit-tests> === RUN TestParseSingleRange/malformed_both_empty niks3-go-unit-tests> === PAUSE TestParseSingleRange/malformed_both_empty niks3-go-unit-tests> === RUN TestParseSingleRange/malformed_end_before_start niks3-go-unit-tests> === PAUSE TestParseSingleRange/malformed_end_before_start niks3-go-unit-tests> === RUN TestParseSingleRange/closed niks3-go-unit-tests> === PAUSE TestParseSingleRange/closed niks3-go-unit-tests> === RUN TestParseSingleRange/open-ended niks3-go-unit-tests> === PAUSE TestParseSingleRange/open-ended niks3-go-unit-tests> === RUN TestParseSingleRange/end_clamped_to_size niks3-go-unit-tests> === PAUSE TestParseSingleRange/end_clamped_to_size niks3-go-unit-tests> === RUN TestParseSingleRange/suffix niks3-go-unit-tests> === PAUSE TestParseSingleRange/suffix niks3-go-unit-tests> === PAUSE TestIsValidCachePath/nar_zst niks3-go-unit-tests> === RUN TestParseSingleRange/suffix_exceeds_size niks3-go-unit-tests> === PAUSE TestParseSingleRange/suffix_exceeds_size niks3-go-unit-tests> === RUN TestParseSingleRange/single_byte niks3-go-unit-tests> === RUN TestIsValidCachePath/nar_xz niks3-go-unit-tests> === PAUSE TestParseSingleRange/single_byte niks3-go-unit-tests> === PAUSE TestIsValidCachePath/nar_xz niks3-go-unit-tests> === RUN TestIsValidCachePath/nar_bz2 niks3-go-unit-tests> === PAUSE TestIsValidCachePath/nar_bz2 niks3-go-unit-tests> === RUN TestIsValidCachePath/nar_uncompressed niks3-go-unit-tests> === PAUSE TestIsValidCachePath/nar_uncompressed niks3-go-unit-tests> === RUN TestIsValidCachePath/ls niks3-go-unit-tests> === PAUSE TestIsValidCachePath/ls niks3-go-unit-tests> === RUN TestIsValidCachePath/log niks3-go-unit-tests> === PAUSE TestIsValidCachePath/log niks3-go-unit-tests> === RUN TestIsValidCachePath/realisation niks3-go-unit-tests> === PAUSE TestIsValidCachePath/realisation niks3-go-unit-tests> === RUN TestIsValidCachePath/nix-cache-info niks3-go-unit-tests> === RUN TestParseSingleRange/start_past_EOF niks3-go-unit-tests> === PAUSE TestParseSingleRange/start_past_EOF niks3-go-unit-tests> === PAUSE TestIsValidCachePath/nix-cache-info niks3-go-unit-tests> === RUN TestParseSingleRange/start_far_past_EOF niks3-go-unit-tests> === PAUSE TestParseSingleRange/start_far_past_EOF niks3-go-unit-tests> === RUN TestIsValidCachePath/index.html niks3-go-unit-tests> === PAUSE TestIsValidCachePath/index.html niks3-go-unit-tests> === RUN TestIsValidCachePath/traversal_parent niks3-go-unit-tests> === PAUSE TestIsValidCachePath/traversal_parent niks3-go-unit-tests> === RUN TestIsValidCachePath/traversal_in_middle niks3-go-unit-tests> === PAUSE TestIsValidCachePath/traversal_in_middle niks3-go-unit-tests> === RUN TestIsValidCachePath/invalid_char_e niks3-go-unit-tests> === PAUSE TestIsValidCachePath/invalid_char_e niks3-go-unit-tests> === RUN TestIsValidCachePath/invalid_char_u niks3-go-unit-tests> === PAUSE TestIsValidCachePath/invalid_char_u niks3-go-unit-tests> === RUN TestIsValidCachePath/random_path niks3-go-unit-tests> === PAUSE TestIsValidCachePath/random_path niks3-go-unit-tests> === RUN TestIsValidCachePath/empty niks3-go-unit-tests> === PAUSE TestIsValidCachePath/empty niks3-go-unit-tests> === RUN TestIsValidCachePath/leading_slash niks3-go-unit-tests> === PAUSE TestIsValidCachePath/leading_slash niks3-go-unit-tests> === RUN TestIsValidCachePath/wrong_extension niks3-go-unit-tests> === PAUSE TestIsValidCachePath/wrong_extension niks3-go-unit-tests> === RUN TestIsValidCachePath/short_hash niks3-go-unit-tests> === PAUSE TestIsValidCachePath/short_hash niks3-go-unit-tests> === CONT TestOrphanedObjectsGCStressTest niks3-go-unit-tests> === CONT TestOrphanedObjectsGC niks3-go-unit-tests> 2026/10/08 17:03:17 INFO OIDC provider initialized name=test issuer=http://127.0.0.1:54188/oidc niks3-go-unit-tests> 2026/10/08 17:03:19 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:19 INFO Aborted multipart uploads count=0 kept=0 niks3-go-unit-tests> 2026/10/08 17:03:19 WARN Force mode enabled - objects will be deleted immediately without grace period niks3-go-unit-tests> 2026/10/08 17:03:19 INFO Garbage collection completed failed-uploads-deleted=0 old-closures-deleted=0 objects-marked-for-deletion=0 objects-deleted-after-grace-period=0 objects-failed-to-delete=0 niks3-go-unit-tests> 2026/10/08 17:03:19 INFO Vacuumed table table=pending_closures niks3-go-unit-tests> 2026/10/08 17:03:19 INFO Vacuumed table table=pending_objects niks3-go-unit-tests> 2026/10/08 17:03:19 INFO Vacuumed table table=multipart_uploads niks3-go-unit-tests> 2026/10/08 17:03:19 INFO Vacuumed table table=closures niks3-go-unit-tests> 2026/10/08 17:03:19 WARN Authentication failed token_preview=wrongtoken token_length=10 reason="static API token mismatch" niks3-go-unit-tests> --- PASS: TestService_AuthMiddleware (1.85s) niks3-go-unit-tests> === CONT TestObjectStatsLargeCommit niks3-go-unit-tests> 2026/10/08 17:03:19 INFO Vacuumed table table=objects niks3-go-unit-tests> --- PASS: TestGCSweepSkipsPendingObjects (1.96s) niks3-go-unit-tests> === CONT TestObjectStatsTrigger niks3-go-unit-tests> --- PASS: TestRegisterCompletedObjectNeedsPendingRow (2.21s) niks3-go-unit-tests> === CONT TestPendingCleanupUsesOneCutoff niks3-go-unit-tests> 2026/10/08 17:03:20 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:20 INFO Aborted multipart uploads count=0 kept=0 niks3-go-unit-tests> 2026/10/08 17:03:20 INFO Garbage collection completed failed-uploads-deleted=0 old-closures-deleted=1 objects-marked-for-deletion=0 objects-deleted-after-grace-period=0 objects-failed-to-delete=0 niks3-go-unit-tests> 2026/10/08 17:03:20 INFO Vacuumed table table=pending_closures niks3-go-unit-tests> 2026/10/08 17:03:20 INFO Vacuumed table table=pending_objects niks3-go-unit-tests> 2026/10/08 17:03:20 INFO Vacuumed table table=multipart_uploads niks3-go-unit-tests> 2026/10/08 17:03:20 INFO Vacuumed table table=closures niks3-go-unit-tests> --- PASS: TestReadProxyHead (2.75s) niks3-go-unit-tests> === CONT TestMultipartUploadAbortedWhenCancelledBeforeRecorded niks3-go-unit-tests> 2026/10/08 17:03:20 INFO Vacuumed table table=objects niks3-go-unit-tests> 2026/10/08 17:03:20 INFO Aborted multipart uploads count=0 kept=0 niks3-go-unit-tests> 2026/10/08 17:03:20 WARN Force mode enabled - objects will be deleted immediately without grace period niks3-go-unit-tests> 2026/10/08 17:03:20 INFO Garbage collection completed failed-uploads-deleted=0 old-closures-deleted=0 objects-marked-for-deletion=0 objects-deleted-after-grace-period=0 objects-failed-to-delete=0 niks3-go-unit-tests> 2026/10/08 17:03:20 INFO Vacuumed table table=pending_closures niks3-go-unit-tests> 2026/10/08 17:03:20 INFO Vacuumed table table=pending_objects niks3-go-unit-tests> 2026/10/08 17:03:20 INFO Vacuumed table table=multipart_uploads niks3-go-unit-tests> 2026/10/08 17:03:20 INFO Vacuumed table table=closures niks3-go-unit-tests> 2026/10/08 17:03:20 INFO Vacuumed table table=objects niks3-go-unit-tests> --- PASS: TestPushDedupSurvivesConcurrentGC (2.81s) niks3-go-unit-tests> === CONT TestMultipartCleanup niks3-go-unit-tests> 2026/10/08 17:03:20 ERROR Failed to decode narinfo key=3hcdxyjf9yiq7qf3i4548drb6sjmwa1v.narinfo limit=16777216 error= niks3-go-unit-tests> --- PASS: TestReadProxyNarinfo (2.98s) niks3-go-unit-tests> === CONT TestServerTLSConfig niks3-go-unit-tests> === RUN TestServerTLSConfig/no_client_CA niks3-go-unit-tests> === PAUSE TestServerTLSConfig/no_client_CA niks3-go-unit-tests> === RUN TestServerTLSConfig/missing_CA_file niks3-go-unit-tests> === PAUSE TestServerTLSConfig/missing_CA_file niks3-go-unit-tests> === RUN TestServerTLSConfig/not_a_PEM_file niks3-go-unit-tests> === PAUSE TestServerTLSConfig/not_a_PEM_file niks3-go-unit-tests> === CONT TestService_NativeMTLS niks3-go-unit-tests> --- PASS: TestReadProxyInvalidPath (3.15s) niks3-go-unit-tests> === CONT TestMetricsCommit niks3-go-unit-tests> 2026/10/08 17:03:21 INFO Aborted multipart uploads count=0 kept=0 niks3-go-unit-tests> 2026/10/08 17:03:21 WARN Force mode enabled - objects will be deleted immediately without grace period niks3-go-unit-tests> 2026/10/08 17:03:21 INFO Garbage collection completed failed-uploads-deleted=0 old-closures-deleted=0 objects-marked-for-deletion=3 objects-deleted-after-grace-period=3 objects-failed-to-delete=0 niks3-go-unit-tests> 2026/10/08 17:03:21 INFO Vacuumed table table=pending_closures niks3-go-unit-tests> 2026/10/08 17:03:21 INFO Vacuumed table table=pending_objects niks3-go-unit-tests> 2026/10/08 17:03:21 INFO Vacuumed table table=multipart_uploads niks3-go-unit-tests> 2026/10/08 17:03:21 INFO Vacuumed table table=closures niks3-go-unit-tests> 2026/10/08 17:03:21 INFO Vacuumed table table=objects niks3-go-unit-tests> --- PASS: TestGCSweepDeliversEachKeyOnce (3.96s) niks3-go-unit-tests> === CONT TestMetricsInventory niks3-go-unit-tests> --- PASS: TestReadProxyContentNegotiation (4.04s) niks3-go-unit-tests> === CONT TestNARDeduplicationMetadataUploadBug niks3-go-unit-tests> --- PASS: TestPresentRefreshesOnlyStaleClosures (4.27s) niks3-go-unit-tests> === CONT TestCreatePendingClosureRejectsOversizedNAR niks3-go-unit-tests> 2026/10/08 17:03:21 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> --- PASS: TestCreatePendingClosureRejectsOversizedNAR (0.00s) niks3-go-unit-tests> === CONT TestCacheConfigHandlerMaxNarSize niks3-go-unit-tests> --- PASS: TestCacheConfigHandlerMaxNarSize (0.00s) niks3-go-unit-tests> === CONT TestGenerateLandingPage niks3-go-unit-tests> --- PASS: TestGenerateLandingPage (0.00s) niks3-go-unit-tests> === CONT TestService_readinessHandler niks3-go-unit-tests> --- PASS: TestConcurrentCommitsSharingObjectsDoNotDeadlock (4.42s) niks3-go-unit-tests> === CONT TestService_healthCheckHandler niks3-go-unit-tests> --- PASS: TestPresentReportsOnlyClosureRoots (4.51s) niks3-go-unit-tests> === CONT TestGracefulShutdownDrainsInflight niks3-go-unit-tests> 2026/10/08 17:03:22 INFO Starting HTTP server address=127.0.0.1:54224 niks3-go-unit-tests> 2026/10/08 17:03:22 INFO Shutdown signal received, draining in-flight requests timeout=10s niks3-go-unit-tests> --- PASS: TestGracefulShutdownDrainsInflight (0.08s) niks3-go-unit-tests> === CONT TestGCTaskStore_Fail niks3-go-unit-tests> --- PASS: TestGCTaskStore_Fail (0.00s) niks3-go-unit-tests> === CONT TestGCTaskStore_PhaseUpdates niks3-go-unit-tests> --- PASS: TestGCTaskStore_PhaseUpdates (0.00s) niks3-go-unit-tests> === CONT TestGCTaskStore_CompletedAllowsNewTask niks3-go-unit-tests> --- PASS: TestGCTaskStore_CompletedAllowsNewTask (0.00s) niks3-go-unit-tests> === CONT TestGCTaskStore_GetReturnsLatest niks3-go-unit-tests> --- PASS: TestGCTaskStore_GetReturnsLatest (0.00s) niks3-go-unit-tests> === CONT TestGCTaskStore_GetEmpty niks3-go-unit-tests> --- PASS: TestGCTaskStore_GetEmpty (0.00s) niks3-go-unit-tests> === CONT TestGCTaskStore_ConflictDifferentParams niks3-go-unit-tests> --- PASS: TestGCTaskStore_ConflictDifferentParams (0.00s) niks3-go-unit-tests> === CONT TestGCTaskStore_DeduplicateSameParams niks3-go-unit-tests> --- PASS: TestGCTaskStore_DeduplicateSameParams (0.00s) niks3-go-unit-tests> === CONT TestGCTaskStore_StartNew niks3-go-unit-tests> --- PASS: TestGCTaskStore_StartNew (0.00s) niks3-go-unit-tests> === CONT TestGCEndsOnShutdown niks3-go-unit-tests> === RUN TestGCEndsOnShutdown/before_the_run niks3-go-unit-tests> === PAUSE TestGCEndsOnShutdown/before_the_run niks3-go-unit-tests> === RUN TestGCEndsOnShutdown/blocked_in_the_sweep's_S3_delete niks3-go-unit-tests> === PAUSE TestGCEndsOnShutdown/blocked_in_the_sweep's_S3_delete niks3-go-unit-tests> === RUN TestGCEndsOnShutdown/blocked_on_a_row_lock_in_the_mark niks3-go-unit-tests> === PAUSE TestGCEndsOnShutdown/blocked_on_a_row_lock_in_the_mark niks3-go-unit-tests> === CONT TestCommitRacingPendingCleanupKeepsObjects niks3-go-unit-tests> 2026/10/08 17:03:22 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:22 INFO Aborted multipart uploads count=0 kept=0 niks3-go-unit-tests> 2026/10/08 17:03:22 WARN Force mode enabled - objects will be deleted immediately without grace period niks3-go-unit-tests> 2026/10/08 17:03:22 ERROR failed to remove object object=nar/dddddddddddddddddddddddddddddddddddddddddddddddddddd.nar.zst error="Access Denied." niks3-go-unit-tests> 2026/10/08 17:03:22 ERROR failed to remove object object=dddddddddddddddddddddddddddddddd.narinfo error="Access Denied." niks3-go-unit-tests> --- PASS: TestFailedS3DeleteKeepsTombstone (5.23s) niks3-go-unit-tests> === CONT TestPushWaitsForSweepHoldingRow niks3-go-unit-tests> 2026/10/08 17:03:22 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> --- PASS: TestTombstonedObjectOfferedWithoutWaiting (5.41s) niks3-go-unit-tests> === CONT TestSweepRechecksPendingAfterLocking niks3-go-unit-tests> === NAME TestOrphanedObjectsGC niks3-go-unit-tests> orphaned_objects_gc_test.go:287: GC Test Summary: niks3-go-unit-tests> orphaned_objects_gc_test.go:288: - Kept: 2 objects from closure A niks3-go-unit-tests> orphaned_objects_gc_test.go:289: - Deleted: 2 objects from closure B niks3-go-unit-tests> orphaned_objects_gc_test.go:290: - Deleted: 6 orphaned chain objects (X1->X2->X3) niks3-go-unit-tests> orphaned_objects_gc_test.go:291: - Deleted: 2 orphaned single objects (Y) niks3-go-unit-tests> orphaned_objects_gc_test.go:292: - Total deleted: 10 objects niks3-go-unit-tests> --- PASS: TestOrphanedObjectsGC (5.48s) niks3-go-unit-tests> === CONT TestClientErrorHandling niks3-go-unit-tests> === RUN TestClientErrorHandling/InvalidStorePath niks3-go-unit-tests> === PAUSE TestClientErrorHandling/InvalidStorePath niks3-go-unit-tests> === RUN TestClientErrorHandling/InvalidAuthToken niks3-go-unit-tests> === PAUSE TestClientErrorHandling/InvalidAuthToken niks3-go-unit-tests> === RUN TestClientErrorHandling/ServerNotAvailable niks3-go-unit-tests> === PAUSE TestClientErrorHandling/ServerNotAvailable niks3-go-unit-tests> === CONT TestDeleteClosuresRacingPins niks3-go-unit-tests> 2026/10/08 17:03:23 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> --- PASS: TestGetExistingObjectsLocksRows (5.94s) niks3-go-unit-tests> === CONT TestClientFallsBackToClosures niks3-go-unit-tests> 2026/10/08 17:03:23 INFO Received complete multipart upload request method=POST path=/api/multipart/complete niks3-go-unit-tests> 2026/10/08 17:03:23 WARN CompleteMultipartUpload errored but object exists; treating as success error="The specified key does not exist." object_key=nar/gggggggggggggggggggggggggggggg0300000000000000000000.nar.zst upload_id=MzQ2Njc2OWUtOTMxYy00YjBjLTg5ZjEtOTQ3OGM5ODJjNzNjLjIxZjVjMzA0LWU5ZTUtNDdhMS05MGZmLWQ2ZWY2Y2VlNDU1MHgxNzkxNDc5MDAzMjIxMjM0MDAw niks3-go-unit-tests> 2026/10/08 17:03:23 INFO Completed multipart upload object_key=nar/gggggggggggggggggggggggggggggg0300000000000000000000.nar.zst upload_id=MzQ2Njc2OWUtOTMxYy00YjBjLTg5ZjEtOTQ3OGM5ODJjNzNjLjIxZjVjMzA0LWU5ZTUtNDdhMS05MGZmLWQ2ZWY2Y2VlNDU1MHgxNzkxNDc5MDAzMjIxMjM0MDAw parts=1 niks3-go-unit-tests> --- PASS: TestCompleteMultipartUpload_ErrorButObjectExists (6.00s) niks3-go-unit-tests> === CONT TestClientPushesUseOnePush niks3-go-unit-tests> --- PASS: TestReadProxyNarinfoAlreadyDecompressed (6.18s) niks3-go-unit-tests> === CONT TestPinProtectsFromGC niks3-go-unit-tests> 2026/10/08 17:03:23 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> --- PASS: TestCreatePendingClosureVerifyS3FailureReleasesConnection (6.68s) niks3-go-unit-tests> === CONT TestClientSharedPathCommittedMidPush niks3-go-unit-tests> 2026/10/08 17:03:24 INFO Received create pin request method=POST path=/api/pins/worker-x86_64-linux niks3-go-unit-tests> 2026/10/08 17:03:24 WARN Refused reserved pin name=worker-x86_64-linux niks3-go-unit-tests> 2026/10/08 17:03:24 INFO Received create pin request method=POST path=/api/pins/worker-x86_64-linux niks3-go-unit-tests> 2026/10/08 17:03:24 INFO Received create pin request method=POST path=/api/pins/my-app niks3-go-unit-tests> 2026/10/08 17:03:24 INFO Received create pin request method=POST path=/api/pins/worker-x86_64-linux niks3-go-unit-tests> --- PASS: TestCreatePin_ReservedPins (7.07s) niks3-go-unit-tests> === CONT TestClientWithDependencies niks3-go-unit-tests> 2026/10/08 17:03:24 INFO Aborted multipart uploads count=0 kept=0 niks3-go-unit-tests> 2026/10/08 17:03:25 WARN Force mode enabled - objects will be deleted immediately without grace period niks3-go-unit-tests> 2026/10/08 17:03:25 INFO Garbage collection completed failed-uploads-deleted=0 old-closures-deleted=0 objects-marked-for-deletion=0 objects-deleted-after-grace-period=0 objects-failed-to-delete=0 niks3-go-unit-tests> 2026/10/08 17:03:25 INFO Vacuumed table table=pending_closures niks3-go-unit-tests> 2026/10/08 17:03:25 INFO Vacuumed table table=pending_objects niks3-go-unit-tests> 2026/10/08 17:03:25 INFO Vacuumed table table=multipart_uploads niks3-go-unit-tests> 2026/10/08 17:03:25 INFO Vacuumed table table=closures niks3-go-unit-tests> 2026/10/08 17:03:25 INFO Vacuumed table table=objects niks3-go-unit-tests> 2026/10/08 17:03:25 INFO Aborted multipart uploads count=0 kept=0 niks3-go-unit-tests> 2026/10/08 17:03:25 WARN Force mode enabled - objects will be deleted immediately without grace period niks3-go-unit-tests> 2026/10/08 17:03:25 INFO Garbage collection completed failed-uploads-deleted=0 old-closures-deleted=0 objects-marked-for-deletion=0 objects-deleted-after-grace-period=1 objects-failed-to-delete=0 niks3-go-unit-tests> 2026/10/08 17:03:25 INFO Vacuumed table table=pending_closures niks3-go-unit-tests> 2026/10/08 17:03:25 INFO Vacuumed table table=pending_objects niks3-go-unit-tests> 2026/10/08 17:03:25 INFO Vacuumed table table=multipart_uploads niks3-go-unit-tests> 2026/10/08 17:03:25 INFO Vacuumed table table=closures niks3-go-unit-tests> 2026/10/08 17:03:25 INFO Vacuumed table table=objects niks3-go-unit-tests> --- PASS: TestSweepSkipsRowsLockedByPush (7.67s) niks3-go-unit-tests> === CONT TestClientMultipleUploads niks3-go-unit-tests> --- PASS: TestReadProxyNarStreaming (7.78s) niks3-go-unit-tests> === CONT TestClientIntegration niks3-go-unit-tests> --- PASS: TestReadProxy404 (8.31s) niks3-go-unit-tests> === CONT TestIsValidUploadKey niks3-go-unit-tests> === RUN TestIsValidUploadKey/narinfo niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/narinfo niks3-go-unit-tests> === RUN TestIsValidUploadKey/nar_zst niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/nar_zst niks3-go-unit-tests> === RUN TestIsValidUploadKey/nar_xz niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/nar_xz niks3-go-unit-tests> === RUN TestIsValidUploadKey/nar_plain niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/nar_plain niks3-go-unit-tests> === RUN TestIsValidUploadKey/listing niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/listing niks3-go-unit-tests> === RUN TestIsValidUploadKey/build_log niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/build_log niks3-go-unit-tests> === RUN TestIsValidUploadKey/build_log_home-manager_file niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/build_log_home-manager_file niks3-go-unit-tests> === RUN TestIsValidUploadKey/build_log_plus_in_name niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/build_log_plus_in_name niks3-go-unit-tests> === RUN TestIsValidUploadKey/build_log_question_mark niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/build_log_question_mark niks3-go-unit-tests> === RUN TestIsValidUploadKey/build_log_equals niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/build_log_equals niks3-go-unit-tests> === RUN TestIsValidUploadKey/realisation niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/realisation niks3-go-unit-tests> === RUN TestIsValidUploadKey/realisation_plus_in_output niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/realisation_plus_in_output niks3-go-unit-tests> === RUN TestIsValidUploadKey/nix-cache-info niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/nix-cache-info niks3-go-unit-tests> === RUN TestIsValidUploadKey/index.html niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/index.html niks3-go-unit-tests> === RUN TestIsValidUploadKey/narinfo_key,_nar_type niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/narinfo_key,_nar_type niks3-go-unit-tests> === RUN TestIsValidUploadKey/nar_key,_narinfo_type niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/nar_key,_narinfo_type niks3-go-unit-tests> === RUN TestIsValidUploadKey/listing_key,_narinfo_type niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/listing_key,_narinfo_type niks3-go-unit-tests> === RUN TestIsValidUploadKey/traversal niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/traversal niks3-go-unit-tests> === RUN TestIsValidUploadKey/traversal_nar niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/traversal_nar niks3-go-unit-tests> === RUN TestIsValidUploadKey/absolute niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/absolute niks3-go-unit-tests> === RUN TestIsValidUploadKey/empty_key niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/empty_key niks3-go-unit-tests> === RUN TestIsValidUploadKey/unknown_type niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/unknown_type niks3-go-unit-tests> === CONT TestCreatePendingClosure_SmallNARUsesSimplePUT niks3-go-unit-tests> 2026/10/08 17:03:26 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:26 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:26 INFO Received cleanup request method=DELETE path=/api/pending_closures niks3-go-unit-tests> --- PASS: TestObjectStatsTrigger (7.14s) niks3-go-unit-tests> === CONT TestCompleteMultipartUnregistered niks3-go-unit-tests> 2026/10/08 17:03:27 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> --- PASS: TestMultipartUploadAbortedWhenCancelledBeforeRecorded (7.24s) niks3-go-unit-tests> === CONT TestService_verifyS3Integrity niks3-go-unit-tests> 2026/10/08 17:03:27 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:28 INFO Received cleanup request method=DELETE path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:28 WARN Failed to abort upload, keeping its closure key=nar/dadb44fdadb44fdadb44fdadb44f000000000000000000000000.nar.zst error="Get \"http://127.0.0.1:1/bucket32/?location=\": dial tcp 127.0.0.1:1: connect: connection refused" code="" niks3-go-unit-tests> 2026/10/08 17:03:28 INFO Aborted multipart uploads count=0 kept=1 niks3-go-unit-tests> 2026/10/08 17:03:28 WARN mTLS auth: subject not in bound subjects subject="CN=reader" niks3-go-unit-tests> 2026/10/08 17:03:28 WARN mTLS auth: subject not in bound subjects subject="CN=reader" niks3-go-unit-tests> --- PASS: TestService_NativeMTLS (7.69s) niks3-go-unit-tests> === CONT TestService_createPendingClosureHandler niks3-go-unit-tests> 2026/10/08 17:03:28 INFO Received cleanup request method=DELETE path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:28 INFO Aborted multipart uploads count=1 kept=0 niks3-go-unit-tests> --- PASS: TestMultipartCleanup (7.88s) niks3-go-unit-tests> === CONT TestService_cleanupPendingClosuresHandler niks3-go-unit-tests> 2026/10/08 17:03:28 INFO Received push request method=POST path=/api/pushes niks3-go-unit-tests> 2026/10/08 17:03:28 INFO Received complete push request method=POST path=/api/pushes/1/complete niks3-go-unit-tests> 2026/10/08 17:03:28 INFO Completed push id=1 objects=4 duration=38.6155ms niks3-go-unit-tests> 2026/10/08 17:03:28 INFO Received complete upload request method=POST path=/api/pending_closures/2/complete niks3-go-unit-tests> 2026/10/08 17:03:28 INFO Completed upload id=2 objects=2 duration=2.32ms niks3-go-unit-tests> --- PASS: TestMetricsCommit (8.03s) niks3-go-unit-tests> === CONT TestUploadHandlersRejectOversizedBody niks3-go-unit-tests> === RUN TestUploadHandlersRejectOversizedBody/complete_multipart niks3-go-unit-tests> === PAUSE TestUploadHandlersRejectOversizedBody/complete_multipart niks3-go-unit-tests> === RUN TestUploadHandlersRejectOversizedBody/request_more_parts niks3-go-unit-tests> === PAUSE TestUploadHandlersRejectOversizedBody/request_more_parts niks3-go-unit-tests> === RUN TestUploadHandlersRejectOversizedBody/create_pending_closure niks3-go-unit-tests> === PAUSE TestUploadHandlersRejectOversizedBody/create_pending_closure niks3-go-unit-tests> === CONT TestUploadHandlersRejectInvalidKeys niks3-go-unit-tests> === RUN TestUploadHandlersRejectInvalidKeys/create_pending_closure_rejects_nix-cache-info niks3-go-unit-tests> === PAUSE TestUploadHandlersRejectInvalidKeys/create_pending_closure_rejects_nix-cache-info niks3-go-unit-tests> === RUN TestUploadHandlersRejectInvalidKeys/create_pending_closure_rejects_path_traversal niks3-go-unit-tests> === PAUSE TestUploadHandlersRejectInvalidKeys/create_pending_closure_rejects_path_traversal niks3-go-unit-tests> === RUN TestUploadHandlersRejectInvalidKeys/complete_multipart_rejects_non-NAR_key niks3-go-unit-tests> === PAUSE TestUploadHandlersRejectInvalidKeys/complete_multipart_rejects_non-NAR_key niks3-go-unit-tests> === RUN TestUploadHandlersRejectInvalidKeys/request_more_parts_rejects_non-NAR_key niks3-go-unit-tests> === PAUSE TestUploadHandlersRejectInvalidKeys/request_more_parts_rejects_non-NAR_key niks3-go-unit-tests> === CONT TestService_RequireScope_OIDC niks3-go-unit-tests> 2026/10/08 17:03:28 INFO OIDC provider initialized name=test issuer=http://127.0.0.1:54285/oidc niks3-go-unit-tests> --- PASS: TestMetricsInventory (7.51s) niks3-go-unit-tests> === CONT TestClientCADerivations niks3-go-unit-tests> 2026/10/08 17:03:29 WARN readiness check failed error="closed pool" niks3-go-unit-tests> --- PASS: TestService_readinessHandler (7.73s) niks3-go-unit-tests> === CONT TestCacheStatsHandler niks3-go-unit-tests> === NAME TestNARDeduplicationMetadataUploadBug niks3-go-unit-tests> metadata_upload_test.go:48: First store path: /private/var/tb/3/scratch/ec71b307c420129e/build/TestNARDeduplicationMetadataUploadBug469171868/001/store/4871zh11rs3x683j5q64qhs3my1avqik-file1.txt niks3-go-unit-tests> 2026/10/08 17:03:29 INFO Received push request method=POST path=/api/pushes niks3-go-unit-tests> 2026/10/08 17:03:29 INFO Uploading 1 paths to 127.0.0.1 (0 already cached) niks3-go-unit-tests> 2026/10/08 17:03:29 INFO Uploading 4871zh11rs3x683j5q64qhs3my1avqik-file1.txt (160B) niks3-go-unit-tests> 2026/10/08 17:03:29 WARN Failed to register uploaded object key=4871zh11rs3x683j5q64qhs3my1avqik.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:29 WARN Failed to register uploaded object key=nar/1byf36hhc5sn8lvwqfkjh3ybgn76slmx8naakslrypxs6mna71rf.nar.zst error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:29 INFO Received sign narinfos request method=POST path=/api/pushes/1/sign niks3-go-unit-tests> 2026/10/08 17:03:29 INFO Signed narinfos id=1 count=1 niks3-go-unit-tests> 2026/10/08 17:03:29 INFO Uploading 1 narinfos niks3-go-unit-tests> 2026/10/08 17:03:29 INFO Received complete push request method=POST path=/api/pushes/1/complete niks3-go-unit-tests> 2026/10/08 17:03:29 WARN Failed to register uploaded object key=4871zh11rs3x683j5q64qhs3my1avqik.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> --- PASS: TestService_healthCheckHandler (7.92s) niks3-go-unit-tests> === CONT TestCacheConfigHandler niks3-go-unit-tests> === RUN TestCacheConfigHandler/full_config,_no_issuer niks3-go-unit-tests> === PAUSE TestCacheConfigHandler/full_config,_no_issuer niks3-go-unit-tests> === RUN TestCacheConfigHandler/no_cache_url_configured niks3-go-unit-tests> === PAUSE TestCacheConfigHandler/no_cache_url_configured niks3-go-unit-tests> === RUN TestCacheConfigHandler/no_signing_keys niks3-go-unit-tests> === PAUSE TestCacheConfigHandler/no_signing_keys niks3-go-unit-tests> === RUN TestCacheConfigHandler/issuer_requested_but_no_OIDC_validator niks3-go-unit-tests> === PAUSE TestCacheConfigHandler/issuer_requested_but_no_OIDC_validator niks3-go-unit-tests> === CONT TestService_ReadScope_PublicByDefault niks3-go-unit-tests> 2026/10/08 17:03:29 INFO Completed push id=1 objects=3 duration=32.399208ms niks3-go-unit-tests> 2026/10/08 17:03:29 INFO Upload complete. (194ms) niks3-go-unit-tests> === NAME TestNARDeduplicationMetadataUploadBug niks3-go-unit-tests> metadata_upload_test.go:54: Retrieved narinfo from S3: niks3-go-unit-tests> StorePath: /private/var/tb/3/scratch/ec71b307c420129e/build/TestNARDeduplicationMetadataUploadBug469171868/001/store/4871zh11rs3x683j5q64qhs3my1avqik-file1.txt niks3-go-unit-tests> URL: nar/1byf36hhc5sn8lvwqfkjh3ybgn76slmx8naakslrypxs6mna71rf.nar.zst niks3-go-unit-tests> Compression: zstd niks3-go-unit-tests> NarHash: sha256:1byf36hhc5sn8lvwqfkjh3ybgn76slmx8naakslrypxs6mna71rf niks3-go-unit-tests> NarSize: 160 niks3-go-unit-tests> References: niks3-go-unit-tests> CA: fixed:r:sha256:1byf36hhc5sn8lvwqfkjh3ybgn76slmx8naakslrypxs6mna71rf niks3-go-unit-tests> metadata_upload_test.go:55: Retrieved .ls file from S3 (compressed size: 77 bytes) niks3-go-unit-tests> metadata_upload_test.go:55: Decompressed .ls content (64 bytes): niks3-go-unit-tests> {"version":1,"root":{"type":"regular","size":44,"narOffset":96}} niks3-go-unit-tests> metadata_upload_test.go:64: Second store path (same content): /private/var/tb/3/scratch/ec71b307c420129e/build/TestNARDeduplicationMetadataUploadBug469171868/001/store/3223amgiipzkwfm2s93sjnk55gvz404g-file2.txt niks3-go-unit-tests> 2026/10/08 17:03:30 INFO Received push request method=POST path=/api/pushes niks3-go-unit-tests> 2026/10/08 17:03:30 INFO Uploading 0 paths to 127.0.0.1 (1 already cached) niks3-go-unit-tests> 2026/10/08 17:03:30 INFO Received sign narinfos request method=POST path=/api/pushes/2/sign niks3-go-unit-tests> 2026/10/08 17:03:30 WARN Failed to register uploaded object key=3223amgiipzkwfm2s93sjnk55gvz404g.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:30 INFO Signed narinfos id=2 count=1 niks3-go-unit-tests> 2026/10/08 17:03:30 INFO Uploading 1 narinfos niks3-go-unit-tests> 2026/10/08 17:03:30 INFO Received complete push request method=POST path=/api/pushes/2/complete niks3-go-unit-tests> 2026/10/08 17:03:30 WARN Failed to register uploaded object key=3223amgiipzkwfm2s93sjnk55gvz404g.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:30 INFO Completed push id=2 objects=3 duration=1.159292ms niks3-go-unit-tests> 2026/10/08 17:03:30 INFO Upload complete. (141ms) niks3-go-unit-tests> metadata_upload_test.go:76: Retrieved narinfo from S3: niks3-go-unit-tests> StorePath: /private/var/tb/3/scratch/ec71b307c420129e/build/TestNARDeduplicationMetadataUploadBug469171868/001/store/3223amgiipzkwfm2s93sjnk55gvz404g-file2.txt niks3-go-unit-tests> URL: nar/1byf36hhc5sn8lvwqfkjh3ybgn76slmx8naakslrypxs6mna71rf.nar.zst niks3-go-unit-tests> Compression: zstd niks3-go-unit-tests> NarHash: sha256:1byf36hhc5sn8lvwqfkjh3ybgn76slmx8naakslrypxs6mna71rf niks3-go-unit-tests> NarSize: 160 niks3-go-unit-tests> References: niks3-go-unit-tests> CA: fixed:r:sha256:1byf36hhc5sn8lvwqfkjh3ybgn76slmx8naakslrypxs6mna71rf niks3-go-unit-tests> metadata_upload_test.go:77: Retrieved .ls file from S3 (compressed size: 62 bytes) niks3-go-unit-tests> metadata_upload_test.go:77: Decompressed .ls content (49 bytes): niks3-go-unit-tests> {"version":1,"root":{"type":"regular","size":44}} niks3-go-unit-tests> 2026/10/08 17:03:30 INFO Aborted multipart uploads count=0 kept=0 niks3-go-unit-tests> --- PASS: TestNARDeduplicationMetadataUploadBug (8.71s) niks3-go-unit-tests> === CONT TestPush_OverlappingRootsStoreOneRowPerKey niks3-go-unit-tests> 2026/10/08 17:03:30 WARN Force mode enabled - objects will be deleted immediately without grace period niks3-go-unit-tests> 2026/10/08 17:03:30 INFO Garbage collection completed failed-uploads-deleted=0 old-closures-deleted=0 objects-marked-for-deletion=0 objects-deleted-after-grace-period=0 objects-failed-to-delete=0 niks3-go-unit-tests> 2026/10/08 17:03:30 INFO Vacuumed table table=pending_closures niks3-go-unit-tests> 2026/10/08 17:03:30 INFO Vacuumed table table=pending_objects niks3-go-unit-tests> 2026/10/08 17:03:30 INFO Vacuumed table table=multipart_uploads niks3-go-unit-tests> 2026/10/08 17:03:30 INFO Vacuumed table table=closures niks3-go-unit-tests> 2026/10/08 17:03:30 INFO Vacuumed table table=objects niks3-go-unit-tests> --- PASS: TestCommitRacingPendingCleanupKeepsObjects (8.32s) niks3-go-unit-tests> === CONT TestRedundantMultipartUpload niks3-go-unit-tests> 2026/10/08 17:03:30 INFO Aborted multipart uploads count=0 kept=0 niks3-go-unit-tests> 2026/10/08 17:03:30 WARN Force mode enabled - objects will be deleted immediately without grace period niks3-go-unit-tests> 2026/10/08 17:03:30 INFO Garbage collection completed failed-uploads-deleted=0 old-closures-deleted=0 objects-marked-for-deletion=0 objects-deleted-after-grace-period=0 objects-failed-to-delete=0 niks3-go-unit-tests> 2026/10/08 17:03:30 INFO Vacuumed table table=pending_closures niks3-go-unit-tests> 2026/10/08 17:03:30 INFO Vacuumed table table=pending_objects niks3-go-unit-tests> 2026/10/08 17:03:30 INFO Vacuumed table table=multipart_uploads niks3-go-unit-tests> 2026/10/08 17:03:30 INFO Vacuumed table table=closures niks3-go-unit-tests> 2026/10/08 17:03:30 INFO Vacuumed table table=objects niks3-go-unit-tests> --- PASS: TestSweepRechecksPendingAfterLocking (7.80s) niks3-go-unit-tests> === CONT TestPush_SignsNarinfosOfItsPendingObjects niks3-go-unit-tests> 2026/10/08 17:03:30 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> --- PASS: TestPushWaitsForSweepHoldingRow (8.66s) niks3-go-unit-tests> === CONT TestPush_RejectsBadRequests niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Uploading 2 paths to 127.0.0.1 (1 already cached) niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Uploading g0c6cibi3ldrx617pfk21aw695a3h5ya-shared-dep (136B) niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Uploading h9yqga2hc2s8nc0rly4pcgqkz9rblj68-b (256B) niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=br8bsv3d26gp334fjjzxmb2ix65knx6x.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=g0c6cibi3ldrx617pfk21aw695a3h5ya.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=nar/1vnl0g6w4zgpfz06rb321mfd3jqsrs120jcl8dg2dxn014875y82.nar.zst error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=nar/0h3pcwlg2vld797l9pcj6hih8pkfkkq73rsyl5q6al1hbp57v2j0.nar.zst error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Received sign narinfos request method=POST path=/api/pending_closures/1/sign niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=h9yqga2hc2s8nc0rly4pcgqkz9rblj68.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Signed narinfos id=1 count=2 niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Received sign narinfos request method=POST path=/api/pending_closures/2/sign niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Signed narinfos id=2 count=2 niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Uploading 4 narinfos niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=h9yqga2hc2s8nc0rly4pcgqkz9rblj68.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=br8bsv3d26gp334fjjzxmb2ix65knx6x.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=g0c6cibi3ldrx617pfk21aw695a3h5ya.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> === NAME TestOrphanedObjectsGCStressTest niks3-go-unit-tests> orphaned_objects_gc_test.go:422: Created 10 active closures, 5 to-delete closures, 20 orphaned chains niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Received complete upload request method=POST path=/api/pending_closures/1/complete niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=g0c6cibi3ldrx617pfk21aw695a3h5ya.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Completed upload id=1 objects=6 duration=21.593125ms niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Received complete upload request method=POST path=/api/pending_closures/2/complete niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Completed upload id=2 objects=6 duration=1.385167ms niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Upload complete. (232ms) niks3-go-unit-tests> orphaned_objects_gc_test.go:440: Marked 210 objects for deletion niks3-go-unit-tests> === NAME TestClientFallsBackToClosures niks3-go-unit-tests> client_pushes_test.go:112: Retrieved narinfo from S3: niks3-go-unit-tests> StorePath: /private/var/tb/3/scratch/ec71b307c420129e/build/TestClientFallsBackToClosures2997995738/001/store/g0c6cibi3ldrx617pfk21aw695a3h5ya-shared-dep niks3-go-unit-tests> URL: nar/1vnl0g6w4zgpfz06rb321mfd3jqsrs120jcl8dg2dxn014875y82.nar.zst niks3-go-unit-tests> Compression: zstd niks3-go-unit-tests> NarHash: sha256:1vnl0g6w4zgpfz06rb321mfd3jqsrs120jcl8dg2dxn014875y82 niks3-go-unit-tests> NarSize: 136 niks3-go-unit-tests> References: niks3-go-unit-tests> CA: text:sha256:08nxw05k7b0pzzy0f3swvnw4ldxdbclkdnklpidwmrxdhvfrmv7n niks3-go-unit-tests> client_pushes_test.go:112: Retrieved narinfo from S3: niks3-go-unit-tests> StorePath: /private/var/tb/3/scratch/ec71b307c420129e/build/TestClientFallsBackToClosures2997995738/001/store/br8bsv3d26gp334fjjzxmb2ix65knx6x-a niks3-go-unit-tests> URL: nar/0h3pcwlg2vld797l9pcj6hih8pkfkkq73rsyl5q6al1hbp57v2j0.nar.zst niks3-go-unit-tests> Compression: zstd niks3-go-unit-tests> NarHash: sha256:0h3pcwlg2vld797l9pcj6hih8pkfkkq73rsyl5q6al1hbp57v2j0 niks3-go-unit-tests> NarSize: 256 niks3-go-unit-tests> References: /private/var/tb/3/scratch/ec71b307c420129e/build/TestClientFallsBackToClosures2997995738/001/store/g0c6cibi3ldrx617pfk21aw695a3h5ya-shared-dep niks3-go-unit-tests> CA: text:sha256:0hzwc2z4c7i0v8kqlyqi07kf8xnm29827c7r3gi8qkg6kin608hz niks3-go-unit-tests> client_pushes_test.go:112: Retrieved narinfo from S3: niks3-go-unit-tests> StorePath: /private/var/tb/3/scratch/ec71b307c420129e/build/TestClientFallsBackToClosures2997995738/001/store/h9yqga2hc2s8nc0rly4pcgqkz9rblj68-b niks3-go-unit-tests> URL: nar/0h3pcwlg2vld797l9pcj6hih8pkfkkq73rsyl5q6al1hbp57v2j0.nar.zst niks3-go-unit-tests> Compression: zstd niks3-go-unit-tests> NarHash: sha256:0h3pcwlg2vld797l9pcj6hih8pkfkkq73rsyl5q6al1hbp57v2j0 niks3-go-unit-tests> NarSize: 256 niks3-go-unit-tests> References: /private/var/tb/3/scratch/ec71b307c420129e/build/TestClientFallsBackToClosures2997995738/001/store/g0c6cibi3ldrx617pfk21aw695a3h5ya-shared-dep niks3-go-unit-tests> CA: text:sha256:0hzwc2z4c7i0v8kqlyqi07kf8xnm29827c7r3gi8qkg6kin608hz niks3-go-unit-tests> --- PASS: TestClientFallsBackToClosures (8.87s) niks3-go-unit-tests> === CONT TestPush_SkippedKeySurvivesGCBeforeCommit niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Aborted multipart uploads count=1 kept=0 niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Received push request method=POST path=/api/pushes niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Received cleanup request method=DELETE path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Aborted multipart uploads count=1 kept=0 niks3-go-unit-tests> --- PASS: TestPendingCleanupUsesOneCutoff (12.67s) niks3-go-unit-tests> === CONT TestPush_RootsAreLockedInByteOrder niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Uploading 2 paths to 127.0.0.1 (1 already cached) niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Uploading lidnsvabrr3s5zdlspnnvk6h5k6npfbg-a (256B) niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Uploading vbcambxab3m7xcv6imzvibskhbybkyz2-shared-dep (136B) niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=vbcambxab3m7xcv6imzvibskhbybkyz2.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> === NAME TestPinProtectsFromGC niks3-go-unit-tests> client_integration_test.go:731: Pinned store path: /private/var/tb/3/scratch/ec71b307c420129e/build/TestPinProtectsFromGC3221096886/001/store/5wj96lnx5p0wfr6j55spgcm04n9fbsz6-pinned-file.txt niks3-go-unit-tests> client_integration_test.go:732: Unpinned store path: /private/var/tb/3/scratch/ec71b307c420129e/build/TestPinProtectsFromGC3221096886/001/store/isfxq5kjardbiyz1l9adadmc9z3xqamy-unpinned-file.txt niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=5h29g0f1sjnph3vf0nxcnwg1p8k5b6np.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=nar/1vnl0g6w4zgpfz06rb321mfd3jqsrs120jcl8dg2dxn014875y82.nar.zst error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=nar/04izaqcyx3jpxp59i7xq034s23mm24hmg11gwmish1kmsh6ggzpv.nar.zst error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=lidnsvabrr3s5zdlspnnvk6h5k6npfbg.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Received sign narinfos request method=POST path=/api/pushes/1/sign niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Signed narinfos id=1 count=3 niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Uploading 3 narinfos niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=5h29g0f1sjnph3vf0nxcnwg1p8k5b6np.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=vbcambxab3m7xcv6imzvibskhbybkyz2.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Received complete push request method=POST path=/api/pushes/1/complete niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=lidnsvabrr3s5zdlspnnvk6h5k6npfbg.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Received push request method=POST path=/api/pushes niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Completed push id=1 objects=8 duration=55.4135ms niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Upload complete. (247ms) niks3-go-unit-tests> === NAME TestClientPushesUseOnePush niks3-go-unit-tests> client_pushes_test.go:97: Retrieved narinfo from S3: niks3-go-unit-tests> StorePath: /private/var/tb/3/scratch/ec71b307c420129e/build/TestClientPushesUseOnePush3235103727/001/store/vbcambxab3m7xcv6imzvibskhbybkyz2-shared-dep niks3-go-unit-tests> URL: nar/1vnl0g6w4zgpfz06rb321mfd3jqsrs120jcl8dg2dxn014875y82.nar.zst niks3-go-unit-tests> Compression: zstd niks3-go-unit-tests> NarHash: sha256:1vnl0g6w4zgpfz06rb321mfd3jqsrs120jcl8dg2dxn014875y82 niks3-go-unit-tests> NarSize: 136 niks3-go-unit-tests> References: niks3-go-unit-tests> CA: text:sha256:08nxw05k7b0pzzy0f3swvnw4ldxdbclkdnklpidwmrxdhvfrmv7n niks3-go-unit-tests> client_pushes_test.go:97: Retrieved narinfo from S3: niks3-go-unit-tests> StorePath: /private/var/tb/3/scratch/ec71b307c420129e/build/TestClientPushesUseOnePush3235103727/001/store/lidnsvabrr3s5zdlspnnvk6h5k6npfbg-a niks3-go-unit-tests> URL: nar/04izaqcyx3jpxp59i7xq034s23mm24hmg11gwmish1kmsh6ggzpv.nar.zst niks3-go-unit-tests> Compression: zstd niks3-go-unit-tests> NarHash: sha256:04izaqcyx3jpxp59i7xq034s23mm24hmg11gwmish1kmsh6ggzpv niks3-go-unit-tests> NarSize: 256 niks3-go-unit-tests> References: /private/var/tb/3/scratch/ec71b307c420129e/build/TestClientPushesUseOnePush3235103727/001/store/vbcambxab3m7xcv6imzvibskhbybkyz2-shared-dep niks3-go-unit-tests> CA: text:sha256:0a03bdca2g4gv5faljfb5jnx1n6v1kjqwjz93p1anyp785g51crs niks3-go-unit-tests> client_pushes_test.go:97: Retrieved narinfo from S3: niks3-go-unit-tests> StorePath: /private/var/tb/3/scratch/ec71b307c420129e/build/TestClientPushesUseOnePush3235103727/001/store/5h29g0f1sjnph3vf0nxcnwg1p8k5b6np-b niks3-go-unit-tests> URL: nar/04izaqcyx3jpxp59i7xq034s23mm24hmg11gwmish1kmsh6ggzpv.nar.zst niks3-go-unit-tests> Compression: zstd niks3-go-unit-tests> NarHash: sha256:04izaqcyx3jpxp59i7xq034s23mm24hmg11gwmish1kmsh6ggzpv niks3-go-unit-tests> NarSize: 256 niks3-go-unit-tests> References: /private/var/tb/3/scratch/ec71b307c420129e/build/TestClientPushesUseOnePush3235103727/001/store/vbcambxab3m7xcv6imzvibskhbybkyz2-shared-dep niks3-go-unit-tests> CA: text:sha256:0a03bdca2g4gv5faljfb5jnx1n6v1kjqwjz93p1anyp785g51crs niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Uploading 1 paths to 127.0.0.1 (0 already cached) niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Uploading 5wj96lnx5p0wfr6j55spgcm04n9fbsz6-pinned-file.txt (128B) niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=5wj96lnx5p0wfr6j55spgcm04n9fbsz6.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> --- PASS: TestClientPushesUseOnePush (9.07s) niks3-go-unit-tests> === CONT TestPush_CompleteWaitsForCleanupOfThePush niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Received sign narinfos request method=POST path=/api/pushes/1/sign niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Signed narinfos id=1 count=1 niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=nar/0qmhsg42pqsz7x6hh02j8gznnac3yi3qpjhrqbwvz88i194jbb5s.nar.zst error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Uploading 1 narinfos niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Received complete push request method=POST path=/api/pushes/1/complete niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=5wj96lnx5p0wfr6j55spgcm04n9fbsz6.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Completed push id=1 objects=3 duration=18.187583ms niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Upload complete. (179ms) niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Received push request method=POST path=/api/pushes niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Uploading 1 paths to 127.0.0.1 (0 already cached) niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Uploading isfxq5kjardbiyz1l9adadmc9z3xqamy-unpinned-file.txt (128B) niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=nar/0gh0wdnr6gmk4r5sfzzh12isnl14rgmkrwy1ws41hpsrlndclg5h.nar.zst error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Received sign narinfos request method=POST path=/api/pushes/2/sign niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=isfxq5kjardbiyz1l9adadmc9z3xqamy.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Signed narinfos id=2 count=1 niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Uploading 1 narinfos niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Received complete push request method=POST path=/api/pushes/2/complete niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=isfxq5kjardbiyz1l9adadmc9z3xqamy.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Completed push id=2 objects=3 duration=1.29575ms niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Upload complete. (103ms) niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Starting cleanup of old closures method=DELETE path=/api/closures niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Garbage collection started niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Received push request method=POST path=/api/pushes niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Aborted multipart uploads count=0 kept=0 niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Uploading 2 paths to 127.0.0.1 (0 already cached) niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Uploading fybv6l3miwyv2dr257midza00if80v5w-top (264B) niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Uploading 97pir810q7l503bnn2zwqa1byasinp5v-shared-dep (136B) niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Force mode enabled - objects will be deleted immediately without grace period niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=97pir810q7l503bnn2zwqa1byasinp5v.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=fybv6l3miwyv2dr257midza00if80v5w.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=nar/0kiwx3k6rl56y0m9lh4rv7khbaif4xykkmaq0xqrfdby3rhs722b.nar.zst error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Received sign narinfos request method=POST path=/api/pushes/1/sign niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=nar/1vnl0g6w4zgpfz06rb321mfd3jqsrs120jcl8dg2dxn014875y82.nar.zst error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Signed narinfos id=1 count=2 niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Uploading 2 narinfos niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=97pir810q7l503bnn2zwqa1byasinp5v.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Received complete push request method=POST path=/api/pushes/1/complete niks3-go-unit-tests> 2026/10/08 17:03:32 WARN Failed to register uploaded object key=fybv6l3miwyv2dr257midza00if80v5w.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:32 INFO Completed push id=1 objects=6 duration=22.7835ms niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Upload complete. (184ms) niks3-go-unit-tests> === NAME TestClientSharedPathCommittedMidPush niks3-go-unit-tests> client_integration_test.go:680: Retrieved narinfo from S3: niks3-go-unit-tests> StorePath: /private/var/tb/3/scratch/ec71b307c420129e/build/TestClientSharedPathCommittedMidPush1166644602/001/store/97pir810q7l503bnn2zwqa1byasinp5v-shared-dep niks3-go-unit-tests> URL: nar/1vnl0g6w4zgpfz06rb321mfd3jqsrs120jcl8dg2dxn014875y82.nar.zst niks3-go-unit-tests> Compression: zstd niks3-go-unit-tests> NarHash: sha256:1vnl0g6w4zgpfz06rb321mfd3jqsrs120jcl8dg2dxn014875y82 niks3-go-unit-tests> NarSize: 136 niks3-go-unit-tests> References: niks3-go-unit-tests> CA: text:sha256:08nxw05k7b0pzzy0f3swvnw4ldxdbclkdnklpidwmrxdhvfrmv7n niks3-go-unit-tests> client_integration_test.go:680: Retrieved narinfo from S3: niks3-go-unit-tests> StorePath: /private/var/tb/3/scratch/ec71b307c420129e/build/TestClientSharedPathCommittedMidPush1166644602/001/store/fybv6l3miwyv2dr257midza00if80v5w-top niks3-go-unit-tests> URL: nar/0kiwx3k6rl56y0m9lh4rv7khbaif4xykkmaq0xqrfdby3rhs722b.nar.zst niks3-go-unit-tests> Compression: zstd niks3-go-unit-tests> NarHash: sha256:0kiwx3k6rl56y0m9lh4rv7khbaif4xykkmaq0xqrfdby3rhs722b niks3-go-unit-tests> NarSize: 264 niks3-go-unit-tests> References: /private/var/tb/3/scratch/ec71b307c420129e/build/TestClientSharedPathCommittedMidPush1166644602/001/store/97pir810q7l503bnn2zwqa1byasinp5v-shared-dep niks3-go-unit-tests> CA: text:sha256:03drhlblv910kcwd17s3i8ih890isjpb8gx81kdv1n9dwichhan4 niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Garbage collection completed failed-uploads-deleted=0 old-closures-deleted=1 objects-marked-for-deletion=3 objects-deleted-after-grace-period=3 objects-failed-to-delete=0 niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Vacuumed table table=pending_closures niks3-go-unit-tests> --- PASS: TestClientSharedPathCommittedMidPush (8.83s) niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Vacuumed table table=pending_objects niks3-go-unit-tests> === CONT TestPush_RepeatedRootCommitsOnce niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Vacuumed table table=multipart_uploads niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Vacuumed table table=closures niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Vacuumed table table=objects niks3-go-unit-tests> === NAME TestClientWithDependencies niks3-go-unit-tests> client_integration_test.go:613: Built derivation: /private/var/tb/3/scratch/ec71b307c420129e/build/TestClientWithDependencies2365099125/001/store/xqv3z98yzfcz89k2nwji71fzydnq6ap9-test-script niks3-go-unit-tests> client_integration_test.go:615: Found 1 dependencies (including self) niks3-go-unit-tests> === NAME TestClientMultipleUploads niks3-go-unit-tests> client_integration_test.go:358: Created store path 0: /private/var/tb/3/scratch/ec71b307c420129e/build/TestClientMultipleUploads3109041811/001/store/8hrndaapswhq7fm021982ysjqv6xiqcr-test-file-0.txt niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Received push request method=POST path=/api/pushes niks3-go-unit-tests> client_integration_test.go:358: Created store path 1: /private/var/tb/3/scratch/ec71b307c420129e/build/TestClientMultipleUploads3109041811/001/store/nkl9s3ra7gdcn3pbk7kj84cw49c142pn-test-file-1.txt niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Uploading 1 paths to 127.0.0.1 (0 already cached) niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Uploading xqv3z98yzfcz89k2nwji71fzydnq6ap9-test-script (136B) niks3-go-unit-tests> 2026/10/08 17:03:33 WARN Failed to register uploaded object key=nar/1s7yghixzpinyqm7g59kyn3sav81pmnsdi5v63m6x4r2vacy907j.nar.zst error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:33 WARN Failed to register uploaded object key=xqv3z98yzfcz89k2nwji71fzydnq6ap9.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:33 WARN Failed to register uploaded object key=log/fgrhwrpnawlayl026n4x2dv9w54mjs0y-test-script.drv error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Received sign narinfos request method=POST path=/api/pushes/1/sign niks3-go-unit-tests> client_integration_test.go:358: Created store path 2: /private/var/tb/3/scratch/ec71b307c420129e/build/TestClientMultipleUploads3109041811/001/store/kj5hm0rjxnjrdbpwh3hj2vqjwh0dj9ig-test-file-2.txt niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Signed narinfos id=1 count=1 niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Uploading 1 narinfos niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Received complete push request method=POST path=/api/pushes/1/complete niks3-go-unit-tests> 2026/10/08 17:03:33 WARN Failed to register uploaded object key=xqv3z98yzfcz89k2nwji71fzydnq6ap9.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Completed push id=1 objects=4 duration=28.962583ms niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Upload complete. (212ms) niks3-go-unit-tests> === NAME TestClientWithDependencies niks3-go-unit-tests> client_integration_test.go:617: Skipping nix copy test - isolated store (/private/var/tb/3/scratch/ec71b307c420129e/build/TestClientWithDependencies2365099125/001/store) requires matching store prefix niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Received push request method=POST path=/api/pushes niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Uploading 3 paths to 127.0.0.1 (0 already cached) niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Uploading nkl9s3ra7gdcn3pbk7kj84cw49c142pn-test-file-1.txt (160B) niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Uploading 8hrndaapswhq7fm021982ysjqv6xiqcr-test-file-0.txt (160B) niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Uploading kj5hm0rjxnjrdbpwh3hj2vqjwh0dj9ig-test-file-2.txt (160B) niks3-go-unit-tests> 2026/10/08 17:03:33 WARN Failed to register uploaded object key=8hrndaapswhq7fm021982ysjqv6xiqcr.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:33 WARN Failed to register uploaded object key=nar/0ahq3izw3h0b0c08p3xdfclh758fwxnp85ccvflasb4vnfsv50ri.nar.zst error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:33 WARN Failed to register uploaded object key=nkl9s3ra7gdcn3pbk7kj84cw49c142pn.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:33 WARN Failed to register uploaded object key=kj5hm0rjxnjrdbpwh3hj2vqjwh0dj9ig.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:33 WARN Failed to register uploaded object key=nar/13p9pqi0ga6fx2apcwls9hjnv7nmf740ggpn5zvfzdsp5vz2bbg4.nar.zst error="server returned 404: 404 page not found\n" niks3-go-unit-tests> === NAME TestClientIntegration niks3-go-unit-tests> client_integration_test.go:286: Created store path: /private/var/tb/3/scratch/ec71b307c420129e/build/TestClientIntegration1864514543/002/store/4292cgj8mrf2xbbd2lgbj3b4fj4smg3z-test-file.txt niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Received sign narinfos request method=POST path=/api/pushes/1/sign niks3-go-unit-tests> 2026/10/08 17:03:33 WARN Failed to register uploaded object key=nar/1823g6vx4q5zqvr73m7lkq1wpk40fin7bsc792di430yk7sg4lka.nar.zst error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Signed narinfos id=1 count=3 niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Uploading 3 narinfos niks3-go-unit-tests> --- PASS: TestClientWithDependencies (8.96s) niks3-go-unit-tests> === CONT TestPush_CompleteCommitsEveryRoot niks3-go-unit-tests> 2026/10/08 17:03:33 WARN Failed to register uploaded object key=8hrndaapswhq7fm021982ysjqv6xiqcr.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:33 WARN Failed to register uploaded object key=nkl9s3ra7gdcn3pbk7kj84cw49c142pn.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Received complete push request method=POST path=/api/pushes/1/complete niks3-go-unit-tests> 2026/10/08 17:03:33 WARN Failed to register uploaded object key=kj5hm0rjxnjrdbpwh3hj2vqjwh0dj9ig.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Completed push id=1 objects=9 duration=35.772709ms niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Upload complete. (180ms) niks3-go-unit-tests> === NAME TestClientMultipleUploads niks3-go-unit-tests> client_integration_test.go:369: Uploaded 3 paths in 211.425042ms niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Received push request method=POST path=/api/pushes niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Uploading 1 paths to 127.0.0.1 (0 already cached) niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Uploading 4292cgj8mrf2xbbd2lgbj3b4fj4smg3z-test-file.txt (152B) niks3-go-unit-tests> --- PASS: TestCreatePendingClosure_SmallNARUsesSimplePUT (7.82s) niks3-go-unit-tests> === CONT TestDeduplicatedObjectsRecordedAsPending niks3-go-unit-tests> 2026/10/08 17:03:33 WARN Failed to register uploaded object key=4292cgj8mrf2xbbd2lgbj3b4fj4smg3z.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Received sign narinfos request method=POST path=/api/pushes/1/sign niks3-go-unit-tests> 2026/10/08 17:03:33 WARN Failed to register uploaded object key=nar/11l1b7hsy9g9pz8i2rcn4n128l6pyr2yf58d49r12hr5caw9dzk1.nar.zst error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Signed narinfos id=1 count=1 niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Uploading 1 narinfos niks3-go-unit-tests> --- PASS: TestClientMultipleUploads (8.54s) niks3-go-unit-tests> === CONT TestSkippedUploadsHandler niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Client skipped oversized paths paths=3 nar_bytes=5000000000 niks3-go-unit-tests> --- PASS: TestSkippedUploadsHandler (0.01s) niks3-go-unit-tests> === CONT TestPendingClosureWriteTimeout niks3-go-unit-tests> === RUN TestPendingClosureWriteTimeout/empty niks3-go-unit-tests> === PAUSE TestPendingClosureWriteTimeout/empty niks3-go-unit-tests> === RUN TestPendingClosureWriteTimeout/400_objects niks3-go-unit-tests> === PAUSE TestPendingClosureWriteTimeout/400_objects niks3-go-unit-tests> === RUN TestPendingClosureWriteTimeout/670k_objects niks3-go-unit-tests> === PAUSE TestPendingClosureWriteTimeout/670k_objects niks3-go-unit-tests> === RUN TestPendingClosureWriteTimeout/handler_extends_the_server's_deadline niks3-go-unit-tests> === PAUSE TestPendingClosureWriteTimeout/handler_extends_the_server's_deadline niks3-go-unit-tests> === CONT TestProxyWriteTimeout niks3-go-unit-tests> === RUN TestProxyWriteTimeout/narinfo niks3-go-unit-tests> === PAUSE TestProxyWriteTimeout/narinfo niks3-go-unit-tests> === RUN TestProxyWriteTimeout/1_GiB_nar niks3-go-unit-tests> === PAUSE TestProxyWriteTimeout/1_GiB_nar niks3-go-unit-tests> === RUN TestProxyWriteTimeout/10_GiB_nar niks3-go-unit-tests> === PAUSE TestProxyWriteTimeout/10_GiB_nar niks3-go-unit-tests> === RUN TestProxyWriteTimeout/unknown_size niks3-go-unit-tests> === PAUSE TestProxyWriteTimeout/unknown_size niks3-go-unit-tests> === CONT TestCompleteMultipartUploadHandler_RateLimitTriggersThrottle niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Received complete push request method=POST path=/api/pushes/1/complete niks3-go-unit-tests> 2026/10/08 17:03:33 WARN Failed to register uploaded object key=4292cgj8mrf2xbbd2lgbj3b4fj4smg3z.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Completed push id=1 objects=3 duration=21.168541ms niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Upload complete. (209ms) niks3-go-unit-tests> 2026/10/08 17:03:33 INFO All 1 paths already cached niks3-go-unit-tests> === NAME TestClientIntegration niks3-go-unit-tests> client_integration_test.go:312: Retrieved narinfo from S3: niks3-go-unit-tests> StorePath: /private/var/tb/3/scratch/ec71b307c420129e/build/TestClientIntegration1864514543/002/store/4292cgj8mrf2xbbd2lgbj3b4fj4smg3z-test-file.txt niks3-go-unit-tests> URL: nar/11l1b7hsy9g9pz8i2rcn4n128l6pyr2yf58d49r12hr5caw9dzk1.nar.zst niks3-go-unit-tests> Compression: zstd niks3-go-unit-tests> NarHash: sha256:11l1b7hsy9g9pz8i2rcn4n128l6pyr2yf58d49r12hr5caw9dzk1 niks3-go-unit-tests> NarSize: 152 niks3-go-unit-tests> References: niks3-go-unit-tests> CA: fixed:r:sha256:11l1b7hsy9g9pz8i2rcn4n128l6pyr2yf58d49r12hr5caw9dzk1 niks3-go-unit-tests> client_integration_test.go:313: Retrieved .ls file from S3 (compressed size: 77 bytes) niks3-go-unit-tests> client_integration_test.go:313: Decompressed .ls content (64 bytes): niks3-go-unit-tests> {"version":1,"root":{"type":"regular","size":39,"narOffset":96}} niks3-go-unit-tests> client_integration_test.go:316: Testing garbage collection... niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Received complete multipart upload request method=POST path=/api/multipart/complete niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Starting cleanup of old closures method=DELETE path=/api/closures niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Garbage collection started niks3-go-unit-tests> 2026/10/08 17:03:33 ERROR Failed to get multipart upload error="no rows in result set" upload_id=does-not-exist object_key=nar/0000000000000000000000000000000000000000000000000000.nar.zst niks3-go-unit-tests> --- PASS: TestCompleteMultipartUnregistered (7.31s) niks3-go-unit-tests> === CONT TestLeadEndsOnShutdown niks3-go-unit-tests> 2026/10/08 17:03:33 INFO Aborted multipart uploads count=0 kept=0 niks3-go-unit-tests> 2026/10/08 17:03:33 WARN Force mode enabled - objects will be deleted immediately without grace period niks3-go-unit-tests> 2026/10/08 17:03:34 INFO Garbage collection completed failed-uploads-deleted=0 old-closures-deleted=1 objects-marked-for-deletion=3 objects-deleted-after-grace-period=3 objects-failed-to-delete=0 niks3-go-unit-tests> 2026/10/08 17:03:34 INFO Vacuumed table table=pending_closures niks3-go-unit-tests> 2026/10/08 17:03:34 INFO Vacuumed table table=pending_objects niks3-go-unit-tests> 2026/10/08 17:03:34 INFO Vacuumed table table=multipart_uploads niks3-go-unit-tests> 2026/10/08 17:03:34 INFO Vacuumed table table=closures niks3-go-unit-tests> 2026/10/08 17:03:34 INFO Vacuumed table table=objects niks3-go-unit-tests> 2026/10/08 17:03:34 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:34 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:34 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:34 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:34 INFO Garbage collection progress phase="" failed_uploads_deleted=0 old_closures_deleted=1 objects_marked=3 objects_deleted=3 objects_failed=0 niks3-go-unit-tests> 2026/10/08 17:03:34 INFO Received create pin request method=POST path=/api/pins/myapp niks3-go-unit-tests> 2026/10/08 17:03:34 INFO Created/updated pin name=myapp store_path=/private/var/tb/3/scratch/ec71b307c420129e/build/TestPinProtectsFromGC3221096886/001/store/5wj96lnx5p0wfr6j55spgcm04n9fbsz6-pinned-file.txt narinfo_key=5wj96lnx5p0wfr6j55spgcm04n9fbsz6.narinfo niks3-go-unit-tests> 2026/10/08 17:03:34 INFO Starting cleanup of old closures method=DELETE path=/api/closures niks3-go-unit-tests> 2026/10/08 17:03:34 INFO Garbage collection started niks3-go-unit-tests> 2026/10/08 17:03:34 INFO Aborted multipart uploads count=0 kept=0 niks3-go-unit-tests> 2026/10/08 17:03:34 WARN Force mode enabled - objects will be deleted immediately without grace period niks3-go-unit-tests> 2026/10/08 17:03:34 INFO Received cleanup request method=DELETE path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:34 INFO Garbage collection completed failed-uploads-deleted=0 old-closures-deleted=0 objects-marked-for-deletion=0 objects-deleted-after-grace-period=0 objects-failed-to-delete=0 niks3-go-unit-tests> 2026/10/08 17:03:35 INFO Vacuumed table table=pending_closures niks3-go-unit-tests> 2026/10/08 17:03:35 INFO Vacuumed table table=pending_objects niks3-go-unit-tests> 2026/10/08 17:03:35 INFO Aborted multipart uploads count=0 kept=0 niks3-go-unit-tests> 2026/10/08 17:03:35 INFO Vacuumed table table=multipart_uploads niks3-go-unit-tests> 2026/10/08 17:03:35 INFO Vacuumed table table=closures niks3-go-unit-tests> 2026/10/08 17:03:35 INFO Vacuumed table table=objects niks3-go-unit-tests> 2026/10/08 17:03:35 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:35 INFO Received cleanup request method=DELETE path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:35 INFO Aborted multipart uploads count=1 kept=0 niks3-go-unit-tests> 2026/10/08 17:03:35 INFO Received complete upload request method=POST path=/api/pending_closures/1/complete niks3-go-unit-tests> 2026-10-08 17:03:35.286 UTC [67920] ERROR: Closure does not exist: id=1 niks3-go-unit-tests> 2026-10-08 17:03:35.286 UTC [67920] CONTEXT: PL/pgSQL function commit_pending_closure(bigint) line 13 at RAISE niks3-go-unit-tests> 2026-10-08 17:03:35.286 UTC [67920] STATEMENT: -- name: CommitPendingClosure :one niks3-go-unit-tests> SELECT commit_pending_closure($1::bigint)::bigint niks3-go-unit-tests> niks3-go-unit-tests> --- PASS: TestService_cleanupPendingClosuresHandler (7.03s) niks3-go-unit-tests> === CONT TestGCMetrics niks3-go-unit-tests> === RUN TestService_RequireScope_OIDC/builder_may_write niks3-go-unit-tests> === PAUSE TestService_RequireScope_OIDC/builder_may_write niks3-go-unit-tests> === RUN TestService_RequireScope_OIDC/builder_may_not_admin niks3-go-unit-tests> === PAUSE TestService_RequireScope_OIDC/builder_may_not_admin niks3-go-unit-tests> === RUN TestService_RequireScope_OIDC/ops_may_admin niks3-go-unit-tests> === PAUSE TestService_RequireScope_OIDC/ops_may_admin niks3-go-unit-tests> === RUN TestService_RequireScope_OIDC/ops_may_not_write niks3-go-unit-tests> === PAUSE TestService_RequireScope_OIDC/ops_may_not_write niks3-go-unit-tests> === RUN TestService_RequireScope_OIDC/reader_may_not_write niks3-go-unit-tests> === PAUSE TestService_RequireScope_OIDC/reader_may_not_write niks3-go-unit-tests> === RUN TestService_RequireScope_OIDC/static_token_may_admin niks3-go-unit-tests> === PAUSE TestService_RequireScope_OIDC/static_token_may_admin niks3-go-unit-tests> === RUN TestService_RequireScope_OIDC/static_token_may_write niks3-go-unit-tests> === PAUSE TestService_RequireScope_OIDC/static_token_may_write niks3-go-unit-tests> === RUN TestService_RequireScope_OIDC/reader_may_read niks3-go-unit-tests> === PAUSE TestService_RequireScope_OIDC/reader_may_read niks3-go-unit-tests> === RUN TestService_RequireScope_OIDC/writer_implies_read niks3-go-unit-tests> === PAUSE TestService_RequireScope_OIDC/writer_implies_read niks3-go-unit-tests> === RUN TestService_RequireScope_OIDC/anonymous_may_not_read niks3-go-unit-tests> === PAUSE TestService_RequireScope_OIDC/anonymous_may_not_read niks3-go-unit-tests> === RUN TestService_RequireScope_OIDC/reader_may_read_with_netrc niks3-go-unit-tests> === PAUSE TestService_RequireScope_OIDC/reader_may_read_with_netrc niks3-go-unit-tests> === RUN TestService_RequireScope_OIDC/static_token_may_admin_with_netrc niks3-go-unit-tests> === PAUSE TestService_RequireScope_OIDC/static_token_may_admin_with_netrc niks3-go-unit-tests> === RUN TestService_RequireScope_OIDC/wrong_netrc_password_may_not_read niks3-go-unit-tests> === PAUSE TestService_RequireScope_OIDC/wrong_netrc_password_may_not_read niks3-go-unit-tests> === RUN TestService_RequireScope_OIDC/empty_netrc_password_may_not_read niks3-go-unit-tests> === PAUSE TestService_RequireScope_OIDC/empty_netrc_password_may_not_read niks3-go-unit-tests> === CONT TestGCBugBareHashReferences niks3-go-unit-tests> {"timestamp":"2026-10-08T17:03:35.624761Z","level":"ERROR","duration":"130.6485ms","resp":"Response { status: 500, version: HTTP/1.1, headers: {\"content-type\": \"application/xml\"}, body: Body { once: b\"InternalErrorWe encountered an internal error, please try again.\", remaining_limit: None } }","target":"s3s::service","filename":"/nix/var/nix/builds/nix-28079-3532540677/rustfs-1.0.0-vendor/source-registry-0/s3s-0.16.0/src/service.rs","line_number":680,"threadName":"rustfs-worker","threadId":"ThreadId(8)"} niks3-go-unit-tests> {"timestamp":"2026-10-08T17:03:35.627086Z","level":"ERROR","message":"HTTP request completed","event":"http_request_completed","component":"server","subsystem":"http","request_id":"f1b4a1b9-6c78-44ea-b956-912d93df8d8e","trace_id":"unknown","span_id":"unknown","peer_addr":"127.0.0.1","method":"PUT","uri":"/bucket56/","status_code":500,"suppressed_errors":0,"duration_ms":132,"result":"server_error","target":"rustfs::server::http","filename":"rustfs/src/server/layer.rs","line_number":501,"threadName":"rustfs-worker","threadId":"ThreadId(8)"} niks3-go-unit-tests> {"timestamp":"2026-10-08T17:03:35.631559Z","level":"ERROR","message":"Heal object operation failed","event":"heal_object_result","component":"heal","subsystem":"object","task_id":"b5ef46b5-2e60-450d-bf4e-7a1bc447762a","bucket":".rustfs.sys","object":"buckets/.usage.v2.json.bkp","result":"failed","error":"Storage error: Io error: Too many open files (os error 24)","target":"rustfs::heal::task","filename":"crates/heal/src/heal/task/heal_object.rs","line_number":261,"threadName":"rustfs-worker","threadId":"ThreadId(9)"} niks3-go-unit-tests> {"timestamp":"2026-10-08T17:03:35.631839Z","level":"ERROR","message":"Heal scheduler task failed","event":"heal_scheduler_state","component":"heal","subsystem":"manager","task_id":"b5ef46b5-2e60-450d-bf4e-7a1bc447762a","heal_type":"object","set":"pool_0_set_0","state":"task_failed","error":"Storage error: Io error: Too many open files (os error 24)","target":"rustfs::heal::manager","filename":"crates/heal/src/heal/manager/scheduler.rs","line_number":269,"threadName":"rustfs-worker","threadId":"ThreadId(9)"} niks3-go-unit-tests> --- PASS: TestDeleteClosuresRacingPins (12.63s) niks3-go-unit-tests> === CONT TestGCAdvisoryLockBlocksConcurrentRun niks3-go-unit-tests> {"timestamp":"2026-10-08T17:03:35.707653Z","level":"ERROR","duration":"186.131875ms","resp":"Response { status: 500, version: HTTP/1.1, headers: {\"content-type\": \"application/xml\"}, body: Body { once: b\"InternalErrorWe encountered an internal error, please try again.\", remaining_limit: None } }","target":"s3s::service","filename":"/nix/var/nix/builds/nix-28079-3532540677/rustfs-1.0.0-vendor/source-registry-0/s3s-0.16.0/src/service.rs","line_number":680,"threadName":"rustfs-worker","threadId":"ThreadId(4)"} niks3-go-unit-tests> === NAME TestService_verifyS3Integrity niks3-go-unit-tests> uploads_test.go:403: expected http status 200 for part 7, got 500 niks3-go-unit-tests> uploads_test.go:403: no ETag in response for part 7 niks3-go-unit-tests> === NAME TestService_createPendingClosureHandler niks3-go-unit-tests> uploads_test.go:307: expected http status 200 for part 5, got 500 niks3-go-unit-tests> uploads_test.go:307: no ETag in response for part 5 niks3-go-unit-tests> {"timestamp":"2026-10-08T17:03:35.728611Z","level":"ERROR","duration":"124.584ms","resp":"Response { status: 500, version: HTTP/1.1, headers: {\"content-type\": \"application/xml\"}, body: Body { once: b\"InternalErrorWe encountered an internal error, please try again.\", remaining_limit: None } }","target":"s3s::service","filename":"/nix/var/nix/builds/nix-28079-3532540677/rustfs-1.0.0-vendor/source-registry-0/s3s-0.16.0/src/service.rs","line_number":680,"threadName":"rustfs-worker","threadId":"ThreadId(11)"} niks3-go-unit-tests> === NAME TestOrphanedObjectsGCStressTest niks3-go-unit-tests> orphaned_objects_gc_test.go:503: Stress test completed successfully: niks3-go-unit-tests> orphaned_objects_gc_test.go:504: - Active objects preserved: 20 niks3-go-unit-tests> orphaned_objects_gc_test.go:505: - Objects deleted: 210 niks3-go-unit-tests> orphaned_objects_gc_test.go:506: - Total GC'd: 210 niks3-go-unit-tests> --- PASS: TestOrphanedObjectsGCStressTest (18.23s) niks3-go-unit-tests> === CONT TestReadRedirectNar niks3-go-unit-tests> 2026/10/08 17:03:35 INFO Garbage collection progress phase="" failed_uploads_deleted=0 old_closures_deleted=1 objects_marked=3 objects_deleted=3 objects_failed=0 niks3-go-unit-tests> === NAME TestClientIntegration niks3-go-unit-tests> client_integration_test.go:323: Objects in database after GC: niks3-go-unit-tests> client_integration_test.go:323: Successfully deleted all objects with GC --force niks3-go-unit-tests> --- PASS: TestClientIntegration (10.78s) niks3-go-unit-tests> === CONT TestReadRedirectUsesPublicS3URL niks3-go-unit-tests> 2026/10/08 17:03:36 INFO Received complete multipart upload request method=POST path=/api/multipart/complete niks3-go-unit-tests> 2026/10/08 17:03:36 ERROR Failed to complete multipart upload error="One or more of the specified parts could not be found. The part may not have been uploaded, or the specified entity tag may not match the part's entity tag." object_key=nar/dadb44fdadb44fdadb44fdadb44f000000000000000000000000.nar.zst upload_id=MzQ2Njc2OWUtOTMxYy00YjBjLTg5ZjEtOTQ3OGM5ODJjNzNjLjlhNjlkYmIxLWU1OGEtNGQ1Ni04MzQ0LTE5MGY3YmU4MzNlMngxNzkxNDc5MDE0Mjc2ODk2MDAw niks3-go-unit-tests> === NAME TestService_verifyS3Integrity niks3-go-unit-tests> uploads_test.go:403: unexpected http status=500 body=failed to complete multipart upload: One or more of the specified parts could not be found. The part may not have been uploaded, or the specified entity tag may not match the part's entity tag. niks3-go-unit-tests> niks3-go-unit-tests> niks3-go-unit-tests> --- FAIL: TestService_verifyS3Integrity (8.78s) niks3-go-unit-tests> === CONT TestReadProxyRangeRequest niks3-go-unit-tests> --- PASS: TestObjectStatsLargeCommit (17.21s) niks3-go-unit-tests> === CONT TestReadRedirectKeepsNarinfoProxied niks3-go-unit-tests> 2026/10/08 17:03:36 INFO Received complete multipart upload request method=POST path=/api/multipart/complete niks3-go-unit-tests> 2026/10/08 17:03:36 ERROR Failed to complete multipart upload error="One or more of the specified parts could not be found. The part may not have been uploaded, or the specified entity tag may not match the part's entity tag." object_key=nar/0000000000000000000000000000000000000000000000000000.nar.zst upload_id=MzQ2Njc2OWUtOTMxYy00YjBjLTg5ZjEtOTQ3OGM5ODJjNzNjLmVkMDgzODQ2LWMzMDktNDU2NC1hMWNkLWQ3YjY2MDNiMWNlZHgxNzkxNDc5MDE0NjkwOTgxMDAw niks3-go-unit-tests> === NAME TestService_createPendingClosureHandler niks3-go-unit-tests> uploads_test.go:307: unexpected http status=500 body=failed to complete multipart upload: One or more of the specified parts could not be found. The part may not have been uploaded, or the specified entity tag may not match the part's entity tag. niks3-go-unit-tests> niks3-go-unit-tests> niks3-go-unit-tests> --- FAIL: TestService_createPendingClosureHandler (8.51s) niks3-go-unit-tests> === CONT TestService_ReadAuthMiddleware niks3-go-unit-tests> --- PASS: TestCacheStatsHandler (7.19s) niks3-go-unit-tests> === CONT TestService_AuthMiddleware_OIDC niks3-go-unit-tests> 2026/10/08 17:03:36 INFO OIDC provider initialized name=test issuer=http://127.0.0.1:54444/oidc niks3-go-unit-tests> === NAME TestClientCADerivations niks3-go-unit-tests> client_ca_test.go:136: Built CA derivation: /private/var/tb/3/scratch/ec71b307c420129e/build/TestClientCADerivations2321397227/001/store/s6lwpkwv38nn4nk43fqgd2diwj7wrwih-ca-test niks3-go-unit-tests> --- PASS: TestService_ReadScope_PublicByDefault (7.06s) niks3-go-unit-tests> === CONT TestService_AuthMiddleware_MTLSBoundSubjects niks3-go-unit-tests> === NAME TestPinProtectsFromGC niks3-go-unit-tests> client_integration_test.go:840: Pin successfully protected closure from garbage collection niks3-go-unit-tests> === NAME TestClientCADerivations niks3-go-unit-tests> client_ca_test.go:139: Found 1 dependencies (including self) niks3-go-unit-tests> === CONT TestService_Rustfstest niks3-go-unit-tests> --- PASS: TestPinProtectsFromGC (13.34s) niks3-go-unit-tests> 2026/10/08 17:03:37 INFO Received push request method=POST path=/api/pushes niks3-go-unit-tests> 2026/10/08 17:03:37 INFO Uploading 1 paths to 127.0.0.1 (0 already cached) niks3-go-unit-tests> 2026/10/08 17:03:37 INFO Uploading s6lwpkwv38nn4nk43fqgd2diwj7wrwih-ca-test (144B) niks3-go-unit-tests> 2026/10/08 17:03:37 WARN Failed to register uploaded object key=s6lwpkwv38nn4nk43fqgd2diwj7wrwih.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:37 WARN Failed to register uploaded object key=nar/04jj7iiy79vhzp5kk3r2751n9x3xa44j98y5bk1ds4jp31kky74n.nar.zst error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:37 WARN Failed to register uploaded object key=log/2l2009r81wvmmvqcrb6v3v4l592yqxwi-ca-test.drv error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:37 INFO Received sign narinfos request method=POST path=/api/pushes/1/sign niks3-go-unit-tests> 2026/10/08 17:03:37 INFO Signed narinfos id=1 count=1 niks3-go-unit-tests> 2026/10/08 17:03:37 INFO Uploading 1 narinfos niks3-go-unit-tests> 2026/10/08 17:03:37 INFO Received push request method=POST path=/api/pushes niks3-go-unit-tests> 2026/10/08 17:03:37 INFO Received complete push request method=POST path=/api/pushes/1/complete niks3-go-unit-tests> 2026/10/08 17:03:37 WARN Failed to register uploaded object key=s6lwpkwv38nn4nk43fqgd2diwj7wrwih.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/10/08 17:03:37 INFO Completed push id=1 objects=4 duration=36.520417ms niks3-go-unit-tests> 2026/10/08 17:03:37 INFO Upload complete. (320ms) niks3-go-unit-tests> === NAME TestClientCADerivations niks3-go-unit-tests> client_ca_test.go:180: Narinfo contains CA field: StorePath: /private/var/tb/3/scratch/ec71b307c420129e/build/TestClientCADerivations2321397227/001/store/s6lwpkwv38nn4nk43fqgd2diwj7wrwih-ca-test niks3-go-unit-tests> URL: nar/04jj7iiy79vhzp5kk3r2751n9x3xa44j98y5bk1ds4jp31kky74n.nar.zst niks3-go-unit-tests> Compression: zstd niks3-go-unit-tests> NarHash: sha256:04jj7iiy79vhzp5kk3r2751n9x3xa44j98y5bk1ds4jp31kky74n niks3-go-unit-tests> NarSize: 144 niks3-go-unit-tests> References: niks3-go-unit-tests> Deriver: /private/var/tb/3/scratch/ec71b307c420129e/build/TestClientCADerivations2321397227/001/store/2l2009r81wvmmvqcrb6v3v4l592yqxwi-ca-test.drv niks3-go-unit-tests> CA: fixed:r:sha256:04jj7iiy79vhzp5kk3r2751n9x3xa44j98y5bk1ds4jp31kky74n niks3-go-unit-tests> client_ca_test.go:185: Checking for realisation files in S3... niks3-go-unit-tests> client_ca_test.go:207: No realisation files uploaded - this is expected for locally built CA derivations niks3-go-unit-tests> client_ca_test.go:208: Locally built CA derivations don't have DrvOutput IDs until they're substituted from a cache niks3-go-unit-tests> --- PASS: TestPush_OverlappingRootsStoreOneRowPerKey (7.20s) niks3-go-unit-tests> === CONT TestParseSize niks3-go-unit-tests> --- PASS: TestParseSize (0.00s) niks3-go-unit-tests> === CONT TestLeadElectsOneAndHandsOver niks3-go-unit-tests> === NAME TestClientCADerivations niks3-go-unit-tests> client_ca_test.go:258: nix copy output: error: binary cache 's3://bucket56?endpoint=http://localhost:54165®ion=eu-west-1' is for Nix stores with prefix '/nix/store', not '/private/var/tb/3/scratch/ec71b307c420129e/build/TestClientCADerivations2321397227/001/store' niks3-go-unit-tests> client_ca_test.go:259: nix copy failed (might be expected with isolated stores): exit status 1 niks3-go-unit-tests> --- PASS: TestClientCADerivations (8.67s) niks3-go-unit-tests> === CONT TestLeadIncumbentAnnouncesAtOnce niks3-go-unit-tests> 2026/10/08 17:03:37 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:37 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:38 INFO Received push request method=POST path=/api/pushes niks3-go-unit-tests> 2026/10/08 17:03:38 INFO Received sign narinfos request method=POST path=/api/pushes/1/sign niks3-go-unit-tests> 2026/10/08 17:03:38 INFO Signed narinfos id=1 count=1 niks3-go-unit-tests> 2026/10/08 17:03:38 INFO Received sign narinfos request method=POST path=/api/pushes/1/sign niks3-go-unit-tests> 2026/10/08 17:03:38 INFO Received sign narinfos request method=POST path=/api/pushes/1/sign niks3-go-unit-tests> 2026/10/08 17:03:38 ERROR Failed to sign narinfos signer="index 1" error="signing key cannot be nil" niks3-go-unit-tests> 2026/10/08 17:03:38 INFO Received sign narinfos request method=POST path=/api/pushes/1/sign niks3-go-unit-tests> 2026/10/08 17:03:38 ERROR Failed to sign narinfos signer=niks3-test-1 error="signer failed" niks3-go-unit-tests> 2026/10/08 17:03:38 INFO Received sign narinfos request method=POST path=/api/pushes/1/sign niks3-go-unit-tests> 2026/10/08 17:03:38 ERROR Signer returned unexpected signature count signer=niks3-test-1 got=0 want=1 niks3-go-unit-tests> 2026/10/08 17:03:38 INFO Received sign narinfos request method=POST path=/api/pushes/1/sign niks3-go-unit-tests> 2026/10/08 17:03:38 ERROR Signer returned unexpected object key signer=niks3-test-1 object_key=unexpected.narinfo niks3-go-unit-tests> --- PASS: TestPush_SignsNarinfosOfItsPendingObjects (7.44s) niks3-go-unit-tests> === CONT TestReadProxyRootRedirectsToIndexHTML niks3-go-unit-tests> === RUN TestPush_RejectsBadRequests/no_roots niks3-go-unit-tests> === PAUSE TestPush_RejectsBadRequests/no_roots niks3-go-unit-tests> === RUN TestPush_RejectsBadRequests/no_objects niks3-go-unit-tests> === PAUSE TestPush_RejectsBadRequests/no_objects niks3-go-unit-tests> === RUN TestPush_RejectsBadRequests/bad_root niks3-go-unit-tests> === PAUSE TestPush_RejectsBadRequests/bad_root niks3-go-unit-tests> === RUN TestPush_RejectsBadRequests/root_not_in_objects niks3-go-unit-tests> === PAUSE TestPush_RejectsBadRequests/root_not_in_objects niks3-go-unit-tests> === CONT TestReadProxyDisabled niks3-go-unit-tests> 2026/10/08 17:03:38 INFO Received push request method=POST path=/api/pushes niks3-go-unit-tests> 2026/10/08 17:03:39 INFO Received complete push request method=POST path=/api/pushes/1/complete niks3-go-unit-tests> 2026/10/08 17:03:39 INFO Completed push id=1 objects=4 duration=49.974958ms niks3-go-unit-tests> 2026/10/08 17:03:39 INFO Received push request method=POST path=/api/pushes niks3-go-unit-tests> 2026/10/08 17:03:39 INFO Aborted multipart uploads count=0 kept=0 niks3-go-unit-tests> 2026/10/08 17:03:39 WARN Force mode enabled - objects will be deleted immediately without grace period niks3-go-unit-tests> 2026/10/08 17:03:39 INFO Garbage collection completed failed-uploads-deleted=0 old-closures-deleted=1 objects-marked-for-deletion=2 objects-deleted-after-grace-period=2 objects-failed-to-delete=0 niks3-go-unit-tests> 2026/10/08 17:03:39 INFO Received push request method=POST path=/api/pushes niks3-go-unit-tests> 2026/10/08 17:03:39 INFO Vacuumed table table=pending_closures niks3-go-unit-tests> 2026/10/08 17:03:39 INFO Vacuumed table table=pending_objects niks3-go-unit-tests> 2026/10/08 17:03:39 INFO Vacuumed table table=multipart_uploads niks3-go-unit-tests> 2026/10/08 17:03:39 INFO Vacuumed table table=closures niks3-go-unit-tests> 2026/10/08 17:03:39 INFO Vacuumed table table=objects niks3-go-unit-tests> 2026-10-08 17:03:39.474 UTC [68094] ERROR: could not obtain lock on row in relation "closures" niks3-go-unit-tests> 2026-10-08 17:03:39.474 UTC [68094] STATEMENT: SELECT 1 FROM closures WHERE key = $1 FOR UPDATE NOWAIT niks3-go-unit-tests> 2026-10-08 17:03:39.477 UTC [68094] ERROR: could not obtain lock on row in relation "closures" niks3-go-unit-tests> 2026-10-08 17:03:39.477 UTC [68094] STATEMENT: SELECT 1 FROM closures WHERE key = $1 FOR UPDATE NOWAIT niks3-go-unit-tests> 2026/10/08 17:03:39 INFO Received complete push request method=POST path=/api/pushes/2/complete niks3-go-unit-tests> 2026-10-08 17:03:39.486 UTC [68094] ERROR: could not obtain lock on row in relation "closures" niks3-go-unit-tests> 2026-10-08 17:03:39.486 UTC [68094] STATEMENT: SELECT 1 FROM closures WHERE key = $1 FOR UPDATE NOWAIT niks3-go-unit-tests> 2026-10-08 17:03:39.494 UTC [68094] ERROR: could not obtain lock on row in relation "closures" niks3-go-unit-tests> 2026-10-08 17:03:39.494 UTC [68094] STATEMENT: SELECT 1 FROM closures WHERE key = $1 FOR UPDATE NOWAIT niks3-go-unit-tests> 2026-10-08 17:03:39.500 UTC [68094] ERROR: could not obtain lock on row in relation "closures" niks3-go-unit-tests> 2026-10-08 17:03:39.500 UTC [68094] STATEMENT: SELECT 1 FROM closures WHERE key = $1 FOR UPDATE NOWAIT niks3-go-unit-tests> 2026/10/08 17:03:39 INFO Completed push id=2 objects=4 duration=66.702542ms niks3-go-unit-tests> --- PASS: TestPush_RootsAreLockedInByteOrder (7.12s) niks3-go-unit-tests> === CONT TestConnectWaitsForAPeerMigration niks3-go-unit-tests> --- PASS: TestPush_SkippedKeySurvivesGCBeforeCommit (7.20s) niks3-go-unit-tests> === CONT TestReadProxyConditionalGet niks3-go-unit-tests> 2026/10/08 17:03:39 INFO Received push request method=POST path=/api/pushes niks3-go-unit-tests> 2026/10/08 17:03:40 INFO Received complete multipart upload request method=POST path=/api/multipart/complete niks3-go-unit-tests> 2026/10/08 17:03:40 INFO Received push request method=POST path=/api/pushes niks3-go-unit-tests> 2026-10-08 17:03:40.123 UTC [68102] ERROR: Push does not exist: id=1 niks3-go-unit-tests> 2026-10-08 17:03:40.123 UTC [68102] CONTEXT: PL/pgSQL function commit_push(bigint) line 11 at RAISE niks3-go-unit-tests> 2026-10-08 17:03:40.123 UTC [68102] STATEMENT: SELECT commit_push($1) niks3-go-unit-tests> --- PASS: TestPush_CompleteWaitsForCleanupOfThePush (7.52s) niks3-go-unit-tests> === CONT TestResolveDBConnectionString niks3-go-unit-tests> === RUN TestResolveDBConnectionString/flag_wins niks3-go-unit-tests> === PAUSE TestResolveDBConnectionString/flag_wins niks3-go-unit-tests> === RUN TestResolveDBConnectionString/file_when_flag_empty niks3-go-unit-tests> === PAUSE TestResolveDBConnectionString/file_when_flag_empty niks3-go-unit-tests> === RUN TestResolveDBConnectionString/missing_file_is_an_error niks3-go-unit-tests> === PAUSE TestResolveDBConnectionString/missing_file_is_an_error niks3-go-unit-tests> === RUN TestResolveDBConnectionString/PGHOST_allows_empty niks3-go-unit-tests> === PAUSE TestResolveDBConnectionString/PGHOST_allows_empty niks3-go-unit-tests> === RUN TestResolveDBConnectionString/nothing_configured niks3-go-unit-tests> === PAUSE TestResolveDBConnectionString/nothing_configured niks3-go-unit-tests> === CONT TestService_AuthMiddleware_MTLSProxyHeader niks3-go-unit-tests> 2026/10/08 17:03:40 INFO Completed multipart upload object_key=nar/gggggggggggggggggggggggggggggg0100000000000000000000.nar.zst upload_id=MzQ2Njc2OWUtOTMxYy00YjBjLTg5ZjEtOTQ3OGM5ODJjNzNjLmNiNjBlMjkwLTJiNjQtNGVmNy1iYzk2LTQwZDgyYzRiOGNlOXgxNzkxNDc5MDE3Nzg1MTU3MDAw parts=12 niks3-go-unit-tests> 2026/10/08 17:03:40 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:40 INFO Received complete push request method=POST path=/api/pushes/1/complete niks3-go-unit-tests> 2026/10/08 17:03:40 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:40 INFO Completed push id=1 objects=4 duration=53.313417ms niks3-go-unit-tests> --- PASS: TestPush_RepeatedRootCommitsOnce (7.30s) niks3-go-unit-tests> === CONT TestReadProxyOutlastsServerWriteTimeout niks3-go-unit-tests> 2026/10/08 17:03:40 INFO Received push request method=POST path=/api/pushes niks3-go-unit-tests> 2026/10/08 17:03:40 INFO Received complete push request method=POST path=/api/pushes/1/complete niks3-go-unit-tests> 2026/10/08 17:03:40 INFO Completed push id=1 objects=6 duration=70.995459ms niks3-go-unit-tests> --- PASS: TestPush_CompleteCommitsEveryRoot (7.29s) niks3-go-unit-tests> === CONT TestPresignedUploadRegisteredBeforeCommit niks3-go-unit-tests> 2026/10/08 17:03:41 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> --- PASS: TestDeduplicatedObjectsRecordedAsPending (7.42s) niks3-go-unit-tests> === CONT TestCompletedNarNotReofferedAcrossClosures niks3-go-unit-tests> 2026/10/08 17:03:41 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:42 INFO lead: acquired remote=192.0.2.1:1234 niks3-go-unit-tests> 2026/10/08 17:03:42 INFO Received complete multipart upload request method=POST path=/api/multipart/complete niks3-go-unit-tests> 2026/10/08 17:03:42 INFO Aborted multipart uploads count=0 kept=0 niks3-go-unit-tests> 2026/10/08 17:03:42 WARN Force mode enabled - objects will be deleted immediately without grace period niks3-go-unit-tests> 2026/10/08 17:03:42 INFO Garbage collection completed failed-uploads-deleted=0 old-closures-deleted=0 objects-marked-for-deletion=0 objects-deleted-after-grace-period=0 objects-failed-to-delete=0 niks3-go-unit-tests> 2026/10/08 17:03:42 INFO Vacuumed table table=pending_closures niks3-go-unit-tests> 2026/10/08 17:03:42 INFO Vacuumed table table=pending_objects niks3-go-unit-tests> 2026/10/08 17:03:42 INFO Vacuumed table table=multipart_uploads niks3-go-unit-tests> 2026/10/08 17:03:42 INFO Vacuumed table table=closures niks3-go-unit-tests> 2026/10/08 17:03:42 INFO Vacuumed table table=objects niks3-go-unit-tests> --- PASS: TestGCMetrics (7.25s) niks3-go-unit-tests> === CONT TestPresentNotReportedWhileGCDeletesClosure/stale niks3-go-unit-tests> 2026/10/08 17:03:42 ERROR failed to check GC advisory lock error="query pg_locks: failed to connect to `user=_tribuchetbld3 database=niks3`: /nonexistent/.s.PGSQL.5432 (/nonexistent): dial error: dial unix /nonexistent/.s.PGSQL.5432: connect: no such file or directory" niks3-go-unit-tests> --- PASS: TestGCAdvisoryLockBlocksConcurrentRun (7.17s) niks3-go-unit-tests> === CONT TestPresentNotReportedWhileGCDeletesClosure/fresh niks3-go-unit-tests> 2026/10/08 17:03:42 INFO Received complete multipart upload request method=POST path=/api/multipart/complete niks3-go-unit-tests> 2026/10/08 17:03:42 WARN Failed to abort redundant multipart upload, keeping its row object_key=nar/gggggggggggggggggggggggggggggg0200000000000000000000.nar.zst upload_id=MzQ2Njc2OWUtOTMxYy00YjBjLTg5ZjEtOTQ3OGM5ODJjNzNjLjI3NDJkNWMxLWZiNjMtNDRhOS1iZjIyLTBiZDUwNjRhNjA5NXgxNzkxNDc5MDIwMzQ2ODcwMDAw error="Get \"http://127.0.0.1:1/bucket60/?location=\": dial tcp 127.0.0.1:1: connect: connection refused" niks3-go-unit-tests> 2026/10/08 17:03:42 INFO Completed multipart upload object_key=nar/gggggggggggggggggggggggggggggg0200000000000000000000.nar.zst upload_id=MzQ2Njc2OWUtOTMxYy00YjBjLTg5ZjEtOTQ3OGM5ODJjNzNjLmJiNjk2NGM5LTE0NWYtNDQ1Yi1hZjNlLTA1NWQwN2Y3OTNkY3gxNzkxNDc5MDIwMjkyMzAwMDAw parts=12 niks3-go-unit-tests> 2026/10/08 17:03:42 INFO Received cleanup request method=DELETE path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:42 INFO Aborted multipart uploads count=1 kept=0 niks3-go-unit-tests> --- PASS: TestRedundantMultipartUpload (12.54s) niks3-go-unit-tests> === CONT TestForceGCDuringPushOffersSweptObject/before_pending_rows niks3-go-unit-tests> 2026/10/08 17:03:43 INFO lead: released remote=192.0.2.1:1234 niks3-go-unit-tests> --- PASS: TestLeadEndsOnShutdown (9.11s) niks3-go-unit-tests> === CONT TestForceGCDuringPushOffersSweptObject/after_presence_check niks3-go-unit-tests> --- PASS: TestGCBugBareHashReferences (8.03s) niks3-go-unit-tests> === CONT TestParseSingleRange/none niks3-go-unit-tests> === CONT TestParseSingleRange/end_clamped_to_size niks3-go-unit-tests> === CONT TestParseSingleRange/start_far_past_EOF niks3-go-unit-tests> === CONT TestParseSingleRange/start_past_EOF niks3-go-unit-tests> === CONT TestParseSingleRange/single_byte niks3-go-unit-tests> === CONT TestParseSingleRange/suffix_exceeds_size niks3-go-unit-tests> === CONT TestParseSingleRange/suffix niks3-go-unit-tests> === CONT TestParseSingleRange/multi-range_ignored niks3-go-unit-tests> === CONT TestParseSingleRange/malformed_no_dash niks3-go-unit-tests> === CONT TestParseSingleRange/closed niks3-go-unit-tests> === CONT TestParseSingleRange/open-ended niks3-go-unit-tests> === CONT TestParseSingleRange/malformed_end_before_start niks3-go-unit-tests> === CONT TestParseSingleRange/unknown_unit niks3-go-unit-tests> === CONT TestIsValidCachePath/narinfo niks3-go-unit-tests> === CONT TestIsValidCachePath/traversal_parent niks3-go-unit-tests> === CONT TestIsValidCachePath/index.html niks3-go-unit-tests> === CONT TestIsValidCachePath/nix-cache-info niks3-go-unit-tests> === CONT TestIsValidCachePath/realisation niks3-go-unit-tests> === CONT TestIsValidCachePath/log niks3-go-unit-tests> === CONT TestIsValidCachePath/ls niks3-go-unit-tests> === CONT TestIsValidCachePath/nar_uncompressed niks3-go-unit-tests> === CONT TestIsValidCachePath/nar_bz2 niks3-go-unit-tests> === CONT TestIsValidCachePath/nar_xz niks3-go-unit-tests> === CONT TestIsValidCachePath/nar_zst niks3-go-unit-tests> === CONT TestIsValidCachePath/narinfo_all_nix_base32_chars niks3-go-unit-tests> === CONT TestIsValidCachePath/empty niks3-go-unit-tests> === CONT TestIsValidCachePath/short_hash niks3-go-unit-tests> === CONT TestIsValidCachePath/wrong_extension niks3-go-unit-tests> === CONT TestIsValidCachePath/leading_slash niks3-go-unit-tests> === CONT TestIsValidCachePath/invalid_char_u niks3-go-unit-tests> === CONT TestIsValidCachePath/random_path niks3-go-unit-tests> === CONT TestIsValidCachePath/invalid_char_e niks3-go-unit-tests> === CONT TestIsValidCachePath/traversal_in_middle niks3-go-unit-tests> --- PASS: TestIsValidCachePath (0.01s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/narinfo (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/traversal_parent (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/index.html (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/nix-cache-info (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/realisation (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/log (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/ls (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/nar_uncompressed (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/nar_bz2 (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/nar_xz (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/nar_zst (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/narinfo_all_nix_base32_chars (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/empty (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/short_hash (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/wrong_extension (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/leading_slash (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/invalid_char_u (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/random_path (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/invalid_char_e (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/traversal_in_middle (0.00s) niks3-go-unit-tests> === CONT TestParseSingleRange/malformed_both_empty niks3-go-unit-tests> --- PASS: TestParseSingleRange (0.01s) niks3-go-unit-tests> --- PASS: TestParseSingleRange/none (0.00s) niks3-go-unit-tests> --- PASS: TestParseSingleRange/end_clamped_to_size (0.00s) niks3-go-unit-tests> --- PASS: TestParseSingleRange/start_far_past_EOF (0.00s) niks3-go-unit-tests> --- PASS: TestParseSingleRange/start_past_EOF (0.00s) niks3-go-unit-tests> --- PASS: TestParseSingleRange/single_byte (0.00s) niks3-go-unit-tests> --- PASS: TestParseSingleRange/suffix_exceeds_size (0.00s) niks3-go-unit-tests> --- PASS: TestParseSingleRange/suffix (0.00s) niks3-go-unit-tests> --- PASS: TestParseSingleRange/multi-range_ignored (0.00s) niks3-go-unit-tests> --- PASS: TestParseSingleRange/malformed_no_dash (0.00s) niks3-go-unit-tests> --- PASS: TestParseSingleRange/closed (0.00s) niks3-go-unit-tests> --- PASS: TestParseSingleRange/open-ended (0.00s) niks3-go-unit-tests> --- PASS: TestParseSingleRange/malformed_end_before_start (0.00s) niks3-go-unit-tests> --- PASS: TestParseSingleRange/unknown_unit (0.00s) niks3-go-unit-tests> --- PASS: TestParseSingleRange/malformed_both_empty (0.00s) niks3-go-unit-tests> === CONT TestServerTLSConfig/no_client_CA niks3-go-unit-tests> === CONT TestServerTLSConfig/not_a_PEM_file niks3-go-unit-tests> === CONT TestServerTLSConfig/missing_CA_file niks3-go-unit-tests> --- PASS: TestServerTLSConfig (0.00s) niks3-go-unit-tests> --- PASS: TestServerTLSConfig/no_client_CA (0.00s) niks3-go-unit-tests> --- PASS: TestServerTLSConfig/not_a_PEM_file (0.02s) niks3-go-unit-tests> --- PASS: TestServerTLSConfig/missing_CA_file (0.00s) niks3-go-unit-tests> === CONT TestGCEndsOnShutdown/before_the_run niks3-go-unit-tests> --- PASS: TestReadRedirectNar (7.84s) niks3-go-unit-tests> === CONT TestGCEndsOnShutdown/blocked_in_the_sweep's_S3_delete niks3-go-unit-tests> --- PASS: TestReadProxyRangeRequest (7.71s) niks3-go-unit-tests> === CONT TestGCEndsOnShutdown/blocked_on_a_row_lock_in_the_mark niks3-go-unit-tests> --- PASS: TestReadRedirectUsesPublicS3URL (8.37s) niks3-go-unit-tests> === CONT TestClientErrorHandling/InvalidStorePath niks3-go-unit-tests> --- PASS: TestService_ReadAuthMiddleware (8.11s) niks3-go-unit-tests> === CONT TestClientErrorHandling/ServerNotAvailable niks3-go-unit-tests> === RUN TestService_AuthMiddleware_OIDC/valid_OIDC_token niks3-go-unit-tests> === PAUSE TestService_AuthMiddleware_OIDC/valid_OIDC_token niks3-go-unit-tests> === RUN TestService_AuthMiddleware_OIDC/OIDC_token_with_wrong_org_rejected niks3-go-unit-tests> === PAUSE TestService_AuthMiddleware_OIDC/OIDC_token_with_wrong_org_rejected niks3-go-unit-tests> === RUN TestService_AuthMiddleware_OIDC/malformed_token_rejected niks3-go-unit-tests> === PAUSE TestService_AuthMiddleware_OIDC/malformed_token_rejected niks3-go-unit-tests> 2026/10/08 17:03:45 WARN Request failed, retrying attempt=1 backoff=100ms error="Post \"http://localhost:19999/api/objects/present\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/objects/present niks3-go-unit-tests> === RUN TestService_AuthMiddleware_OIDC/static_token_still_works_with_OIDC_configured niks3-go-unit-tests> === PAUSE TestService_AuthMiddleware_OIDC/static_token_still_works_with_OIDC_configured niks3-go-unit-tests> === CONT TestClientErrorHandling/InvalidAuthToken niks3-go-unit-tests> 2026/10/08 17:03:45 WARN Request failed, retrying attempt=2 backoff=200.069117ms error="Post \"http://localhost:19999/api/objects/present\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/objects/present niks3-go-unit-tests> 2026/10/08 17:03:45 WARN Request failed, retrying attempt=3 backoff=430.678717ms error="Post \"http://localhost:19999/api/objects/present\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/objects/present niks3-go-unit-tests> --- PASS: TestReadRedirectKeepsNarinfoProxied (8.85s) niks3-go-unit-tests> === CONT TestIsValidUploadKey/narinfo niks3-go-unit-tests> === CONT TestIsValidUploadKey/realisation_plus_in_output niks3-go-unit-tests> === CONT TestIsValidUploadKey/unknown_type niks3-go-unit-tests> === CONT TestIsValidUploadKey/empty_key niks3-go-unit-tests> === CONT TestIsValidUploadKey/absolute niks3-go-unit-tests> === CONT TestIsValidUploadKey/traversal_nar niks3-go-unit-tests> === CONT TestIsValidUploadKey/traversal niks3-go-unit-tests> === CONT TestIsValidUploadKey/listing_key,_narinfo_type niks3-go-unit-tests> === CONT TestIsValidUploadKey/nar_key,_narinfo_type niks3-go-unit-tests> === CONT TestIsValidUploadKey/narinfo_key,_nar_type niks3-go-unit-tests> === CONT TestIsValidUploadKey/index.html niks3-go-unit-tests> === CONT TestIsValidUploadKey/nix-cache-info niks3-go-unit-tests> === CONT TestIsValidUploadKey/build_log_home-manager_file niks3-go-unit-tests> === CONT TestIsValidUploadKey/realisation niks3-go-unit-tests> === CONT TestIsValidUploadKey/build_log_equals niks3-go-unit-tests> === CONT TestIsValidUploadKey/build_log_question_mark niks3-go-unit-tests> === CONT TestIsValidUploadKey/build_log_plus_in_name niks3-go-unit-tests> === CONT TestIsValidUploadKey/nar_xz niks3-go-unit-tests> === CONT TestIsValidUploadKey/nar_plain niks3-go-unit-tests> === CONT TestIsValidUploadKey/nar_zst niks3-go-unit-tests> === CONT TestIsValidUploadKey/build_log niks3-go-unit-tests> === CONT TestIsValidUploadKey/listing niks3-go-unit-tests> --- PASS: TestIsValidUploadKey (0.06s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/narinfo (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/realisation_plus_in_output (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/unknown_type (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/empty_key (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/absolute (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/traversal_nar (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/traversal (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/listing_key,_narinfo_type (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/nar_key,_narinfo_type (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/narinfo_key,_nar_type (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/index.html (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/nix-cache-info (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/build_log_home-manager_file (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/realisation (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/build_log_equals (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/build_log_question_mark (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/build_log_plus_in_name (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/nar_xz (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/nar_plain (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/nar_zst (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/build_log (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/listing (0.00s) niks3-go-unit-tests> === CONT TestUploadHandlersRejectOversizedBody/complete_multipart niks3-go-unit-tests> 2026/10/08 17:03:45 INFO Received complete multipart upload request method=POST path=/ niks3-go-unit-tests> === CONT TestUploadHandlersRejectInvalidKeys/create_pending_closure_rejects_nix-cache-info niks3-go-unit-tests> 2026/10/08 17:03:45 INFO Received uploads request method=POST path=/ niks3-go-unit-tests> === CONT TestUploadHandlersRejectOversizedBody/create_pending_closure niks3-go-unit-tests> 2026/10/08 17:03:45 INFO Received uploads request method=POST path=/ niks3-go-unit-tests> 2026/10/08 17:03:45 WARN mTLS auth: subject not in bound subjects subject="CN=untrusted,O=Other" niks3-go-unit-tests> 2026/10/08 17:03:45 WARN mTLS auth: bound subjects configured but subject DN unavailable niks3-go-unit-tests> 2026/10/08 17:03:45 WARN mTLS auth: subject not in bound subjects subject="CN=untrusted" niks3-go-unit-tests> --- PASS: TestService_AuthMiddleware_MTLSBoundSubjects (8.79s) niks3-go-unit-tests> === CONT TestUploadHandlersRejectOversizedBody/request_more_parts niks3-go-unit-tests> 2026/10/08 17:03:45 INFO Received request for more parts method=POST path=/ niks3-go-unit-tests> === CONT TestUploadHandlersRejectInvalidKeys/complete_multipart_rejects_non-NAR_key niks3-go-unit-tests> 2026/10/08 17:03:45 INFO Received complete multipart upload request method=POST path=/ niks3-go-unit-tests> === CONT TestUploadHandlersRejectInvalidKeys/request_more_parts_rejects_non-NAR_key niks3-go-unit-tests> 2026/10/08 17:03:45 INFO Received request for more parts method=POST path=/ niks3-go-unit-tests> === CONT TestUploadHandlersRejectInvalidKeys/create_pending_closure_rejects_path_traversal niks3-go-unit-tests> 2026/10/08 17:03:45 INFO Received uploads request method=POST path=/ niks3-go-unit-tests> --- PASS: TestUploadHandlersRejectInvalidKeys (0.00s) niks3-go-unit-tests> --- PASS: TestUploadHandlersRejectInvalidKeys/create_pending_closure_rejects_nix-cache-info (0.00s) niks3-go-unit-tests> --- PASS: TestUploadHandlersRejectInvalidKeys/complete_multipart_rejects_non-NAR_key (0.01s) niks3-go-unit-tests> --- PASS: TestUploadHandlersRejectInvalidKeys/request_more_parts_rejects_non-NAR_key (0.00s) niks3-go-unit-tests> --- PASS: TestUploadHandlersRejectInvalidKeys/create_pending_closure_rejects_path_traversal (0.00s) niks3-go-unit-tests> === CONT TestCacheConfigHandler/full_config,_no_issuer niks3-go-unit-tests> === CONT TestCacheConfigHandler/issuer_requested_but_no_OIDC_validator niks3-go-unit-tests> === CONT TestCacheConfigHandler/no_signing_keys niks3-go-unit-tests> === CONT TestCacheConfigHandler/no_cache_url_configured niks3-go-unit-tests> --- PASS: TestCacheConfigHandler (0.00s) niks3-go-unit-tests> --- PASS: TestCacheConfigHandler/full_config,_no_issuer (0.00s) niks3-go-unit-tests> --- PASS: TestCacheConfigHandler/issuer_requested_but_no_OIDC_validator (0.00s) niks3-go-unit-tests> --- PASS: TestCacheConfigHandler/no_signing_keys (0.00s) niks3-go-unit-tests> --- PASS: TestCacheConfigHandler/no_cache_url_configured (0.00s) niks3-go-unit-tests> === CONT TestPendingClosureWriteTimeout/empty niks3-go-unit-tests> === CONT TestProxyWriteTimeout/narinfo niks3-go-unit-tests> === CONT TestPendingClosureWriteTimeout/handler_extends_the_server's_deadline niks3-go-unit-tests> --- PASS: TestUploadHandlersRejectOversizedBody (0.04s) niks3-go-unit-tests> --- PASS: TestUploadHandlersRejectOversizedBody/complete_multipart (0.04s) niks3-go-unit-tests> --- PASS: TestUploadHandlersRejectOversizedBody/request_more_parts (0.02s) niks3-go-unit-tests> --- PASS: TestUploadHandlersRejectOversizedBody/create_pending_closure (0.29s) niks3-go-unit-tests> === CONT TestPendingClosureWriteTimeout/670k_objects niks3-go-unit-tests> === CONT TestPendingClosureWriteTimeout/400_objects niks3-go-unit-tests> === CONT TestProxyWriteTimeout/10_GiB_nar niks3-go-unit-tests> === CONT TestProxyWriteTimeout/unknown_size niks3-go-unit-tests> === CONT TestProxyWriteTimeout/1_GiB_nar niks3-go-unit-tests> --- PASS: TestProxyWriteTimeout (0.00s) niks3-go-unit-tests> --- PASS: TestProxyWriteTimeout/narinfo (0.00s) niks3-go-unit-tests> --- PASS: TestProxyWriteTimeout/10_GiB_nar (0.00s) niks3-go-unit-tests> --- PASS: TestProxyWriteTimeout/unknown_size (0.00s) niks3-go-unit-tests> --- PASS: TestProxyWriteTimeout/1_GiB_nar (0.00s) niks3-go-unit-tests> === CONT TestService_RequireScope_OIDC/builder_may_write niks3-go-unit-tests> === CONT TestService_RequireScope_OIDC/reader_may_read niks3-go-unit-tests> === CONT TestService_RequireScope_OIDC/empty_netrc_password_may_not_read niks3-go-unit-tests> === CONT TestService_RequireScope_OIDC/wrong_netrc_password_may_not_read niks3-go-unit-tests> 2026/10/08 17:03:45 WARN Authentication failed token_preview=wrong token_length=5 oidc_error="no provider could verify the token (signature or issuer mismatch)" oidc_provider="" tried_providers=[test] niks3-go-unit-tests> === CONT TestService_RequireScope_OIDC/static_token_may_admin_with_netrc niks3-go-unit-tests> === CONT TestService_RequireScope_OIDC/reader_may_read_with_netrc niks3-go-unit-tests> === CONT TestService_RequireScope_OIDC/anonymous_may_not_read niks3-go-unit-tests> === CONT TestService_RequireScope_OIDC/writer_implies_read niks3-go-unit-tests> === CONT TestService_RequireScope_OIDC/reader_may_not_write niks3-go-unit-tests> === CONT TestService_RequireScope_OIDC/static_token_may_write niks3-go-unit-tests> === CONT TestService_RequireScope_OIDC/static_token_may_admin niks3-go-unit-tests> === CONT TestService_RequireScope_OIDC/ops_may_admin niks3-go-unit-tests> === CONT TestService_RequireScope_OIDC/ops_may_not_write niks3-go-unit-tests> === CONT TestService_RequireScope_OIDC/builder_may_not_admin niks3-go-unit-tests> === CONT TestPush_RejectsBadRequests/no_roots niks3-go-unit-tests> 2026/10/08 17:03:45 INFO Received push request method=POST path=/api/pushes niks3-go-unit-tests> === CONT TestPush_RejectsBadRequests/bad_root niks3-go-unit-tests> 2026/10/08 17:03:45 INFO Received push request method=POST path=/api/pushes niks3-go-unit-tests> === CONT TestPush_RejectsBadRequests/root_not_in_objects niks3-go-unit-tests> 2026/10/08 17:03:45 INFO Received push request method=POST path=/api/pushes niks3-go-unit-tests> === CONT TestPush_RejectsBadRequests/no_objects niks3-go-unit-tests> 2026/10/08 17:03:45 INFO Received push request method=POST path=/api/pushes niks3-go-unit-tests> --- PASS: TestPush_RejectsBadRequests (7.04s) niks3-go-unit-tests> --- PASS: TestPush_RejectsBadRequests/no_roots (0.00s) niks3-go-unit-tests> --- PASS: TestPush_RejectsBadRequests/bad_root (0.00s) niks3-go-unit-tests> --- PASS: TestPush_RejectsBadRequests/root_not_in_objects (0.00s) niks3-go-unit-tests> --- PASS: TestPush_RejectsBadRequests/no_objects (0.00s) niks3-go-unit-tests> === CONT TestResolveDBConnectionString/flag_wins niks3-go-unit-tests> --- PASS: TestService_RequireScope_OIDC (6.75s) niks3-go-unit-tests> --- PASS: TestService_RequireScope_OIDC/builder_may_write (0.00s) niks3-go-unit-tests> --- PASS: TestService_RequireScope_OIDC/reader_may_read (0.00s) niks3-go-unit-tests> --- PASS: TestService_RequireScope_OIDC/empty_netrc_password_may_not_read (0.00s) niks3-go-unit-tests> --- PASS: TestService_RequireScope_OIDC/wrong_netrc_password_may_not_read (0.00s) niks3-go-unit-tests> --- PASS: TestService_RequireScope_OIDC/static_token_may_admin_with_netrc (0.00s) niks3-go-unit-tests> --- PASS: TestService_RequireScope_OIDC/reader_may_read_with_netrc (0.00s) niks3-go-unit-tests> --- PASS: TestService_RequireScope_OIDC/anonymous_may_not_read (0.00s) niks3-go-unit-tests> --- PASS: TestService_RequireScope_OIDC/writer_implies_read (0.00s) niks3-go-unit-tests> --- PASS: TestService_RequireScope_OIDC/reader_may_not_write (0.00s) niks3-go-unit-tests> --- PASS: TestService_RequireScope_OIDC/static_token_may_write (0.00s) niks3-go-unit-tests> --- PASS: TestService_RequireScope_OIDC/static_token_may_admin (0.00s) niks3-go-unit-tests> --- PASS: TestService_RequireScope_OIDC/ops_may_admin (0.00s) niks3-go-unit-tests> --- PASS: TestService_RequireScope_OIDC/ops_may_not_write (0.00s) niks3-go-unit-tests> --- PASS: TestService_RequireScope_OIDC/builder_may_not_admin (0.00s) niks3-go-unit-tests> === CONT TestResolveDBConnectionString/PGHOST_allows_empty niks3-go-unit-tests> === CONT TestResolveDBConnectionString/nothing_configured niks3-go-unit-tests> === CONT TestResolveDBConnectionString/missing_file_is_an_error niks3-go-unit-tests> === CONT TestResolveDBConnectionString/file_when_flag_empty niks3-go-unit-tests> === CONT TestService_AuthMiddleware_OIDC/valid_OIDC_token niks3-go-unit-tests> === CONT TestService_AuthMiddleware_OIDC/malformed_token_rejected niks3-go-unit-tests> --- PASS: TestResolveDBConnectionString (0.05s) niks3-go-unit-tests> --- PASS: TestResolveDBConnectionString/flag_wins (0.00s) niks3-go-unit-tests> --- PASS: TestResolveDBConnectionString/PGHOST_allows_empty (0.00s) niks3-go-unit-tests> --- PASS: TestResolveDBConnectionString/nothing_configured (0.00s) niks3-go-unit-tests> --- PASS: TestResolveDBConnectionString/missing_file_is_an_error (0.00s) niks3-go-unit-tests> --- PASS: TestResolveDBConnectionString/file_when_flag_empty (0.00s) niks3-go-unit-tests> 2026/10/08 17:03:45 WARN Authentication failed token_preview=not-a-valid-jwt token_length=15 oidc_error="no provider could verify the token (signature or issuer mismatch)" oidc_provider="" tried_providers=[test] niks3-go-unit-tests> === CONT TestService_AuthMiddleware_OIDC/static_token_still_works_with_OIDC_configured niks3-go-unit-tests> === CONT TestService_AuthMiddleware_OIDC/OIDC_token_with_wrong_org_rejected niks3-go-unit-tests> 2026/10/08 17:03:45 WARN Authentication failed token_preview=eyJhbGciOi...BxHOuqVH3A token_length=701 oidc_error="no rule matched: claim \"repository_owner\" value [otherorg] not in allowed patterns [myorg]" oidc_provider=test tried_providers=[test] niks3-go-unit-tests> --- PASS: TestService_AuthMiddleware_OIDC (8.40s) niks3-go-unit-tests> --- PASS: TestService_AuthMiddleware_OIDC/valid_OIDC_token (0.00s) niks3-go-unit-tests> --- PASS: TestService_AuthMiddleware_OIDC/malformed_token_rejected (0.00s) niks3-go-unit-tests> --- PASS: TestService_AuthMiddleware_OIDC/static_token_still_works_with_OIDC_configured (0.00s) niks3-go-unit-tests> --- PASS: TestService_AuthMiddleware_OIDC/OIDC_token_with_wrong_org_rejected (0.00s) niks3-go-unit-tests> 2026/10/08 17:03:45 WARN Request failed, retrying attempt=4 backoff=878.524578ms error="Post \"http://localhost:19999/api/objects/present\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/objects/present niks3-go-unit-tests> --- PASS: TestService_Rustfstest (8.94s) niks3-go-unit-tests> 2026/10/08 17:03:46 INFO lead: acquired remote=192.0.2.1:1234 niks3-go-unit-tests> {"timestamp":"2026-10-08T17:03:46.402663Z","level":"ERROR","message":"Scanner cycle completed without a durable data usage snapshot","event":"scanner_persist_state","component":"scanner","subsystem":"runtime","cycle":5,"outcome":"NoUpdate","state":"usage_not_durable","target":"rustfs::scanner","filename":"crates/scanner/src/scanner.rs","line_number":2350,"threadName":"rustfs-worker","threadId":"ThreadId(3)"} niks3-go-unit-tests> 2026-10-08 17:03:46.430 UTC [67682] LOG: checkpoint starting: wal niks3-go-unit-tests> 2026/10/08 17:03:46 INFO lead: acquired remote=192.0.2.1:1234 niks3-go-unit-tests> 2026/10/08 17:03:46 INFO lead: released remote=192.0.2.1:1234 niks3-go-unit-tests> --- PASS: TestLeadIncumbentAnnouncesAtOnce (8.94s) niks3-go-unit-tests> 2026/10/08 17:03:46 WARN Request failed, retrying attempt=5 backoff=1.577963498s error="Post \"http://localhost:19999/api/objects/present\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/objects/present niks3-go-unit-tests> --- PASS: TestReadProxyRootRedirectsToIndexHTML (8.78s) niks3-go-unit-tests> --- PASS: TestReadProxyDisabled (8.79s) niks3-go-unit-tests> 2026/10/08 17:03:47 INFO lead: released remote=192.0.2.1:1234 niks3-go-unit-tests> 2026/10/08 17:03:47 INFO lead: acquired remote=192.0.2.1:1234 niks3-go-unit-tests> --- PASS: TestReadProxyConditionalGet (8.06s) niks3-go-unit-tests> 2026/10/08 17:03:48 WARN Rate limiter enabled after throttle name=s3-test rate=5 niks3-go-unit-tests> 2026/10/08 17:03:48 WARN S3 rate limit hit operation="complete multipart upload" error="Please reduce your request rate." niks3-go-unit-tests> === NAME TestCompleteMultipartUploadHandler_RateLimitTriggersThrottle niks3-go-unit-tests> throttle_test.go:213: Proxy stats: total=13, throttled=10, completeMultipart=10 niks3-go-unit-tests> throttle_test.go:215: Rate limiter: enabled=true, rate=5.00 niks3-go-unit-tests> --- PASS: TestCompleteMultipartUploadHandler_RateLimitTriggersThrottle (14.30s) niks3-go-unit-tests> --- PASS: TestService_AuthMiddleware_MTLSProxyHeader (7.96s) niks3-go-unit-tests> 2026/10/08 17:03:48 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:48 WARN Request failed, retrying attempt=1 backoff=100ms error="Get \"http://localhost:19999/api/cache-config\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/cache-config niks3-go-unit-tests> --- PASS: TestConnectWaitsForAPeerMigration (8.98s) niks3-go-unit-tests> 2026/10/08 17:03:48 WARN Request failed, retrying attempt=2 backoff=212.705974ms error="Get \"http://localhost:19999/api/cache-config\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/cache-config niks3-go-unit-tests> 2026/10/08 17:03:48 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:48 INFO Registered completed upload object_key=nar/jjjjjjjjjjjjjjjjjjjjjjjjjjjjjj0100000000000000000000.nar.zst niks3-go-unit-tests> 2026/10/08 17:03:48 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> --- PASS: TestPresignedUploadRegisteredBeforeCommit (7.75s) niks3-go-unit-tests> 2026/10/08 17:03:48 INFO lead: released remote=192.0.2.1:1234 niks3-go-unit-tests> --- PASS: TestLeadElectsOneAndHandsOver (11.14s) niks3-go-unit-tests> 2026/10/08 17:03:48 WARN Request failed, retrying attempt=3 backoff=363.663519ms error="Get \"http://localhost:19999/api/cache-config\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/cache-config niks3-go-unit-tests> 2026/10/08 17:03:49 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:49 INFO Aborted multipart uploads count=0 kept=0 niks3-go-unit-tests> 2026/10/08 17:03:49 WARN Force mode enabled - objects will be deleted immediately without grace period niks3-go-unit-tests> 2026/10/08 17:03:49 INFO Garbage collection completed failed-uploads-deleted=0 old-closures-deleted=0 objects-marked-for-deletion=1 objects-deleted-after-grace-period=1 objects-failed-to-delete=0 niks3-go-unit-tests> 2026/10/08 17:03:49 INFO Vacuumed table table=pending_closures niks3-go-unit-tests> 2026/10/08 17:03:49 INFO Vacuumed table table=pending_objects niks3-go-unit-tests> 2026/10/08 17:03:49 INFO Vacuumed table table=multipart_uploads niks3-go-unit-tests> 2026/10/08 17:03:49 INFO Vacuumed table table=closures niks3-go-unit-tests> 2026/10/08 17:03:49 INFO Vacuumed table table=objects niks3-go-unit-tests> 2026/10/08 17:03:49 WARN Request failed, retrying attempt=4 backoff=832.162756ms error="Get \"http://localhost:19999/api/cache-config\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/cache-config niks3-go-unit-tests> 2026/10/08 17:03:49 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:49 INFO Aborted multipart uploads count=0 kept=0 niks3-go-unit-tests> 2026/10/08 17:03:49 WARN Force mode enabled - objects will be deleted immediately without grace period niks3-go-unit-tests> 2026/10/08 17:03:49 INFO Garbage collection completed failed-uploads-deleted=0 old-closures-deleted=0 objects-marked-for-deletion=0 objects-deleted-after-grace-period=0 objects-failed-to-delete=0 niks3-go-unit-tests> 2026/10/08 17:03:49 INFO Vacuumed table table=pending_closures niks3-go-unit-tests> 2026/10/08 17:03:49 INFO Vacuumed table table=pending_objects niks3-go-unit-tests> 2026/10/08 17:03:49 INFO Vacuumed table table=multipart_uploads niks3-go-unit-tests> 2026/10/08 17:03:49 INFO Vacuumed table table=closures niks3-go-unit-tests> 2026/10/08 17:03:49 INFO Vacuumed table table=objects niks3-go-unit-tests> --- PASS: TestForceGCDuringPushOffersSweptObject (0.01s) niks3-go-unit-tests> --- PASS: TestForceGCDuringPushOffersSweptObject/before_pending_rows (6.17s) niks3-go-unit-tests> --- PASS: TestForceGCDuringPushOffersSweptObject/after_presence_check (6.53s) niks3-go-unit-tests> 2026/10/08 17:03:49 INFO Received complete multipart upload request method=POST path=/api/multipart/complete niks3-go-unit-tests> --- PASS: TestPresentNotReportedWhileGCDeletesClosure (0.00s) niks3-go-unit-tests> --- PASS: TestPresentNotReportedWhileGCDeletesClosure/stale (6.73s) niks3-go-unit-tests> --- PASS: TestPresentNotReportedWhileGCDeletesClosure/fresh (6.94s) niks3-go-unit-tests> 2026/10/08 17:03:49 INFO Completed multipart upload object_key=nar/hhhhhhhhhhhhhhhhhhhhhhhhhhhhhh0100000000000000000000.nar.zst upload_id=MzQ2Njc2OWUtOTMxYy00YjBjLTg5ZjEtOTQ3OGM5ODJjNzNjLjg0YzgzMDM0LTM5NTgtNDg5Mi1hNWFmLTRhZjBkYTQ2ZDA5NHgxNzkxNDc5MDI4NDE2NjUwMDAw parts=12 niks3-go-unit-tests> 2026/10/08 17:03:49 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> --- PASS: TestCompletedNarNotReofferedAcrossClosures (8.63s) niks3-go-unit-tests> 2026/10/08 17:03:49 INFO Aborted multipart uploads count=0 kept=0 niks3-go-unit-tests> 2026/10/08 17:03:49 WARN Force mode enabled - objects will be deleted immediately without grace period niks3-go-unit-tests> 2026/10/08 17:03:49 ERROR failed to remove object object=nar/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.nar.zst error="Post \"http://localhost:54165/bucket96/?delete=\": context canceled" niks3-go-unit-tests> 2026/10/08 17:03:49 WARN Request failed, retrying attempt=5 backoff=1.662363124s error="Get \"http://localhost:19999/api/cache-config\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/cache-config niks3-go-unit-tests> 2026/10/08 17:03:50 INFO Aborted multipart uploads count=0 kept=0 niks3-go-unit-tests> 2026/10/08 17:03:50 WARN Force mode enabled - objects will be deleted immediately without grace period niks3-go-unit-tests> --- PASS: TestGCEndsOnShutdown (0.00s) niks3-go-unit-tests> --- PASS: TestGCEndsOnShutdown/before_the_run (6.14s) niks3-go-unit-tests> --- PASS: TestGCEndsOnShutdown/blocked_in_the_sweep's_S3_delete (6.30s) niks3-go-unit-tests> --- PASS: TestGCEndsOnShutdown/blocked_on_a_row_lock_in_the_mark (6.03s) niks3-go-unit-tests> 2026/10/08 17:03:50 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:50 WARN Authentication failed token_preview=invalid-token token_length=13 reason="static API token mismatch" niks3-go-unit-tests> 2026/10/08 17:03:50 WARN Authentication failed token_preview=invalid-token token_length=13 reason="static API token mismatch" niks3-go-unit-tests> --- PASS: TestPendingClosureWriteTimeout (0.00s) niks3-go-unit-tests> --- PASS: TestPendingClosureWriteTimeout/empty (0.00s) niks3-go-unit-tests> --- PASS: TestPendingClosureWriteTimeout/670k_objects (0.00s) niks3-go-unit-tests> --- PASS: TestPendingClosureWriteTimeout/400_objects (0.00s) niks3-go-unit-tests> --- PASS: TestPendingClosureWriteTimeout/handler_extends_the_server's_deadline (5.53s) niks3-go-unit-tests> 2026/10/08 17:03:51 WARN Failed to fetch cache config, uploading without size limit error="fetching cache config: sending request: request failed after retries: Get \"http://localhost:19999/api/cache-config\": dial tcp [::1]:19999: connect: connection refused" niks3-go-unit-tests> 2026/10/08 17:03:51 WARN Request failed, retrying attempt=1 backoff=100ms error="Get \"http://localhost:19999/api/cache-config\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/cache-config niks3-go-unit-tests> 2026/10/08 17:03:51 WARN Request failed, retrying attempt=2 backoff=187.894738ms error="Get \"http://localhost:19999/api/cache-config\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/cache-config niks3-go-unit-tests> 2026/10/08 17:03:51 WARN Request failed, retrying attempt=3 backoff=399.211916ms error="Get \"http://localhost:19999/api/cache-config\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/cache-config niks3-go-unit-tests> --- PASS: TestReadProxyOutlastsServerWriteTimeout (11.75s) niks3-go-unit-tests> 2026/10/08 17:03:52 WARN Request failed, retrying attempt=4 backoff=728.744142ms error="Get \"http://localhost:19999/api/cache-config\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/cache-config niks3-go-unit-tests> 2026/10/08 17:03:53 WARN Request failed, retrying attempt=5 backoff=1.508108162s error="Get \"http://localhost:19999/api/cache-config\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/cache-config niks3-go-unit-tests> {"timestamp":"2026-10-08T17:03:53.990404Z","level":"ERROR","message":"Scanner cycle completed without a durable data usage snapshot","event":"scanner_persist_state","component":"scanner","subsystem":"runtime","cycle":5,"outcome":"NoUpdate","state":"usage_not_durable","target":"rustfs::scanner","filename":"crates/scanner/src/scanner.rs","line_number":2350,"threadName":"rustfs-worker","threadId":"ThreadId(8)"} niks3-go-unit-tests> 2026/10/08 17:03:54 WARN Request failed, retrying attempt=1 backoff=100ms error="Post \"http://localhost:19999/api/pending_closures\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:54 WARN Request failed, retrying attempt=2 backoff=219.710269ms error="Post \"http://localhost:19999/api/pending_closures\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:54 WARN Request failed, retrying attempt=3 backoff=400.369528ms error="Post \"http://localhost:19999/api/pending_closures\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:55 WARN Request failed, retrying attempt=4 backoff=864.608284ms error="Post \"http://localhost:19999/api/pending_closures\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/pending_closures niks3-go-unit-tests> 2026/10/08 17:03:56 WARN Request failed, retrying attempt=5 backoff=1.446734662s error="Post \"http://localhost:19999/api/pending_closures\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/pending_closures niks3-go-unit-tests> --- PASS: TestClientErrorHandling (0.00s) niks3-go-unit-tests> --- PASS: TestClientErrorHandling/InvalidStorePath (5.73s) niks3-go-unit-tests> --- PASS: TestClientErrorHandling/InvalidAuthToken (5.39s) niks3-go-unit-tests> --- PASS: TestClientErrorHandling/ServerNotAvailable (12.82s) niks3-go-unit-tests> FAIL niks3-go-unit-tests> {"timestamp":"2026-10-08T17:03:57.656606Z","level":"ERROR","message":"HTTP transport failed","event":"http_transport_failed","component":"server","subsystem":"transport","peer_addr":"127.0.0.1:54329","error_kind":"io_error","error":"Cancelled","result":"transport_error","target":"rustfs::server::http","filename":"rustfs/src/server/http.rs","line_number":2354,"threadName":"rustfs-worker","threadId":"ThreadId(5)"} niks3-go-unit-tests> 2026-10-08 17:03:57.812 UTC [67677] LOG: received smart shutdown request niks3-go-unit-tests> 2026-10-08 17:03:57.813 UTC [67677] LOG: background worker "logical replication launcher" (PID 67688) exited with exit code 1 niks3-go-unit-tests> 2026-10-08 17:03:59.140 UTC [67682] LOG: checkpoint complete: wrote 10889 buffers (66.5%), wrote 5 SLRU buffers; 0 WAL file(s) added, 0 removed, 33 recycled; write=11.966 s, sync=0.655 s, total=12.711 s; sync files=34035, longest=0.001 s, average=0.001 s; distance=533305 kB, estimate=533305 kB; lsn=0/228079C8, redo lsn=0/2205B5F8 niks3-go-unit-tests> 2026-10-08 17:03:59.141 UTC [67682] LOG: shutting down niks3-go-unit-tests> 2026-10-08 17:03:59.141 UTC [67682] LOG: checkpoint starting: shutdown immediate niks3-go-unit-tests> 2026-10-08 17:03:59.197 UTC [67682] LOG: checkpoint complete: wrote 1277 buffers (7.8%), wrote 1 SLRU buffers; 0 WAL file(s) added, 0 removed, 0 recycled; write=0.046 s, sync=0.010 s, total=0.057 s; sync files=456, longest=0.001 s, average=0.001 s; distance=7857 kB, estimate=480760 kB; lsn=0/22807A40, redo lsn=0/22807A40 niks3-go-unit-tests> 2026-10-08 17:03:59.203 UTC [67677] LOG: database system is shut down error: Cannot build '/nix/store/kcc62ssqkx2r3raf7ly3mpzyygdi831j-niks3-go-unit-tests.drv'. Reason: builder failed with exit code 1. Output paths: /nix/store/r0ybda0vbrqcp03jxm47k7hibb53kid1-niks3-go-unit-tests Last 25 log lines: > 2026/10/08 17:03:51 WARN Request failed, retrying attempt=1 backoff=100ms error="Get \"http://localhost:19999/api/cache-config\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/cache-config > 2026/10/08 17:03:51 WARN Request failed, retrying attempt=2 backoff=187.894738ms error="Get \"http://localhost:19999/api/cache-config\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/cache-config > 2026/10/08 17:03:51 WARN Request failed, retrying attempt=3 backoff=399.211916ms error="Get \"http://localhost:19999/api/cache-config\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/cache-config > --- PASS: TestReadProxyOutlastsServerWriteTimeout (11.75s) > 2026/10/08 17:03:52 WARN Request failed, retrying attempt=4 backoff=728.744142ms error="Get \"http://localhost:19999/api/cache-config\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/cache-config > 2026/10/08 17:03:53 WARN Request failed, retrying attempt=5 backoff=1.508108162s error="Get \"http://localhost:19999/api/cache-config\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/cache-config > {"timestamp":"2026-10-08T17:03:53.990404Z","level":"ERROR","message":"Scanner cycle completed without a durable data usage snapshot","event":"scanner_persist_state","component":"scanner","subsystem":"runtime","cycle":5,"outcome":"NoUpdate","state":"usage_not_durable","target":"rustfs::scanner","filename":"crates/scanner/src/scanner.rs","line_number":2350,"threadName":"rustfs-worker","threadId":"ThreadId(8)"} > 2026/10/08 17:03:54 WARN Request failed, retrying attempt=1 backoff=100ms error="Post \"http://localhost:19999/api/pending_closures\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/pending_closures > 2026/10/08 17:03:54 WARN Request failed, retrying attempt=2 backoff=219.710269ms error="Post \"http://localhost:19999/api/pending_closures\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/pending_closures > 2026/10/08 17:03:54 WARN Request failed, retrying attempt=3 backoff=400.369528ms error="Post \"http://localhost:19999/api/pending_closures\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/pending_closures > 2026/10/08 17:03:55 WARN Request failed, retrying attempt=4 backoff=864.608284ms error="Post \"http://localhost:19999/api/pending_closures\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/pending_closures > 2026/10/08 17:03:56 WARN Request failed, retrying attempt=5 backoff=1.446734662s error="Post \"http://localhost:19999/api/pending_closures\": dial tcp [::1]:19999: connect: connection refused" url=http://localhost:19999/api/pending_closures > --- PASS: TestClientErrorHandling (0.00s) > --- PASS: TestClientErrorHandling/InvalidStorePath (5.73s) > --- PASS: TestClientErrorHandling/InvalidAuthToken (5.39s) > --- PASS: TestClientErrorHandling/ServerNotAvailable (12.82s) > FAIL > {"timestamp":"2026-10-08T17:03:57.656606Z","level":"ERROR","message":"HTTP transport failed","event":"http_transport_failed","component":"server","subsystem":"transport","peer_addr":"127.0.0.1:54329","error_kind":"io_error","error":"Cancelled","result":"transport_error","target":"rustfs::server::http","filename":"rustfs/src/server/http.rs","line_number":2354,"threadName":"rustfs-worker","threadId":"ThreadId(5)"} > 2026-10-08 17:03:57.812 UTC [67677] LOG: received smart shutdown request > 2026-10-08 17:03:57.813 UTC [67677] LOG: background worker "logical replication launcher" (PID 67688) exited with exit code 1 > 2026-10-08 17:03:59.140 UTC [67682] LOG: checkpoint complete: wrote 10889 buffers (66.5%), wrote 5 SLRU buffers; 0 WAL file(s) added, 0 removed, 33 recycled; write=11.966 s, sync=0.655 s, total=12.711 s; sync files=34035, longest=0.001 s, average=0.001 s; distance=533305 kB, estimate=533305 kB; lsn=0/228079C8, redo lsn=0/2205B5F8 > 2026-10-08 17:03:59.141 UTC [67682] LOG: shutting down > 2026-10-08 17:03:59.141 UTC [67682] LOG: checkpoint starting: shutdown immediate > 2026-10-08 17:03:59.197 UTC [67682] LOG: checkpoint complete: wrote 1277 buffers (7.8%), wrote 1 SLRU buffers; 0 WAL file(s) added, 0 removed, 0 recycled; write=0.046 s, sync=0.010 s, total=0.057 s; sync files=456, longest=0.001 s, average=0.001 s; distance=7857 kB, estimate=480760 kB; lsn=0/22807A40, redo lsn=0/22807A40 > 2026-10-08 17:03:59.203 UTC [67677] LOG: database system is shut down For full logs, run: nix log /nix/store/kcc62ssqkx2r3raf7ly3mpzyygdi831j-niks3-go-unit-tests.drv