this derivation will be built: /nix/store/v3s580wgb8vhfxlm6h4g1a7cayzhgzh3-niks3-go-unit-tests.drv building '/nix/store/v3s580wgb8vhfxlm6h4g1a7cayzhgzh3-niks3-go-unit-tests.drv' on 'ssh-ng://customer@mac02' building '/nix/store/v3s580wgb8vhfxlm6h4g1a7cayzhgzh3-niks3-go-unit-tests.drv' niks3-go-unit-tests> Running client tests... niks3-go-unit-tests> === RUN TestDoServerRequestAttachesToken niks3-go-unit-tests> === PAUSE TestDoServerRequestAttachesToken niks3-go-unit-tests> === RUN TestRegisterUploadedObjectReusesConnections niks3-go-unit-tests> === PAUSE TestRegisterUploadedObjectReusesConnections niks3-go-unit-tests> === RUN TestCaseHackSuffix niks3-go-unit-tests> === PAUSE TestCaseHackSuffix niks3-go-unit-tests> === RUN TestFilterOversizedClosures niks3-go-unit-tests> === PAUSE TestFilterOversizedClosures niks3-go-unit-tests> === RUN TestUploadMultipart_PartsInParallel niks3-go-unit-tests> === PAUSE TestUploadMultipart_PartsInParallel niks3-go-unit-tests> === RUN TestPartSizeForNAR niks3-go-unit-tests> === PAUSE TestPartSizeForNAR niks3-go-unit-tests> === RUN TestUploadMultipart_SupersededByPeer niks3-go-unit-tests> === PAUSE TestUploadMultipart_SupersededByPeer niks3-go-unit-tests> === RUN TestDumpPathCaseHackMatchesNix niks3-go-unit-tests> --- PASS: TestDumpPathCaseHackMatchesNix (0.28s) niks3-go-unit-tests> === RUN TestDumpPathCaseHackCollision niks3-go-unit-tests> --- PASS: TestDumpPathCaseHackCollision (0.00s) niks3-go-unit-tests> === RUN TestDumpPathMatchesNix niks3-go-unit-tests> === PAUSE TestDumpPathMatchesNix niks3-go-unit-tests> === RUN TestDumpPathSingleFile niks3-go-unit-tests> === PAUSE TestDumpPathSingleFile niks3-go-unit-tests> === RUN TestDumpPathWriterError niks3-go-unit-tests> === PAUSE TestDumpPathWriterError niks3-go-unit-tests> === RUN TestEncodeNixBase32 niks3-go-unit-tests> === PAUSE TestEncodeNixBase32 niks3-go-unit-tests> === RUN TestEncodeNixBase32WithRealHash niks3-go-unit-tests> === PAUSE TestEncodeNixBase32WithRealHash niks3-go-unit-tests> === RUN TestConvertHashToNix32 niks3-go-unit-tests> === PAUSE TestConvertHashToNix32 niks3-go-unit-tests> === RUN TestGetStorePathHash niks3-go-unit-tests> === PAUSE TestGetStorePathHash niks3-go-unit-tests> === RUN TestPathInfoHashCompatibility niks3-go-unit-tests> === PAUSE TestPathInfoHashCompatibility niks3-go-unit-tests> === RUN TestParsePathInfoJSON niks3-go-unit-tests> === PAUSE TestParsePathInfoJSON niks3-go-unit-tests> === RUN TestParsePathInfoJSONMultiplePaths niks3-go-unit-tests> === PAUSE TestParsePathInfoJSONMultiplePaths niks3-go-unit-tests> === RUN TestPathInfoCACompatibility niks3-go-unit-tests> === PAUSE TestPathInfoCACompatibility niks3-go-unit-tests> === RUN TestRateLimiterFeedback niks3-go-unit-tests> === PAUSE TestRateLimiterFeedback niks3-go-unit-tests> === RUN TestRateLimiterFeedback_400DoesNotCountAsSuccess niks3-go-unit-tests> === PAUSE TestRateLimiterFeedback_400DoesNotCountAsSuccess niks3-go-unit-tests> === RUN TestResolveStorePath niks3-go-unit-tests> === PAUSE TestResolveStorePath niks3-go-unit-tests> === RUN TestDoWithRetry_BodyReplayedViaGetBody niks3-go-unit-tests> === PAUSE TestDoWithRetry_BodyReplayedViaGetBody niks3-go-unit-tests> === RUN TestShellSplit niks3-go-unit-tests> === PAUSE TestShellSplit niks3-go-unit-tests> === RUN TestShellSplitErrors niks3-go-unit-tests> === PAUSE TestShellSplitErrors niks3-go-unit-tests> === RUN TestStreamPushReportsEveryPath niks3-go-unit-tests> === PAUSE TestStreamPushReportsEveryPath niks3-go-unit-tests> === RUN TestStreamPushBatchesUnderLoad niks3-go-unit-tests> === PAUSE TestStreamPushBatchesUnderLoad niks3-go-unit-tests> === RUN TestStreamPushIsolatesFailures niks3-go-unit-tests> === PAUSE TestStreamPushIsolatesFailures niks3-go-unit-tests> === RUN TestStreamPushGivesUpOnDeadServer niks3-go-unit-tests> === PAUSE TestStreamPushGivesUpOnDeadServer niks3-go-unit-tests> === RUN TestStreamPushRequestLine niks3-go-unit-tests> === PAUSE TestStreamPushRequestLine niks3-go-unit-tests> === RUN TestStreamPushReportsSignatures niks3-go-unit-tests> === PAUSE TestStreamPushReportsSignatures niks3-go-unit-tests> === RUN TestClientSignaturesByStorePath niks3-go-unit-tests> === PAUSE TestClientSignaturesByStorePath niks3-go-unit-tests> === RUN TestSetClientTLS niks3-go-unit-tests> === PAUSE TestSetClientTLS niks3-go-unit-tests> === RUN TestSetClientTLSDoesNotMutateDefaultTransport niks3-go-unit-tests> === PAUSE TestSetClientTLSDoesNotMutateDefaultTransport niks3-go-unit-tests> === RUN TestSetClientTLSErrors niks3-go-unit-tests> === PAUSE TestSetClientTLSErrors niks3-go-unit-tests> === RUN TestStaticToken niks3-go-unit-tests> === PAUSE TestStaticToken niks3-go-unit-tests> === RUN TestFileTokenReadsAndCaches niks3-go-unit-tests> === PAUSE TestFileTokenReadsAndCaches niks3-go-unit-tests> === RUN TestFileTokenMissing niks3-go-unit-tests> === PAUSE TestFileTokenMissing niks3-go-unit-tests> === RUN TestFileTokenEmpty niks3-go-unit-tests> === PAUSE TestFileTokenEmpty niks3-go-unit-tests> === RUN TestScriptTokenNoExpiryRerunsEveryCall niks3-go-unit-tests> === PAUSE TestScriptTokenNoExpiryRerunsEveryCall niks3-go-unit-tests> === RUN TestScriptTokenCachesUntilRefresh niks3-go-unit-tests> === PAUSE TestScriptTokenCachesUntilRefresh niks3-go-unit-tests> === RUN TestScriptTokenEmptyToken niks3-go-unit-tests> === PAUSE TestScriptTokenEmptyToken niks3-go-unit-tests> === RUN TestScriptTokenBadJSON niks3-go-unit-tests> === PAUSE TestScriptTokenBadJSON niks3-go-unit-tests> === RUN TestScriptTokenScriptFails niks3-go-unit-tests> === PAUSE TestScriptTokenScriptFails niks3-go-unit-tests> === RUN TestScriptTokenEmptyCommand niks3-go-unit-tests> === PAUSE TestScriptTokenEmptyCommand niks3-go-unit-tests> === CONT TestDoServerRequestAttachesToken niks3-go-unit-tests> === CONT TestScriptTokenEmptyCommand niks3-go-unit-tests> === CONT TestShellSplit niks3-go-unit-tests> --- PASS: TestScriptTokenEmptyCommand (0.00s) niks3-go-unit-tests> === CONT TestStreamPushRequestLine niks3-go-unit-tests> --- PASS: TestShellSplit (0.00s) niks3-go-unit-tests> === CONT TestStreamPushGivesUpOnDeadServer niks3-go-unit-tests> === CONT TestSetClientTLSDoesNotMutateDefaultTransport niks3-go-unit-tests> === CONT TestStreamPushIsolatesFailures niks3-go-unit-tests> === CONT TestSetClientTLSErrors niks3-go-unit-tests> === CONT TestScriptTokenScriptFails niks3-go-unit-tests> 2026/10/01 09:51:58 ERROR Upload failed error="bad path" count=3 niks3-go-unit-tests> --- PASS: TestStreamPushIsolatesFailures (0.00s) niks3-go-unit-tests> === CONT TestScriptTokenNoExpiryRerunsEveryCall niks3-go-unit-tests> 2026/10/01 09:51:58 ERROR Upload failed error="connection refused" count=20 niks3-go-unit-tests> 2026/10/01 09:51:58 ERROR Server seems unavailable, giving up on batch untried=17 niks3-go-unit-tests> --- PASS: TestStreamPushGivesUpOnDeadServer (0.00s) niks3-go-unit-tests> === CONT TestFileTokenEmpty niks3-go-unit-tests> 2026/10/01 09:51:58 ERROR Upload failed error=boom count=1 niks3-go-unit-tests> === CONT TestScriptTokenBadJSON niks3-go-unit-tests> === CONT TestScriptTokenEmptyToken niks3-go-unit-tests> === CONT TestScriptTokenCachesUntilRefresh niks3-go-unit-tests> --- PASS: TestFileTokenEmpty (0.00s) niks3-go-unit-tests> === CONT TestFileTokenMissing niks3-go-unit-tests> === RUN TestSetClientTLSErrors/missing_cert_file niks3-go-unit-tests> === PAUSE TestSetClientTLSErrors/missing_cert_file niks3-go-unit-tests> === RUN TestSetClientTLSErrors/missing_key_file niks3-go-unit-tests> === PAUSE TestSetClientTLSErrors/missing_key_file niks3-go-unit-tests> === RUN TestSetClientTLSErrors/missing_ca_file niks3-go-unit-tests> === PAUSE TestSetClientTLSErrors/missing_ca_file niks3-go-unit-tests> === RUN TestSetClientTLSErrors/invalid_ca_file niks3-go-unit-tests> === PAUSE TestSetClientTLSErrors/invalid_ca_file niks3-go-unit-tests> --- PASS: TestFileTokenMissing (0.00s) niks3-go-unit-tests> === CONT TestStaticToken niks3-go-unit-tests> === CONT TestFileTokenReadsAndCaches niks3-go-unit-tests> --- PASS: TestStaticToken (0.00s) 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> --- PASS: TestScriptTokenScriptFails (0.01s) niks3-go-unit-tests> === CONT TestDoWithRetry_BodyReplayedViaGetBody 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> === PAUSE TestPathInfoCACompatibility/new_structured_format_-_nar_method niks3-go-unit-tests> --- PASS: TestFileTokenReadsAndCaches (0.00s) niks3-go-unit-tests> === CONT TestResolveStorePath niks3-go-unit-tests> === CONT TestRateLimiterFeedback_400DoesNotCountAsSuccess niks3-go-unit-tests> 2026/10/01 09:51:58 WARN Rate limiter enabled after throttle name=server-test rate=5 niks3-go-unit-tests> --- PASS: TestSetClientTLSDoesNotMutateDefaultTransport (0.01s) 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 TestSetClientTLS niks3-go-unit-tests> --- PASS: TestDoServerRequestAttachesToken (0.01s) niks3-go-unit-tests> === CONT TestStreamPushReportsSignatures niks3-go-unit-tests> 2026/10/01 09:51:58 WARN Rate limiter enabled after throttle name=server-test rate=5 niks3-go-unit-tests> 2026/10/01 09:51:58 WARN Request returned retryable status, retrying attempt=1 max_attempts=6 backoff=0s status=503 url=http://127.0.0.1:54771 niks3-go-unit-tests> 2026/10/01 09:51:58 ERROR Upload failed error=boom count=1 niks3-go-unit-tests> --- PASS: TestStreamPushReportsSignatures (0.00s) niks3-go-unit-tests> === CONT TestPathInfoHashCompatibility niks3-go-unit-tests> === RUN TestPathInfoHashCompatibility/old_string_format_with_dash_(SRI) niks3-go-unit-tests> === PAUSE TestPathInfoHashCompatibility/old_string_format_with_dash_(SRI) niks3-go-unit-tests> === RUN TestPathInfoHashCompatibility/old_string_format_with_colon niks3-go-unit-tests> --- PASS: TestResolveStorePath (0.00s) niks3-go-unit-tests> === CONT TestParsePathInfoJSONMultiplePaths niks3-go-unit-tests> === RUN TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths niks3-go-unit-tests> === PAUSE TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths niks3-go-unit-tests> 2026/10/01 09:51:58 WARN Rate limiter backed off name=server-test rate=5 niks3-go-unit-tests> === RUN TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths niks3-go-unit-tests> 2026/10/01 09:51:58 WARN Request returned retryable status, retrying attempt=2 max_attempts=6 backoff=0s status=503 url=http://127.0.0.1:54771 niks3-go-unit-tests> === PAUSE TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths niks3-go-unit-tests> === CONT TestParsePathInfoJSON 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> === PAUSE TestParsePathInfoJSON/empty_input niks3-go-unit-tests> === RUN TestParsePathInfoJSON/whitespace_only niks3-go-unit-tests> === PAUSE TestParsePathInfoJSON/whitespace_only niks3-go-unit-tests> === RUN TestParsePathInfoJSON/invalid_JSON niks3-go-unit-tests> === PAUSE TestPathInfoHashCompatibility/old_string_format_with_colon niks3-go-unit-tests> === RUN TestPathInfoHashCompatibility/new_structured_format_-_converts_to_SRI niks3-go-unit-tests> === PAUSE TestPathInfoHashCompatibility/new_structured_format_-_converts_to_SRI niks3-go-unit-tests> === RUN TestPathInfoHashCompatibility/new_structured_format_with_sha512 niks3-go-unit-tests> === PAUSE TestPathInfoHashCompatibility/new_structured_format_with_sha512 niks3-go-unit-tests> === PAUSE TestParsePathInfoJSON/invalid_JSON 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> === CONT TestStreamPushBatchesUnderLoad niks3-go-unit-tests> === RUN TestGetStorePathHash/basename_without_hyphen_should_error niks3-go-unit-tests> --- PASS: TestDoWithRetry_BodyReplayedViaGetBody (0.00s) niks3-go-unit-tests> === CONT TestConvertHashToNix32 niks3-go-unit-tests> === PAUSE TestGetStorePathHash/basename_without_hyphen_should_error niks3-go-unit-tests> === RUN TestConvertHashToNix32/SRI_format_to_Nix32 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> === PAUSE TestConvertHashToNix32/SRI_format_to_Nix32 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 TestStreamPushReportsEveryPath 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 TestShellSplitErrors niks3-go-unit-tests> --- PASS: TestShellSplitErrors (0.00s) niks3-go-unit-tests> === CONT TestEncodeNixBase32WithRealHash niks3-go-unit-tests> --- PASS: TestStreamPushReportsEveryPath (0.00s) niks3-go-unit-tests> === CONT TestDumpPathWriterError niks3-go-unit-tests> --- PASS: TestEncodeNixBase32WithRealHash (0.00s) 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> === PAUSE TestEncodeNixBase32/empty_input niks3-go-unit-tests> === CONT TestUploadMultipart_SupersededByPeer niks3-go-unit-tests> === RUN TestUploadMultipart_SupersededByPeer/exists niks3-go-unit-tests> === PAUSE TestUploadMultipart_SupersededByPeer/exists niks3-go-unit-tests> === RUN TestUploadMultipart_SupersededByPeer/missing niks3-go-unit-tests> === PAUSE TestUploadMultipart_SupersededByPeer/missing niks3-go-unit-tests> === CONT TestDumpPathSingleFile 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 TestDumpPathMatchesNix niks3-go-unit-tests> --- PASS: TestScriptTokenBadJSON (0.02s) niks3-go-unit-tests> === CONT TestFilterOversizedClosures niks3-go-unit-tests> === RUN TestFilterOversizedClosures/no_limit_keeps_everything niks3-go-unit-tests> === PAUSE TestFilterOversizedClosures/no_limit_keeps_everything niks3-go-unit-tests> === RUN TestFilterOversizedClosures/closure_with_oversized_dependency_is_skipped niks3-go-unit-tests> === PAUSE TestFilterOversizedClosures/closure_with_oversized_dependency_is_skipped niks3-go-unit-tests> === RUN TestFilterOversizedClosures/all_closures_skipped niks3-go-unit-tests> === PAUSE TestFilterOversizedClosures/all_closures_skipped niks3-go-unit-tests> === CONT TestPartSizeForNAR niks3-go-unit-tests> === RUN TestPartSizeForNAR/zero_stays_at_minimum 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 TestUploadMultipart_PartsInParallel niks3-go-unit-tests> --- PASS: TestScriptTokenEmptyToken (0.02s) niks3-go-unit-tests> === CONT TestCaseHackSuffix niks3-go-unit-tests> --- PASS: TestStreamPushRequestLine (0.03s) niks3-go-unit-tests> === CONT TestRegisterUploadedObjectReusesConnections niks3-go-unit-tests> --- PASS: TestScriptTokenNoExpiryRerunsEveryCall (0.05s) niks3-go-unit-tests> === CONT TestSetClientTLSErrors/missing_cert_file niks3-go-unit-tests> === CONT TestSetClientTLSErrors/missing_ca_file niks3-go-unit-tests> === CONT TestSetClientTLSErrors/invalid_ca_file niks3-go-unit-tests> === CONT TestSetClientTLSErrors/missing_key_file 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> === CONT TestPathInfoCACompatibility/null_ca_field niks3-go-unit-tests> === CONT TestPathInfoCACompatibility/new_structured_format_-_nar_method niks3-go-unit-tests> === CONT TestPathInfoCACompatibility/new_structured_format_-_text niks3-go-unit-tests> === CONT TestPathInfoCACompatibility/old_string_format_-_fixed_recursive niks3-go-unit-tests> === CONT TestPathInfoCACompatibility/old_string_format_-_text niks3-go-unit-tests> --- PASS: TestPathInfoCACompatibility (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoCACompatibility/null_ca_field (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoCACompatibility/new_structured_format_-_nar_method (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoCACompatibility/new_structured_format_-_text (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoCACompatibility/old_string_format_-_fixed_recursive (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoCACompatibility/old_string_format_-_text (0.00s) niks3-go-unit-tests> === CONT TestRateLimiterFeedback/429_enables_limiter niks3-go-unit-tests> 2026/10/01 09:51:58 WARN Rate limiter enabled after throttle name=server-test rate=5 niks3-go-unit-tests> 2026/10/01 09:51:58 WARN Request returned retryable status, retrying attempt=1 max_attempts=2 backoff=0s status=429 url=http://127.0.0.1:54846 niks3-go-unit-tests> 2026/10/01 09:51:58 WARN Rate limiter backed off name=server-test rate=5 niks3-go-unit-tests> === CONT TestRateLimiterFeedback/200_does_not_enable_limiter niks3-go-unit-tests> === CONT TestRateLimiterFeedback/400_does_not_enable_limiter niks3-go-unit-tests> === CONT TestRateLimiterFeedback/503_enables_limiter niks3-go-unit-tests> 2026/10/01 09:51:58 WARN Rate limiter enabled after throttle name=server-test rate=5 niks3-go-unit-tests> 2026/10/01 09:51:58 WARN Request returned retryable status, retrying attempt=1 max_attempts=2 backoff=0s status=503 url=http://127.0.0.1:54852 niks3-go-unit-tests> --- PASS: TestScriptTokenCachesUntilRefresh (0.06s) niks3-go-unit-tests> === CONT TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths niks3-go-unit-tests> === CONT TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths niks3-go-unit-tests> 2026/10/01 09:51:58 WARN Rate limiter backed off name=server-test rate=5 niks3-go-unit-tests> --- PASS: TestParsePathInfoJSONMultiplePaths (0.00s) 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 TestPathInfoHashCompatibility/old_string_format_with_dash_(SRI) niks3-go-unit-tests> === CONT TestParsePathInfoJSON/Nix_format niks3-go-unit-tests> === CONT TestParsePathInfoJSON/whitespace_only niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback (0.00s) niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback/429_enables_limiter (0.00s) niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback/200_does_not_enable_limiter (0.00s) niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback/400_does_not_enable_limiter (0.00s) niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback/503_enables_limiter (0.00s) niks3-go-unit-tests> === CONT TestParsePathInfoJSON/empty_input niks3-go-unit-tests> === CONT TestParsePathInfoJSON/Lix_format niks3-go-unit-tests> === CONT TestParsePathInfoJSON/invalid_JSON niks3-go-unit-tests> --- PASS: TestParsePathInfoJSON (0.00s) 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/empty_input (0.00s) niks3-go-unit-tests> --- PASS: TestParsePathInfoJSON/Lix_format (0.00s) niks3-go-unit-tests> --- PASS: TestParsePathInfoJSON/invalid_JSON (0.00s) niks3-go-unit-tests> === CONT TestPathInfoHashCompatibility/new_structured_format_-_converts_to_SRI niks3-go-unit-tests> === CONT TestPathInfoHashCompatibility/old_string_format_with_colon niks3-go-unit-tests> === CONT TestPathInfoHashCompatibility/new_structured_format_with_sha512 niks3-go-unit-tests> --- PASS: TestPathInfoHashCompatibility (0.00s) 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 TestGetStorePathHash/hash_with_wrong_length_should_error niks3-go-unit-tests> === CONT TestGetStorePathHash/hash_with_invalid_characters_should_error niks3-go-unit-tests> === CONT TestGetStorePathHash/basename_without_hyphen_should_error niks3-go-unit-tests> === CONT TestConvertHashToNix32/SRI_format_to_Nix32 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/hash_with_invalid_characters_should_error (0.00s) niks3-go-unit-tests> --- PASS: TestGetStorePathHash/basename_without_hyphen_should_error (0.00s) niks3-go-unit-tests> === CONT TestConvertHashToNix32/already_Nix32_format niks3-go-unit-tests> === CONT TestConvertHashToNix32/invalid_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/already_Nix32_format (0.00s) niks3-go-unit-tests> --- PASS: TestConvertHashToNix32/invalid_format (0.00s) niks3-go-unit-tests> === CONT TestEncodeNixBase32/test_string_hash niks3-go-unit-tests> === CONT TestUploadMultipart_SupersededByPeer/exists niks3-go-unit-tests> === CONT TestEncodeNixBase32/empty_input niks3-go-unit-tests> --- PASS: TestEncodeNixBase32 (0.00s) 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/missing niks3-go-unit-tests> === CONT TestSetClientTLS/rejects_connection_without_client_cert niks3-go-unit-tests> === CONT TestSetClientTLS/preserves_debug_logging_transport niks3-go-unit-tests> --- PASS: TestUploadMultipart_SupersededByPeer (0.00s) niks3-go-unit-tests> --- PASS: TestUploadMultipart_SupersededByPeer/missing (0.00s) niks3-go-unit-tests> --- PASS: TestUploadMultipart_SupersededByPeer/exists (0.00s) niks3-go-unit-tests> === CONT TestSetClientTLS/succeeds_with_client_cert_and_CA 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/01 09:51:58 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/01 09:51:58 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.00s) 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 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/115_GiB_needs_larger_parts niks3-go-unit-tests> === CONT TestPartSizeForNAR/small_stays_at_minimum 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/115_GiB_needs_larger_parts (0.00s) niks3-go-unit-tests> --- PASS: TestPartSizeForNAR/small_stays_at_minimum (0.00s) niks3-go-unit-tests> --- PASS: TestDumpPathWriterError (0.06s) niks3-go-unit-tests> --- PASS: TestRegisterUploadedObjectReusesConnections (0.04s) niks3-go-unit-tests> 2026/10/01 09:51:58 http: TLS handshake error from 127.0.0.1:54858: remote error: tls: bad certificate niks3-go-unit-tests> --- PASS: TestSetClientTLS (0.00s) 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.00s) niks3-go-unit-tests> --- PASS: TestSetClientTLS/rejects_connection_without_client_cert (0.01s) niks3-go-unit-tests> --- PASS: TestStreamPushBatchesUnderLoad (0.11s) niks3-go-unit-tests> --- PASS: TestDumpPathSingleFile (0.25s) niks3-go-unit-tests> --- PASS: TestCaseHackSuffix (0.26s) niks3-go-unit-tests> --- PASS: TestDumpPathMatchesNix (0.30s) niks3-go-unit-tests> --- PASS: TestUploadMultipart_PartsInParallel (0.64s) niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback_400DoesNotCountAsSuccess (1.00s) 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 "_nixbld1". 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 /nix/var/nix/builds/nix-89420-1799472875/postgres4152228415/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 /nix/var/nix/builds/nix-89420-1799472875/postgres4152228415/data -l logfile start niks3-go-unit-tests> niks3-go-unit-tests> /nix/var/nix/builds/nix-89420-1799472875/postgres4152228415:5432 - no response niks3-go-unit-tests> 2026-10-01 09:52:02.362 UTC [89880] 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-01 09:52:02.362 UTC [89880] LOG: listening on Unix socket "/nix/var/nix/builds/nix-89420-1799472875/postgres4152228415/.s.PGSQL.5432" niks3-go-unit-tests> 2026-10-01 09:52:02.369 UTC [89887] LOG: database system was shut down at 2026-10-01 09:52:02 UTC niks3-go-unit-tests> 2026-10-01 09:52:02.371 UTC [89880] LOG: database system is ready to accept connections niks3-go-unit-tests> /nix/var/nix/builds/nix-89420-1799472875/postgres4152228415:5432 - accepting connections niks3-go-unit-tests> {"timestamp":"2026-10-01T09:52:02.593795Z","level":"ERROR","message":"HTTP request completed","event":"http_request_completed","component":"server","subsystem":"http","request_id":"7108caef-4145-4433-a880-afa95dcfdced","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> {"timestamp":"2026-10-01T09:52:02.696466Z","level":"ERROR","message":"HTTP request completed","event":"http_request_completed","component":"server","subsystem":"http","request_id":"63cdd3e0-37be-4b6e-9570-9226dc8ae3d6","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 TestConcurrentCommitsSharingObjectsDoNotDeadlock niks3-go-unit-tests> === PAUSE TestConcurrentCommitsSharingObjectsDoNotDeadlock niks3-go-unit-tests> === RUN TestResolveDBConnectionString niks3-go-unit-tests> === PAUSE TestResolveDBConnectionString niks3-go-unit-tests> === RUN TestLeadElectsOneAndHandsOver niks3-go-unit-tests> === PAUSE TestLeadElectsOneAndHandsOver niks3-go-unit-tests> === RUN TestLeadIncumbentWinsAfterRestart niks3-go-unit-tests> 2026-10-01 09:52:03.000 UTC [89923] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-10-01 09:52:03.000 UTC [89923] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/10/01 09:52:03 OK 20241026095416_initial_model.sql (13.66ms) niks3-go-unit-tests> 2026/10/01 09:52:03 OK 20251210153512_drop_unused_gin_index.sql (1.55ms) niks3-go-unit-tests> 2026/10/01 09:52:03 OK 20251218171726_add_pins.sql (3.04ms) niks3-go-unit-tests> 2026/10/01 09:52:03 OK 20260628120000_add_object_size_and_stats.sql (2.47ms) niks3-go-unit-tests> 2026/10/01 09:52:03 OK 20260905000000_add_claims.sql (2.88ms) niks3-go-unit-tests> 2026/10/01 09:52:03 OK 20260920000000_drop_claims.sql (1.41ms) niks3-go-unit-tests> 2026/10/01 09:52:03 OK 20260923120000_add_pushes.sql (1.24ms) niks3-go-unit-tests> 2026/10/01 09:52:03 goose: successfully migrated database to version: 20260923120000 niks3-go-unit-tests> 2026/10/01 09:52:03 OK 1_commit_pending_closure.sql (2.06ms) niks3-go-unit-tests> 2026/10/01 09:52:03 OK 2_object_stats_trigger.sql (593.46µs) niks3-go-unit-tests> 2026/10/01 09:52:03 OK 3_commit_push.sql (447.29µs) niks3-go-unit-tests> 2026/10/01 09:52:03 goose: up to current file version: 3 niks3-go-unit-tests> 2026/10/01 09:52:03 INFO lead: acquired remote=192.0.2.1:1234 niks3-go-unit-tests> 2026/10/01 09:52:03 INFO lead: released remote=192.0.2.1:1234 niks3-go-unit-tests> 2026/10/01 09:52:03 INFO lead: acquired remote=192.0.2.1:1234 niks3-go-unit-tests> 2026/10/01 09:52:03 INFO lead: released remote=192.0.2.1:1234 niks3-go-unit-tests> --- PASS: TestLeadIncumbentWinsAfterRestart (1.01s) niks3-go-unit-tests> === RUN TestLeadEndsOnShutdown niks3-go-unit-tests> === PAUSE TestLeadEndsOnShutdown niks3-go-unit-tests> === RUN TestGCAdvisoryLockBlocksConcurrentRun niks3-go-unit-tests> 2026-10-01 09:52:03.909 UTC [89944] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-10-01 09:52:03.909 UTC [89944] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/10/01 09:52:03 OK 20241026095416_initial_model.sql (12.43ms) niks3-go-unit-tests> 2026/10/01 09:52:03 OK 20251210153512_drop_unused_gin_index.sql (1.12ms) niks3-go-unit-tests> 2026/10/01 09:52:03 OK 20251218171726_add_pins.sql (2.07ms) niks3-go-unit-tests> 2026/10/01 09:52:03 OK 20260628120000_add_object_size_and_stats.sql (2.3ms) niks3-go-unit-tests> 2026/10/01 09:52:03 OK 20260905000000_add_claims.sql (2.94ms) niks3-go-unit-tests> 2026/10/01 09:52:03 OK 20260920000000_drop_claims.sql (1.42ms) niks3-go-unit-tests> 2026/10/01 09:52:03 OK 20260923120000_add_pushes.sql (1.18ms) niks3-go-unit-tests> 2026/10/01 09:52:03 goose: successfully migrated database to version: 20260923120000 niks3-go-unit-tests> 2026/10/01 09:52:03 OK 1_commit_pending_closure.sql (1.9ms) niks3-go-unit-tests> 2026/10/01 09:52:03 OK 2_object_stats_trigger.sql (1.18ms) niks3-go-unit-tests> 2026/10/01 09:52:03 OK 3_commit_push.sql (464.75µs) niks3-go-unit-tests> 2026/10/01 09:52:03 goose: up to current file version: 3 niks3-go-unit-tests> --- PASS: TestGCAdvisoryLockBlocksConcurrentRun (0.29s) 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 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 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 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> === PAUSE TestProxyHeadersOnlyTrustedOnSocket 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 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 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_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/01 09:52:04 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/10/01 09:52:04 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/10/01 09:52:04 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/10/01 09:52:04 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/10/01 09:52:04 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/10/01 09:52:04 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/10/01 09:52:04 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/10/01 09:52:04 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/10/01 09:52:04 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/10/01 09:52:04 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> --- PASS: TestWatchdogSkipsWhenUnhealthy (0.21s) 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 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 TestService_AuthMiddleware niks3-go-unit-tests> === CONT TestService_verifyS3Integrity niks3-go-unit-tests> === CONT TestService_createPendingClosureHandler niks3-go-unit-tests> === CONT TestGenerateLandingPage niks3-go-unit-tests> === CONT TestReadProxyConditionalGet niks3-go-unit-tests> === CONT TestDeduplicatedObjectsRecordedAsPending niks3-go-unit-tests> === CONT TestCreatePendingClosure_SmallNARUsesSimplePUT niks3-go-unit-tests> === CONT TestClientWithDependencies niks3-go-unit-tests> === CONT TestService_cleanupPendingClosuresHandler niks3-go-unit-tests> === CONT TestCompleteMultipartUnregistered niks3-go-unit-tests> --- PASS: TestGenerateLandingPage (0.00s) niks3-go-unit-tests> === CONT TestUploadHandlersRejectOversizedBody 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> === RUN TestUploadHandlersRejectOversizedBody/complete_multipart niks3-go-unit-tests> === PAUSE TestUploadHandlersRejectOversizedBody/complete_multipart 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 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 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-01 09:52:04.581 UTC [90033] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-10-01 09:52:04.581 UTC [90033] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20241026095416_initial_model.sql (23.2ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20251210153512_drop_unused_gin_index.sql (2.47ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20251218171726_add_pins.sql (5.58ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20260628120000_add_object_size_and_stats.sql (7.35ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20260905000000_add_claims.sql (7.2ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20260920000000_drop_claims.sql (4.46ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20260923120000_add_pushes.sql (2.71ms) niks3-go-unit-tests> 2026/10/01 09:52:04 goose: successfully migrated database to version: 20260923120000 niks3-go-unit-tests> 2026/10/01 09:52:04 OK 1_commit_pending_closure.sql (3.73ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 2_object_stats_trigger.sql (1.75ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 3_commit_push.sql (1.59ms) niks3-go-unit-tests> 2026/10/01 09:52:04 goose: up to current file version: 3 niks3-go-unit-tests> 2026-10-01 09:52:04.663 UTC [90036] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-10-01 09:52:04.663 UTC [90036] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-10-01 09:52:04.675 UTC [90037] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-10-01 09:52:04.675 UTC [90037] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-10-01 09:52:04.684 UTC [90038] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-10-01 09:52:04.684 UTC [90038] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-10-01 09:52:04.690 UTC [90039] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-10-01 09:52:04.690 UTC [90039] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-10-01 09:52:04.711 UTC [90040] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-10-01 09:52:04.711 UTC [90040] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-10-01 09:52:04.712 UTC [90041] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-10-01 09:52:04.712 UTC [90041] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20241026095416_initial_model.sql (72.34ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20251210153512_drop_unused_gin_index.sql (12.18ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20251218171726_add_pins.sql (17.91ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20241026095416_initial_model.sql (85.42ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20251210153512_drop_unused_gin_index.sql (8.67ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20260628120000_add_object_size_and_stats.sql (32.31ms) niks3-go-unit-tests> 2026-10-01 09:52:04.829 UTC [90042] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-10-01 09:52:04.829 UTC [90042] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20241026095416_initial_model.sql (119.49ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20260905000000_add_claims.sql (12.47ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20241026095416_initial_model.sql (120.35ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20251218171726_add_pins.sql (29.14ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20241026095416_initial_model.sql (95.09ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20241026095416_initial_model.sql (96.43ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20251210153512_drop_unused_gin_index.sql (4.5ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20251210153512_drop_unused_gin_index.sql (6.81ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20251210153512_drop_unused_gin_index.sql (6.35ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20251210153512_drop_unused_gin_index.sql (11.01ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20260920000000_drop_claims.sql (30.21ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20260628120000_add_object_size_and_stats.sql (29.03ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20260923120000_add_pushes.sql (8.5ms) niks3-go-unit-tests> 2026/10/01 09:52:04 goose: successfully migrated database to version: 20260923120000 niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20251218171726_add_pins.sql (31.75ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20251218171726_add_pins.sql (33.62ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20251218171726_add_pins.sql (33.7ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 1_commit_pending_closure.sql (2.17ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 2_object_stats_trigger.sql (569.33µs) niks3-go-unit-tests> --- PASS: TestReadProxyConditionalGet (0.54s) niks3-go-unit-tests> === CONT TestGCEndsOnShutdown niks3-go-unit-tests> 2026/10/01 09:52:04 OK 3_commit_push.sql (544.92µs) niks3-go-unit-tests> 2026/10/01 09:52:04 goose: up to current file version: 3 niks3-go-unit-tests> 2026-10-01 09:52:04.880 UTC [90043] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-10-01 09:52:04.880 UTC [90043] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20251218171726_add_pins.sql (49.7ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20260628120000_add_object_size_and_stats.sql (45.44ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20260628120000_add_object_size_and_stats.sql (48.04ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20260628120000_add_object_size_and_stats.sql (61.01ms) niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20260628120000_add_object_size_and_stats.sql (37.25ms) niks3-go-unit-tests> 2026-10-01 09:52:04.960 UTC [90044] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-10-01 09:52:04.960 UTC [90044] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/10/01 09:52:04 OK 20260905000000_add_claims.sql (103.64ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260905000000_add_claims.sql (80.88ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260905000000_add_claims.sql (68.15ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260920000000_drop_claims.sql (14.82ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260920000000_drop_claims.sql (49.96ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260905000000_add_claims.sql (101.5ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260905000000_add_claims.sql (87.68ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20241026095416_initial_model.sql (138.21ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260923120000_add_pushes.sql (10.91ms) niks3-go-unit-tests> 2026/10/01 09:52:05 goose: successfully migrated database to version: 20260923120000 niks3-go-unit-tests> 2026/10/01 09:52:05 OK 1_commit_pending_closure.sql (1.98ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 2_object_stats_trigger.sql (536.42µs) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 3_commit_push.sql (387.42µs) niks3-go-unit-tests> 2026/10/01 09:52:05 goose: up to current file version: 3 niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20251210153512_drop_unused_gin_index.sql (16.35ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260923120000_add_pushes.sql (20.48ms) niks3-go-unit-tests> 2026/10/01 09:52:05 goose: successfully migrated database to version: 20260923120000 niks3-go-unit-tests> 2026/10/01 09:52:05 OK 1_commit_pending_closure.sql (2.14ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 2_object_stats_trigger.sql (540.38µs) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 3_commit_push.sql (372.29µs) niks3-go-unit-tests> 2026/10/01 09:52:05 goose: up to current file version: 3 niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260920000000_drop_claims.sql (47.91ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260920000000_drop_claims.sql (30.97ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260920000000_drop_claims.sql (30.81ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260923120000_add_pushes.sql (9.27ms) niks3-go-unit-tests> 2026/10/01 09:52:05 goose: successfully migrated database to version: 20260923120000 niks3-go-unit-tests> 2026/10/01 09:52:05 OK 1_commit_pending_closure.sql (2ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 2_object_stats_trigger.sql (570.17µs) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 3_commit_push.sql (461.63µs) niks3-go-unit-tests> 2026/10/01 09:52:05 goose: up to current file version: 3 niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20251218171726_add_pins.sql (32.09ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260923120000_add_pushes.sql (18.87ms) niks3-go-unit-tests> 2026/10/01 09:52:05 goose: successfully migrated database to version: 20260923120000 niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260923120000_add_pushes.sql (18.96ms) niks3-go-unit-tests> 2026/10/01 09:52:05 goose: successfully migrated database to version: 20260923120000 niks3-go-unit-tests> 2026/10/01 09:52:05 OK 1_commit_pending_closure.sql (1.81ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 1_commit_pending_closure.sql (1.84ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 2_object_stats_trigger.sql (503.33µs) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 2_object_stats_trigger.sql (606.42µs) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 3_commit_push.sql (424.71µs) niks3-go-unit-tests> 2026/10/01 09:52:05 goose: up to current file version: 3 niks3-go-unit-tests> 2026/10/01 09:52:05 OK 3_commit_push.sql (440.13µs) niks3-go-unit-tests> 2026/10/01 09:52:05 goose: up to current file version: 3 niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20241026095416_initial_model.sql (122.27ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20251210153512_drop_unused_gin_index.sql (13.95ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260628120000_add_object_size_and_stats.sql (30.13ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20251218171726_add_pins.sql (18.22ms) niks3-go-unit-tests> 2026/10/01 09:52:05 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/01 09:52:05 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/01 09:52:05 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260628120000_add_object_size_and_stats.sql (28.27ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260905000000_add_claims.sql (60.81ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260920000000_drop_claims.sql (34.48ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20241026095416_initial_model.sql (181.19ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260905000000_add_claims.sql (57.92ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260923120000_add_pushes.sql (18.66ms) niks3-go-unit-tests> 2026/10/01 09:52:05 goose: successfully migrated database to version: 20260923120000 niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20251210153512_drop_unused_gin_index.sql (12ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 1_commit_pending_closure.sql (2.26ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 2_object_stats_trigger.sql (597.29µs) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 3_commit_push.sql (375.21µs) niks3-go-unit-tests> 2026/10/01 09:52:05 goose: up to current file version: 3 niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260920000000_drop_claims.sql (31.36ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260923120000_add_pushes.sql (18.03ms) niks3-go-unit-tests> 2026/10/01 09:52:05 goose: successfully migrated database to version: 20260923120000 niks3-go-unit-tests> 2026/10/01 09:52:05 OK 1_commit_pending_closure.sql (2.01ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 2_object_stats_trigger.sql (553.79µs) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 3_commit_push.sql (412.04µs) niks3-go-unit-tests> 2026/10/01 09:52:05 goose: up to current file version: 3 niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20251218171726_add_pins.sql (43.49ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260628120000_add_object_size_and_stats.sql (24.75ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260905000000_add_claims.sql (43.43ms) niks3-go-unit-tests> 2026/10/01 09:52:05 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> --- PASS: TestDeduplicatedObjectsRecordedAsPending (1.02s) niks3-go-unit-tests> === CONT TestService_readinessHandler niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260920000000_drop_claims.sql (58.12ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 20260923120000_add_pushes.sql (17.13ms) niks3-go-unit-tests> 2026/10/01 09:52:05 goose: successfully migrated database to version: 20260923120000 niks3-go-unit-tests> 2026/10/01 09:52:05 OK 1_commit_pending_closure.sql (2.04ms) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 2_object_stats_trigger.sql (438.21µs) niks3-go-unit-tests> 2026/10/01 09:52:05 OK 3_commit_push.sql (401.21µs) niks3-go-unit-tests> 2026/10/01 09:52:05 goose: up to current file version: 3 niks3-go-unit-tests> 2026/10/01 09:52:05 WARN Authentication failed token_preview=wrongtoken token_length=10 reason="static API token mismatch" niks3-go-unit-tests> --- PASS: TestService_AuthMiddleware (1.21s) niks3-go-unit-tests> === CONT TestSkippedUploadsHandler niks3-go-unit-tests> 2026/10/01 09:52:05 INFO Client skipped oversized paths paths=3 nar_bytes=5000000000 niks3-go-unit-tests> --- PASS: TestSkippedUploadsHandler (0.00s) niks3-go-unit-tests> === CONT TestService_healthCheckHandler