this derivation will be built: /nix/store/wjnn8cb6bmd4nxahr53s1nac0vqp6b4w-niks3-go-unit-tests.drv building '/nix/store/wjnn8cb6bmd4nxahr53s1nac0vqp6b4w-niks3-go-unit-tests.drv' niks3-go-unit-tests> tribuchet: building on jamie niks3-go-unit-tests> Running client tests... niks3-go-unit-tests> === RUN TestDoServerRequestAttachesToken niks3-go-unit-tests> === PAUSE TestDoServerRequestAttachesToken niks3-go-unit-tests> === RUN TestCaseHackSuffix niks3-go-unit-tests> === PAUSE TestCaseHackSuffix niks3-go-unit-tests> === RUN TestFilterOversizedClosures niks3-go-unit-tests> === PAUSE TestFilterOversizedClosures 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 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 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 TestFileTokenMissing niks3-go-unit-tests> === CONT TestResolveStorePath niks3-go-unit-tests> === CONT TestSetClientTLSDoesNotMutateDefaultTransport niks3-go-unit-tests> === CONT TestEncodeNixBase32WithRealHash niks3-go-unit-tests> --- PASS: TestEncodeNixBase32WithRealHash (0.00s) niks3-go-unit-tests> === CONT TestRateLimiterFeedback_400DoesNotCountAsSuccess niks3-go-unit-tests> === CONT TestRateLimiterFeedback niks3-go-unit-tests> === CONT TestStaticToken niks3-go-unit-tests> === CONT TestScriptTokenEmptyToken niks3-go-unit-tests> --- PASS: TestStaticToken (0.00s) niks3-go-unit-tests> === RUN TestRateLimiterFeedback/429_enables_limiter niks3-go-unit-tests> === CONT TestDumpPathMatchesNix niks3-go-unit-tests> === PAUSE TestRateLimiterFeedback/429_enables_limiter niks3-go-unit-tests> === CONT TestParsePathInfoJSONMultiplePaths niks3-go-unit-tests> === CONT TestPathInfoCACompatibility niks3-go-unit-tests> === CONT TestPathInfoHashCompatibility niks3-go-unit-tests> === RUN TestPathInfoCACompatibility/null_ca_field 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 TestPathInfoHashCompatibility/old_string_format_with_dash_(SRI) niks3-go-unit-tests> === PAUSE TestPathInfoHashCompatibility/old_string_format_with_dash_(SRI) niks3-go-unit-tests> === CONT TestSetClientTLSErrors 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> === 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> --- PASS: TestShellSplitErrors (0.00s) niks3-go-unit-tests> === CONT TestShellSplit niks3-go-unit-tests> === CONT TestScriptTokenScriptFails niks3-go-unit-tests> --- PASS: TestShellSplit (0.00s) 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> === CONT TestScriptTokenEmptyCommand niks3-go-unit-tests> --- PASS: TestScriptTokenEmptyCommand (0.00s) niks3-go-unit-tests> === CONT TestScriptTokenNoExpiryRerunsEveryCall niks3-go-unit-tests> === CONT TestDoWithRetry_BodyReplayedViaGetBody niks3-go-unit-tests> === CONT TestFileTokenReadsAndCaches niks3-go-unit-tests> === CONT TestScriptTokenBadJSON niks3-go-unit-tests> === CONT TestDumpPathWriterError niks3-go-unit-tests> === RUN TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths niks3-go-unit-tests> === PAUSE TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths niks3-go-unit-tests> === RUN TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths niks3-go-unit-tests> === PAUSE TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths niks3-go-unit-tests> === CONT 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 TestParsePathInfoJSON/invalid_JSON 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 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 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 TestFileTokenEmpty niks3-go-unit-tests> 2026/07/28 08:16:45 WARN Rate limiter enabled after throttle name=server-test rate=5 niks3-go-unit-tests> === CONT TestCaseHackSuffix niks3-go-unit-tests> === PAUSE TestPathInfoCACompatibility/null_ca_field niks3-go-unit-tests> === RUN TestGetStorePathHash/basename_without_hyphen_should_error niks3-go-unit-tests> === CONT TestPathInfoHashCompatibility/new_structured_format_-_converts_to_SRI 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> === CONT TestEncodeNixBase32 niks3-go-unit-tests> === PAUSE TestGetStorePathHash/basename_without_hyphen_should_error niks3-go-unit-tests> === CONT TestSetClientTLS niks3-go-unit-tests> === CONT TestPartSizeForNAR niks3-go-unit-tests> === CONT TestScriptTokenCachesUntilRefresh 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 TestSetClientTLSErrors/missing_cert_file niks3-go-unit-tests> === PAUSE TestSetClientTLSErrors/missing_cert_file niks3-go-unit-tests> === CONT TestPathInfoHashCompatibility/old_string_format_with_colon niks3-go-unit-tests> === RUN TestGetStorePathHash/hash_with_invalid_characters_should_error niks3-go-unit-tests> 2026/07/28 08:16:45 WARN Rate limiter enabled after throttle name=server-test rate=5 niks3-go-unit-tests> === CONT TestParsePathInfoJSON/Nix_format niks3-go-unit-tests> 2026/07/28 08:16:45 WARN Request returned retryable status, retrying attempt=1 max_attempts=6 backoff=0s status=503 url=http://127.0.0.1:39923 niks3-go-unit-tests> === CONT TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths niks3-go-unit-tests> === RUN TestPartSizeForNAR/zero_stays_at_minimum niks3-go-unit-tests> === PAUSE TestPartSizeForNAR/zero_stays_at_minimum niks3-go-unit-tests> === CONT TestParsePathInfoJSON/Lix_format niks3-go-unit-tests> === CONT TestParsePathInfoJSON/invalid_JSON niks3-go-unit-tests> === CONT TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths niks3-go-unit-tests> === CONT TestFilterOversizedClosures/all_closures_skipped niks3-go-unit-tests> === CONT TestRateLimiterFeedback/429_enables_limiter niks3-go-unit-tests> 2026/07/28 08:16:45 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 TestRateLimiterFeedback/400_does_not_enable_limiter niks3-go-unit-tests> === CONT TestRateLimiterFeedback/200_does_not_enable_limiter niks3-go-unit-tests> === CONT TestFilterOversizedClosures/no_limit_keeps_everything niks3-go-unit-tests> --- PASS: TestFileTokenMissing (0.01s) niks3-go-unit-tests> === CONT TestUploadMultipart_SupersededByPeer/exists niks3-go-unit-tests> === CONT TestParsePathInfoJSON/empty_input niks3-go-unit-tests> === RUN TestEncodeNixBase32/test_string_hash niks3-go-unit-tests> === PAUSE TestGetStorePathHash/hash_with_invalid_characters_should_error niks3-go-unit-tests> === CONT TestParsePathInfoJSON/whitespace_only niks3-go-unit-tests> === RUN TestPathInfoCACompatibility/old_string_format_-_fixed_recursive niks3-go-unit-tests> === RUN TestSetClientTLSErrors/missing_key_file niks3-go-unit-tests> === RUN TestPartSizeForNAR/small_stays_at_minimum niks3-go-unit-tests> === CONT TestRateLimiterFeedback/503_enables_limiter niks3-go-unit-tests> === CONT TestConvertHashToNix32/SRI_format_to_Nix32 niks3-go-unit-tests> --- PASS: TestFileTokenEmpty (0.00s) niks3-go-unit-tests> --- PASS: TestScriptTokenScriptFails (0.01s) niks3-go-unit-tests> === CONT TestConvertHashToNix32/already_Nix32_format niks3-go-unit-tests> === PAUSE TestSetClientTLSErrors/missing_key_file niks3-go-unit-tests> === RUN TestSetClientTLSErrors/missing_ca_file niks3-go-unit-tests> 2026/07/28 08:16:45 WARN Rate limiter backed off name=server-test rate=5 niks3-go-unit-tests> === PAUSE TestSetClientTLSErrors/missing_ca_file niks3-go-unit-tests> 2026/07/28 08:16:45 WARN Request returned retryable status, retrying attempt=2 max_attempts=6 backoff=0s status=503 url=http://127.0.0.1:39923 niks3-go-unit-tests> === RUN TestSetClientTLSErrors/invalid_ca_file niks3-go-unit-tests> === PAUSE TestSetClientTLSErrors/invalid_ca_file niks3-go-unit-tests> === CONT TestSetClientTLSErrors/missing_cert_file niks3-go-unit-tests> === RUN TestGetStorePathHash/hash_with_wrong_length_should_error niks3-go-unit-tests> === CONT TestSetClientTLSErrors/invalid_ca_file niks3-go-unit-tests> --- PASS: TestScriptTokenBadJSON (0.01s) niks3-go-unit-tests> --- PASS: TestResolveStorePath (0.01s) niks3-go-unit-tests> === CONT TestUploadMultipart_SupersededByPeer/missing niks3-go-unit-tests> === PAUSE TestGetStorePathHash/hash_with_wrong_length_should_error niks3-go-unit-tests> --- PASS: TestFileTokenReadsAndCaches (0.01s) niks3-go-unit-tests> 2026/07/28 08:16:45 WARN Rate limiter enabled after throttle name=server-test rate=5 niks3-go-unit-tests> === PAUSE TestPartSizeForNAR/small_stays_at_minimum niks3-go-unit-tests> 2026/07/28 08:16:45 WARN Request returned retryable status, retrying attempt=1 max_attempts=2 backoff=0s status=429 url=http://127.0.0.1:45409 niks3-go-unit-tests> === PAUSE TestEncodeNixBase32/test_string_hash niks3-go-unit-tests> === RUN TestSetClientTLS/rejects_connection_without_client_cert niks3-go-unit-tests> === RUN TestEncodeNixBase32/empty_input niks3-go-unit-tests> 2026/07/28 08:16:45 WARN Rate limiter enabled after throttle name=server-test rate=5 niks3-go-unit-tests> === PAUSE TestPathInfoCACompatibility/old_string_format_-_fixed_recursive niks3-go-unit-tests> === CONT TestFilterOversizedClosures/closure_with_oversized_dependency_is_skipped niks3-go-unit-tests> === CONT TestSetClientTLSErrors/missing_ca_file niks3-go-unit-tests> === CONT TestSetClientTLSErrors/missing_key_file niks3-go-unit-tests> 2026/07/28 08:16:45 WARN Request returned retryable status, retrying attempt=1 max_attempts=2 backoff=0s status=503 url=http://127.0.0.1:34679 niks3-go-unit-tests> === CONT TestConvertHashToNix32/invalid_format niks3-go-unit-tests> === CONT TestGetStorePathHash/valid_store_path niks3-go-unit-tests> --- PASS: TestScriptTokenEmptyToken (0.01s) niks3-go-unit-tests> === CONT TestGetStorePathHash/hash_with_wrong_length_should_error niks3-go-unit-tests> === RUN TestPartSizeForNAR/80_GiB_fits_at_minimum 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> === PAUSE TestSetClientTLS/rejects_connection_without_client_cert niks3-go-unit-tests> 2026/07/28 08:16:45 WARN Rate limiter backed off name=server-test rate=5 niks3-go-unit-tests> 2026/07/28 08:16:45 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> 2026/07/28 08:16:45 WARN Rate limiter backed off name=server-test rate=5 niks3-go-unit-tests> --- PASS: TestDoServerRequestAttachesToken (0.01s) 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> --- PASS: TestParsePathInfoJSONMultiplePaths (0.00s) niks3-go-unit-tests> --- PASS: TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths (0.00s) niks3-go-unit-tests> --- PASS: TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths (0.00s) niks3-go-unit-tests> --- PASS: TestScriptTokenNoExpiryRerunsEveryCall (0.03s) niks3-go-unit-tests> --- PASS: TestSetClientTLSDoesNotMutateDefaultTransport (0.04s) 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> === CONT TestSetClientTLS/preserves_debug_logging_transport niks3-go-unit-tests> === CONT TestSetClientTLS/succeeds_with_client_cert_and_CA niks3-go-unit-tests> === RUN TestPathInfoCACompatibility/new_structured_format_-_text niks3-go-unit-tests> === PAUSE TestPathInfoCACompatibility/new_structured_format_-_text niks3-go-unit-tests> === PAUSE TestEncodeNixBase32/empty_input niks3-go-unit-tests> === CONT TestEncodeNixBase32/test_string_hash niks3-go-unit-tests> === CONT TestEncodeNixBase32/empty_input 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> --- PASS: TestDumpPathSingleFile (0.04s) niks3-go-unit-tests> --- PASS: TestDoWithRetry_BodyReplayedViaGetBody (0.04s) 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> === CONT TestPathInfoCACompatibility/null_ca_field niks3-go-unit-tests> === CONT TestPathInfoCACompatibility/old_string_format_-_fixed_recursive niks3-go-unit-tests> === CONT TestPathInfoCACompatibility/new_structured_format_-_text niks3-go-unit-tests> --- PASS: TestScriptTokenCachesUntilRefresh (0.03s) 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> === CONT TestPathInfoCACompatibility/new_structured_format_-_nar_method niks3-go-unit-tests> --- PASS: TestParsePathInfoJSON (0.00s) niks3-go-unit-tests> --- PASS: TestParsePathInfoJSON/Nix_format (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> --- PASS: TestParsePathInfoJSON/empty_input (0.00s) niks3-go-unit-tests> --- PASS: TestParsePathInfoJSON/whitespace_only (0.00s) 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_with_sha512 (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoHashCompatibility/old_string_format_with_colon (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoHashCompatibility/new_structured_format_-_converts_to_SRI (0.03s) niks3-go-unit-tests> === CONT TestPathInfoCACompatibility/old_string_format_-_text niks3-go-unit-tests> === PAUSE TestPartSizeForNAR/capped_at_5_GiB niks3-go-unit-tests> === CONT TestPartSizeForNAR/zero_stays_at_minimum 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 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> === CONT TestPartSizeForNAR/115_GiB_needs_larger_parts niks3-go-unit-tests> --- PASS: TestEncodeNixBase32 (0.04s) niks3-go-unit-tests> --- PASS: TestEncodeNixBase32/test_string_hash (0.00s) niks3-go-unit-tests> --- PASS: TestEncodeNixBase32/empty_input (0.00s) niks3-go-unit-tests> --- PASS: TestGetStorePathHash (0.04s) 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> --- PASS: TestFilterOversizedClosures (0.00s) niks3-go-unit-tests> --- PASS: TestFilterOversizedClosures/all_closures_skipped (0.00s) niks3-go-unit-tests> --- PASS: TestFilterOversizedClosures/no_limit_keeps_everything (0.00s) niks3-go-unit-tests> --- PASS: TestFilterOversizedClosures/closure_with_oversized_dependency_is_skipped (0.00s) niks3-go-unit-tests> --- PASS: 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> --- PASS: TestRateLimiterFeedback (0.00s) niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback/400_does_not_enable_limiter (0.01s) niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback/200_does_not_enable_limiter (0.01s) niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback/429_enables_limiter (0.01s) niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback/503_enables_limiter (0.01s) niks3-go-unit-tests> --- PASS: TestPathInfoCACompatibility (0.05s) niks3-go-unit-tests> --- PASS: TestPathInfoCACompatibility/null_ca_field (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoCACompatibility/old_string_format_-_fixed_recursive (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoCACompatibility/new_structured_format_-_text (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoCACompatibility/new_structured_format_-_nar_method (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoCACompatibility/old_string_format_-_text (0.00s) niks3-go-unit-tests> --- PASS: TestPartSizeForNAR (0.04s) 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> --- PASS: TestSetClientTLSErrors (0.04s) niks3-go-unit-tests> --- PASS: TestSetClientTLSErrors/missing_cert_file (0.00s) niks3-go-unit-tests> --- PASS: TestSetClientTLSErrors/invalid_ca_file (0.00s) niks3-go-unit-tests> --- PASS: TestSetClientTLSErrors/missing_key_file (0.00s) niks3-go-unit-tests> --- PASS: TestSetClientTLSErrors/missing_ca_file (0.00s) niks3-go-unit-tests> 2026/07/28 08:16:45 http: TLS handshake error from 127.0.0.1:49610: remote error: tls: bad certificate niks3-go-unit-tests> --- PASS: TestSetClientTLS (0.04s) niks3-go-unit-tests> --- PASS: TestSetClientTLS/rejects_connection_without_client_cert (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: TestDumpPathWriterError (0.07s) niks3-go-unit-tests> --- PASS: TestCaseHackSuffix (0.08s) niks3-go-unit-tests> --- PASS: TestDumpPathMatchesNix (0.10s) 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 "nixbld". 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 /build/postgres3501296852/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 /build/postgres3501296852/data -l logfile start niks3-go-unit-tests> niks3-go-unit-tests> /build/postgres3501296852:5432 - no response niks3-go-unit-tests> 2026-07-28 08:16:47.713 UTC [111] LOG: starting PostgreSQL 18.4 on x86_64-pc-linux-gnu, compiled by clang version 21.1.8, 64-bit niks3-go-unit-tests> 2026-07-28 08:16:47.717 UTC [111] LOG: listening on Unix socket "/build/postgres3501296852/.s.PGSQL.5432" niks3-go-unit-tests> 2026-07-28 08:16:47.722 UTC [118] LOG: database system was shut down at 2026-07-28 08:16:47 UTC niks3-go-unit-tests> 2026-07-28 08:16:47.725 UTC [111] LOG: database system is ready to accept connections niks3-go-unit-tests> /build/postgres3501296852:5432 - accepting connections niks3-go-unit-tests> {"timestamp":"2026-07-28T08:16:48.15111135Z","level":"ERROR","fields":{"message":"list_path_raw: revjob err VolumeNotFound"},"target":"rustfs_ecstore::cache_value::metacache_set","filename":"crates/ecstore/src/cache_value/metacache_set.rs","line_number":486,"threadName":"rustfs-worker","threadId":"ThreadId(764)"} niks3-go-unit-tests> niks3-go-unit-tests> thread 'rustfs-worker' (888) panicked at /build/rustfs-1.0.0-beta.7-vendor/source-registry-0/reqwest-0.13.4/src/async_impl/client.rs:2507:38: niks3-go-unit-tests> Client::new(): reqwest::Error { kind: Builder, source: General("No CA certificates were loaded from the system") } niks3-go-unit-tests> note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace 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 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 TestPinProtectsFromGC niks3-go-unit-tests> === PAUSE TestPinProtectsFromGC niks3-go-unit-tests> === RUN TestGCAdvisoryLockBlocksConcurrentRun niks3-go-unit-tests> 2026-07-28 08:16:48.305 UTC [914] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:48.305 UTC [914] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20241026095416_initial_model.sql (8.3ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20251210153512_drop_unused_gin_index.sql (2.52ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20251218171726_add_pins.sql (2.17ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20260628120000_add_object_size_and_stats.sql (2.35ms) niks3-go-unit-tests> 2026/07/28 08:16:48 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:48 OK 1_commit_pending_closure.sql (2.34ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 2_object_stats_trigger.sql (719.27µs) niks3-go-unit-tests> 2026/07/28 08:16:48 goose: up to current file version: 2 niks3-go-unit-tests> --- PASS: TestGCAdvisoryLockBlocksConcurrentRun (0.13s) 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 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 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 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 TestResurrectedObjectNotDeleted niks3-go-unit-tests> === PAUSE TestResurrectedObjectNotDeleted niks3-go-unit-tests> === RUN TestParseSingleRange niks3-go-unit-tests> === PAUSE TestParseSingleRange 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 TestReadProxyRangeRequest niks3-go-unit-tests> === PAUSE TestReadProxyRangeRequest 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.02s) niks3-go-unit-tests> === RUN TestWatchdogSkipsWhenUnhealthy niks3-go-unit-tests> 2026/07/28 08:16:48 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/07/28 08:16:48 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/07/28 08:16:48 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/07/28 08:16:48 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/07/28 08:16:48 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/07/28 08:16:48 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/07/28 08:16:48 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/07/28 08:16:48 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/07/28 08:16:48 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/07/28 08:16:48 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 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 TestCreatePendingClosure_SmallNARUsesSimplePUT niks3-go-unit-tests> === CONT TestObjectStatsTrigger niks3-go-unit-tests> === CONT TestCompleteMultipartUnregistered niks3-go-unit-tests> === CONT TestService_verifyS3Integrity niks3-go-unit-tests> === CONT TestService_createPendingClosureHandler niks3-go-unit-tests> === CONT TestService_cleanupPendingClosuresHandler niks3-go-unit-tests> === CONT TestUploadHandlersRejectOversizedBody niks3-go-unit-tests> === CONT TestUploadHandlersRejectInvalidKeys 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> === CONT TestProxyWriteTimeout niks3-go-unit-tests> === CONT TestCompleteMultipartUploadHandler_RateLimitTriggersThrottle niks3-go-unit-tests> === CONT TestSkippedUploadsHandler niks3-go-unit-tests> === CONT TestParseSize niks3-go-unit-tests> === CONT TestService_Rustfstest niks3-go-unit-tests> === CONT TestPresignedUploadRegisteredBeforeCommit niks3-go-unit-tests> === CONT TestCompletedNarNotReofferedAcrossClosures niks3-go-unit-tests> === CONT TestCompleteMultipartUpload_ErrorButObjectExists niks3-go-unit-tests> === CONT TestRedundantMultipartUpload niks3-go-unit-tests> === CONT TestReadProxyRangeRequest niks3-go-unit-tests> === CONT TestReadProxyDisabled niks3-go-unit-tests> === CONT TestReadProxyRootRedirectsToIndexHTML niks3-go-unit-tests> === CONT TestReadProxyConditionalGet niks3-go-unit-tests> === CONT TestGCTaskStore_ConflictDifferentParams niks3-go-unit-tests> === RUN TestUploadHandlersRejectInvalidKeys/create_pending_closure_rejects_nix-cache-info 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> === 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 TestReadProxyNarStreaming niks3-go-unit-tests> === CONT TestReadProxyHead niks3-go-unit-tests> 2026/07/28 08:16:48 INFO Client skipped oversized paths paths=3 nar_bytes=5000000000 niks3-go-unit-tests> --- PASS: TestParseSize (0.00s) niks3-go-unit-tests> --- PASS: TestGCTaskStore_ConflictDifferentParams (0.00s) niks3-go-unit-tests> === CONT TestReadProxyInvalidPath niks3-go-unit-tests> === CONT TestReadProxy404 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 TestMultipartCleanup niks3-go-unit-tests> --- PASS: TestSkippedUploadsHandler (0.01s) niks3-go-unit-tests> === CONT TestReadProxyNarinfoAlreadyDecompressed 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> === RUN TestUploadHandlersRejectOversizedBody/request_more_parts niks3-go-unit-tests> === PAUSE TestUploadHandlersRejectOversizedBody/request_more_parts niks3-go-unit-tests> === CONT TestReadProxyNarinfo niks3-go-unit-tests> 2026-07-28 08:16:48.784 UTC [986] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:48.784 UTC [986] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-28 08:16:48.784 UTC [987] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:48.784 UTC [987] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-28 08:16:48.787 UTC [989] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:48.787 UTC [989] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-28 08:16:48.787 UTC [988] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:48.787 UTC [988] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-28 08:16:48.797 UTC [993] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:48.797 UTC [993] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-28 08:16:48.797 UTC [991] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:48.797 UTC [991] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-28 08:16:48.800 UTC [990] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:48.800 UTC [990] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-28 08:16:48.835 UTC [996] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:48.835 UTC [996] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-28 08:16:48.839 UTC [997] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:48.839 UTC [997] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20241026095416_initial_model.sql (45.6ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20241026095416_initial_model.sql (58.42ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20241026095416_initial_model.sql (86.67ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20241026095416_initial_model.sql (72.41ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20241026095416_initial_model.sql (71.73ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20241026095416_initial_model.sql (59.66ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20251210153512_drop_unused_gin_index.sql (18.84ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20241026095416_initial_model.sql (28.81ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20241026095416_initial_model.sql (62.43ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20251210153512_drop_unused_gin_index.sql (15.52ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20251210153512_drop_unused_gin_index.sql (5.54ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20251210153512_drop_unused_gin_index.sql (3.81ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20251210153512_drop_unused_gin_index.sql (8.04ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20251210153512_drop_unused_gin_index.sql (7.3ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20251210153512_drop_unused_gin_index.sql (3.82ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20251210153512_drop_unused_gin_index.sql (7.14ms) niks3-go-unit-tests> 2026-07-28 08:16:48.897 UTC [998] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:48.897 UTC [998] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-28 08:16:48.898 UTC [999] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:48.898 UTC [999] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20251218171726_add_pins.sql (12.04ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20251218171726_add_pins.sql (13.11ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20251218171726_add_pins.sql (13.12ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20251218171726_add_pins.sql (11.39ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20251218171726_add_pins.sql (11.82ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20251218171726_add_pins.sql (11.73ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20251218171726_add_pins.sql (11.25ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20260628120000_add_object_size_and_stats.sql (8.57ms) niks3-go-unit-tests> 2026/07/28 08:16:48 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20251218171726_add_pins.sql (13.31ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 1_commit_pending_closure.sql (3.77ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20260628120000_add_object_size_and_stats.sql (6.68ms) niks3-go-unit-tests> 2026/07/28 08:16:48 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20260628120000_add_object_size_and_stats.sql (6.86ms) niks3-go-unit-tests> 2026/07/28 08:16:48 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20260628120000_add_object_size_and_stats.sql (9.52ms) niks3-go-unit-tests> 2026/07/28 08:16:48 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:48 OK 2_object_stats_trigger.sql (2.54ms) niks3-go-unit-tests> 2026/07/28 08:16:48 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20260628120000_add_object_size_and_stats.sql (9.61ms) niks3-go-unit-tests> 2026/07/28 08:16:48 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20260628120000_add_object_size_and_stats.sql (9.55ms) niks3-go-unit-tests> 2026/07/28 08:16:48 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:48 OK 1_commit_pending_closure.sql (3.17ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20260628120000_add_object_size_and_stats.sql (10.48ms) niks3-go-unit-tests> 2026/07/28 08:16:48 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:48 OK 1_commit_pending_closure.sql (3.66ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 1_commit_pending_closure.sql (4.2ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20260628120000_add_object_size_and_stats.sql (9.96ms) niks3-go-unit-tests> 2026/07/28 08:16:48 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:48 OK 2_object_stats_trigger.sql (2.11ms) niks3-go-unit-tests> 2026/07/28 08:16:48 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:48 INFO Received cleanup request method=DELETE path=/api/pending_closures niks3-go-unit-tests> 2026/07/28 08:16:48 OK 1_commit_pending_closure.sql (4.52ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 2_object_stats_trigger.sql (3.09ms) niks3-go-unit-tests> 2026/07/28 08:16:48 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:48 OK 1_commit_pending_closure.sql (4.38ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20241026095416_initial_model.sql (33.45ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 1_commit_pending_closure.sql (4.66ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 2_object_stats_trigger.sql (3.75ms) niks3-go-unit-tests> 2026/07/28 08:16:48 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:48 INFO Aborted multipart uploads count=0 niks3-go-unit-tests> 2026/07/28 08:16:48 OK 1_commit_pending_closure.sql (4.95ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20241026095416_initial_model.sql (16.79ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20241026095416_initial_model.sql (16.9ms) niks3-go-unit-tests> 2026/07/28 08:16:48 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/28 08:16:48 INFO Received complete multipart upload request method=POST path=/api/multipart/complete niks3-go-unit-tests> 2026/07/28 08:16:48 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/28 08:16:48 OK 2_object_stats_trigger.sql (2.71ms) niks3-go-unit-tests> 2026/07/28 08:16:48 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:48 OK 2_object_stats_trigger.sql (3.73ms) niks3-go-unit-tests> 2026/07/28 08:16:48 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:48 OK 2_object_stats_trigger.sql (4.12ms) niks3-go-unit-tests> 2026/07/28 08:16:48 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20251210153512_drop_unused_gin_index.sql (3.88ms) niks3-go-unit-tests> 2026/07/28 08:16:48 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/28 08:16:48 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 (0.35s) 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 TestIsValidCachePath niks3-go-unit-tests> === RUN TestIsValidCachePath/narinfo niks3-go-unit-tests> === PAUSE TestIsValidCachePath/narinfo niks3-go-unit-tests> === RUN TestIsValidCachePath/narinfo_all_nix_base32_chars niks3-go-unit-tests> === PAUSE TestIsValidCachePath/narinfo_all_nix_base32_chars niks3-go-unit-tests> === RUN TestIsValidCachePath/nar_zst niks3-go-unit-tests> === PAUSE TestIsValidCachePath/nar_zst niks3-go-unit-tests> === RUN TestIsValidCachePath/nar_xz 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> 2026/07/28 08:16:48 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> === RUN TestIsValidCachePath/log niks3-go-unit-tests> 2026/07/28 08:16:48 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> === PAUSE TestIsValidCachePath/log niks3-go-unit-tests> 2026/07/28 08:16:48 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> === RUN TestIsValidCachePath/realisation niks3-go-unit-tests> 2026/07/28 08:16:48 WARN Authentication failed token_preview=wrongtoken token_length=10 reason="static API token mismatch" niks3-go-unit-tests> === PAUSE TestIsValidCachePath/realisation niks3-go-unit-tests> === RUN TestIsValidCachePath/nix-cache-info niks3-go-unit-tests> === PAUSE TestIsValidCachePath/nix-cache-info niks3-go-unit-tests> === RUN TestIsValidCachePath/index.html niks3-go-unit-tests> === PAUSE TestIsValidCachePath/index.html niks3-go-unit-tests> 2026/07/28 08:16:48 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> === RUN TestIsValidCachePath/traversal_parent niks3-go-unit-tests> === PAUSE TestIsValidCachePath/traversal_parent niks3-go-unit-tests> --- PASS: TestService_AuthMiddleware (0.35s) niks3-go-unit-tests> === CONT TestService_NativeMTLS 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 TestParseSingleRange niks3-go-unit-tests> === RUN TestParseSingleRange/none niks3-go-unit-tests> === PAUSE TestParseSingleRange/none niks3-go-unit-tests> === RUN TestParseSingleRange/unknown_unit niks3-go-unit-tests> === PAUSE TestParseSingleRange/unknown_unit niks3-go-unit-tests> === RUN TestParseSingleRange/multi-range_ignored niks3-go-unit-tests> === PAUSE TestParseSingleRange/multi-range_ignored 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> === 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> === PAUSE TestParseSingleRange/single_byte niks3-go-unit-tests> === RUN TestParseSingleRange/start_past_EOF niks3-go-unit-tests> === PAUSE TestParseSingleRange/start_past_EOF niks3-go-unit-tests> === RUN TestParseSingleRange/start_far_past_EOF niks3-go-unit-tests> === PAUSE TestParseSingleRange/start_far_past_EOF niks3-go-unit-tests> === CONT TestMetricsInventory niks3-go-unit-tests> 2026/07/28 08:16:48 OK 2_object_stats_trigger.sql (14.59ms) niks3-go-unit-tests> 2026/07/28 08:16:48 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20251210153512_drop_unused_gin_index.sql (14.65ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20251210153512_drop_unused_gin_index.sql (14.59ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20251218171726_add_pins.sql (17.44ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20251218171726_add_pins.sql (10.95ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20251218171726_add_pins.sql (11.06ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20260628120000_add_object_size_and_stats.sql (9.01ms) niks3-go-unit-tests> 2026/07/28 08:16:48 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:48 INFO Received cleanup request method=DELETE path=/api/pending_closures niks3-go-unit-tests> 2026/07/28 08:16:48 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/28 08:16:48 INFO Aborted multipart uploads count=1 niks3-go-unit-tests> 2026/07/28 08:16:48 OK 1_commit_pending_closure.sql (3.99ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20260628120000_add_object_size_and_stats.sql (6.79ms) niks3-go-unit-tests> 2026/07/28 08:16:48 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> --- PASS: TestCreatePendingClosure_SmallNARUsesSimplePUT (0.38s) niks3-go-unit-tests> === CONT TestResurrectedObjectNotDeleted niks3-go-unit-tests> 2026/07/28 08:16:48 OK 20260628120000_add_object_size_and_stats.sql (9.74ms) niks3-go-unit-tests> 2026/07/28 08:16:48 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:48 OK 1_commit_pending_closure.sql (3.84ms) niks3-go-unit-tests> 2026/07/28 08:16:48 OK 2_object_stats_trigger.sql (4.3ms) niks3-go-unit-tests> 2026/07/28 08:16:48 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:48 INFO Received complete upload request method=POST path=/api/pending_closures/1/complete niks3-go-unit-tests> 2026-07-28 08:16:48.964 UTC [993] ERROR: Closure does not exist: id=1 niks3-go-unit-tests> 2026-07-28 08:16:48.964 UTC [993] CONTEXT: PL/pgSQL function commit_pending_closure(bigint) line 16 at RAISE niks3-go-unit-tests> 2026-07-28 08:16:48.964 UTC [993] STATEMENT: -- name: CommitPendingClosure :exec niks3-go-unit-tests> SELECT commit_pending_closure($1::bigint) niks3-go-unit-tests> niks3-go-unit-tests> --- PASS: TestService_cleanupPendingClosuresHandler (0.39s) niks3-go-unit-tests> === CONT TestNARDeduplicationMetadataUploadBug niks3-go-unit-tests> 2026/07/28 08:16:48 OK 2_object_stats_trigger.sql (2.27ms) niks3-go-unit-tests> 2026/07/28 08:16:48 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:48 OK 1_commit_pending_closure.sql (4.98ms) niks3-go-unit-tests> 2026/07/28 08:16:48 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/28 08:16:48 OK 2_object_stats_trigger.sql (3.05ms) niks3-go-unit-tests> 2026/07/28 08:16:48 goose: up to current file version: 2 niks3-go-unit-tests> {"timestamp":"2026-07-28T08:16:48.970036665Z","level":"ERROR","fields":{"message":"system path read failed","path_kind":"data_usage","operation":"read_primary","reason":"config_not_found","object":"buckets/.usage.json","error":"Config not found"},"target":"rustfs_ecstore::data_usage","filename":"crates/ecstore/src/data_usage.rs","line_number":126,"threadName":"rustfs-worker","threadId":"ThreadId(764)"} niks3-go-unit-tests> --- PASS: TestReadProxyDisabled (0.29s) niks3-go-unit-tests> === CONT TestOrphanedObjectsGCStressTest niks3-go-unit-tests> --- PASS: TestReadProxyNarStreaming (0.29s) niks3-go-unit-tests> === CONT TestCreatePendingClosureRejectsOversizedNAR niks3-go-unit-tests> 2026/07/28 08:16:48 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_healthCheckHandler niks3-go-unit-tests> --- PASS: TestObjectStatsTrigger (0.41s) niks3-go-unit-tests> === CONT TestOrphanedObjectsGC niks3-go-unit-tests> 2026-07-28 08:16:49.002 UTC [1020] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.002 UTC [1020] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-28 08:16:49.002 UTC [1014] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.002 UTC [1014] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-28 08:16:49.003 UTC [1022] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.003 UTC [1022] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-28 08:16:49.004 UTC [1016] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.004 UTC [1016] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-28 08:16:49.004 UTC [1021] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.004 UTC [1021] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-28 08:16:49.004 UTC [1019] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.004 UTC [1019] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-28 08:16:49.006 UTC [1027] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.006 UTC [1027] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-28 08:16:49.006 UTC [1028] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.006 UTC [1028] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received complete multipart upload request method=POST path=/api/multipart/complete niks3-go-unit-tests> 2026-07-28 08:16:49.007 UTC [1023] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.007 UTC [1023] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-28 08:16:49.007 UTC [1029] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.007 UTC [1029] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-28 08:16:49.008 UTC [1018] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.008 UTC [1018] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-28 08:16:49.008 UTC [1017] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.008 UTC [1017] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> {"timestamp":"2026-07-28T08:16:49.009260762Z","level":"ERROR","fields":{"message":"complete_multipart_upload part error: \"part.1 not found\""},"target":"rustfs_ecstore::set_disk","filename":"crates/ecstore/src/set_disk.rs","line_number":3463,"threadName":"rustfs-worker","threadId":"ThreadId(670)"} niks3-go-unit-tests> {"timestamp":"2026-07-28T08:16:49.009333952Z","level":"ERROR","fields":{"message":"complete_multipart_upload etag err client=Some(\"deadbeef\"), stored=\"\", part_id=1, bucket=bucket11, object=nar/gggggggggggggggggggggggggggggg0300000000000000000000.nar.zst"},"target":"rustfs_ecstore::set_disk","filename":"crates/ecstore/src/set_disk.rs","line_number":3534,"threadName":"rustfs-worker","threadId":"ThreadId(670)"} niks3-go-unit-tests> 2026/07/28 08:16:49 WARN CompleteMultipartUpload errored but object exists; treating as success 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/gggggggggggggggggggggggggggggg0300000000000000000000.nar.zst upload_id=OTY3ZjYyZjEtM2IxNS00MDA1LThjNzMtMDBjNmI0MTIxOTgyLmM4NTA2OGQwLTFiMzMtNGE0OC05MmY5LWMyYTcyOGRkOWM0YngxNzg1MjI2NjA4OTg4NDc4Mjk5 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Completed multipart upload object_key=nar/gggggggggggggggggggggggggggggg0300000000000000000000.nar.zst upload_id=OTY3ZjYyZjEtM2IxNS00MDA1LThjNzMtMDBjNmI0MTIxOTgyLmM4NTA2OGQwLTFiMzMtNGE0OC05MmY5LWMyYTcyOGRkOWM0YngxNzg1MjI2NjA4OTg4NDc4Mjk5 parts=1 niks3-go-unit-tests> --- PASS: TestCompleteMultipartUpload_ErrorButObjectExists (0.34s) niks3-go-unit-tests> === CONT TestGracefulShutdownDrainsInflight niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Starting HTTP server address=127.0.0.1:42169 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Shutdown signal received, draining in-flight requests timeout=10s niks3-go-unit-tests> 2026-07-28 08:16:49.026 UTC [1031] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.026 UTC [1031] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (32.77ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (33.83ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (36.36ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (36.34ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (38.33ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (35.81ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (34.26ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (37.37ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (36.62ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (4.78ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (2ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (3.73ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (4.36ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (4.24ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (4.08ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (4.33ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (37.22ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (4.91ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (5.34ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (5.69ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (5.41ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (3.6ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (5.91ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (5.56ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (5.74ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (6.84ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (6.29ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (7.35ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (7.44ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (6.19ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (10.59ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (7.55ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (6.25ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (32.1ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (3.68ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (34.12ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (7.7ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (7.83ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (17.35ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (4.15ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (8.3ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (2.69ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (6.61ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (5.65ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (3.64ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (6.89ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (2.53ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (4.2ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (4.46ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (2.44ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (4.16ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (3.84ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (2.71ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (2.06ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (7.87ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (4.26ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (3.16ms) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (2.39ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (2.56ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (3.82ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (3.77ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (1.74ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (2.39ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> --- PASS: TestService_Rustfstest (0.40s) niks3-go-unit-tests> === CONT TestGCTaskStore_Fail niks3-go-unit-tests> --- PASS: TestGCTaskStore_Fail (0.00s) niks3-go-unit-tests> === CONT TestGCTaskStore_GetReturnsLatest niks3-go-unit-tests> --- PASS: TestGCTaskStore_GetReturnsLatest (0.00s) niks3-go-unit-tests> === CONT TestGCTaskStore_CompletedAllowsNewTask niks3-go-unit-tests> --- PASS: TestGCTaskStore_CompletedAllowsNewTask (0.00s) niks3-go-unit-tests> === CONT TestGCTaskStore_GetEmpty niks3-go-unit-tests> --- PASS: TestGCTaskStore_GetEmpty (0.00s) niks3-go-unit-tests> === CONT TestGCTaskStore_PhaseUpdates niks3-go-unit-tests> --- PASS: TestGCTaskStore_PhaseUpdates (0.00s) niks3-go-unit-tests> === CONT TestClientIntegration niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (2.22ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (3.98ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (3.71ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (7.68ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (7.64ms) niks3-go-unit-tests> --- PASS: TestReadProxy404 (0.40s) 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> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (4.12ms) niks3-go-unit-tests> === PAUSE TestCacheConfigHandler/issuer_requested_but_no_OIDC_validator niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> === CONT TestGCTaskStore_DeduplicateSameParams niks3-go-unit-tests> --- PASS: TestGCTaskStore_DeduplicateSameParams (0.00s) 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 TestGCTaskStore_StartNew niks3-go-unit-tests> --- PASS: TestGCTaskStore_StartNew (0.00s) niks3-go-unit-tests> === CONT TestClientCADerivations niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (3.02ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> --- PASS: TestReadProxyRootRedirectsToIndexHTML (0.40s) niks3-go-unit-tests> === CONT TestGCMetrics niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (2.61ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (1.56ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> --- PASS: TestReadProxyNarinfoAlreadyDecompressed (0.39s) niks3-go-unit-tests> === CONT TestCacheStatsHandler niks3-go-unit-tests> --- PASS: TestReadProxyHead (0.41s) niks3-go-unit-tests> === CONT TestGCBugBareHashReferences niks3-go-unit-tests> --- PASS: TestGracefulShutdownDrainsInflight (0.07s) niks3-go-unit-tests> === CONT TestService_ReadAuthMiddleware niks3-go-unit-tests> --- PASS: TestReadProxyInvalidPath (0.41s) niks3-go-unit-tests> === CONT TestPinProtectsFromGC niks3-go-unit-tests> --- PASS: TestReadProxyNarinfo (0.32s) niks3-go-unit-tests> === CONT TestService_AuthMiddleware_OIDC niks3-go-unit-tests> --- PASS: TestReadProxyRangeRequest (0.41s) niks3-go-unit-tests> === CONT TestClientWithDependencies niks3-go-unit-tests> 2026/07/28 08:16:49 INFO OIDC provider initialized name=test niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (20.57ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (23.78ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (5.45ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (3.64ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026-07-28 08:16:49.112 UTC [1038] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.112 UTC [1038] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (5.65ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (2.01ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026-07-28 08:16:49.115 UTC [1053] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.115 UTC [1053] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-28 08:16:49.115 UTC [1039] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.115 UTC [1039] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026-07-28 08:16:49.122 UTC [1055] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.122 UTC [1055] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> --- PASS: TestReadProxyConditionalGet (0.44s) niks3-go-unit-tests> === CONT TestClientMultipleUploads niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (12.16ms) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Registered completed upload object_key=nar/jjjjjjjjjjjjjjjjjjjjjjjjjjjjjj0100000000000000000000.nar.zst niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (12.89ms) niks3-go-unit-tests> 2026-07-28 08:16:49.135 UTC [1057] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.135 UTC [1057] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (2.53ms) niks3-go-unit-tests> 2026-07-28 08:16:49.136 UTC [1056] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.136 UTC [1056] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-28 08:16:49.137 UTC [1060] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.137 UTC [1060] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (2.36ms) niks3-go-unit-tests> --- PASS: TestPresignedUploadRegisteredBeforeCommit (0.46s) niks3-go-unit-tests> === CONT TestService_AuthMiddleware_MTLSBoundSubjects niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (5.67ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (6.23ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (14.59ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (2.92ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (22.56ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (4.07ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (5.87ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (3.08ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (3.52ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (3.83ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (4.75ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (3.56ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (3.5ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (6.93ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (7.54ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (12.32ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (26.81ms) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received complete multipart upload request method=POST path=/api/multipart/complete niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (16.81ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (19.22ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (17.01ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (6.08ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (3.4ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (31.73ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (4.42ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (6.16ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (2.92ms) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Created nix-cache-info in bucket bucket=bucket28 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (3.58ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (7.61ms) niks3-go-unit-tests> 2026/07/28 08:16:49 WARN mTLS auth: subject not in bound subjects subject="CN=reader" niks3-go-unit-tests> 2026/07/28 08:16:49 WARN mTLS auth: subject not in bound subjects subject="CN=writer" niks3-go-unit-tests> --- PASS: TestService_NativeMTLS (0.26s) niks3-go-unit-tests> === CONT TestService_AuthMiddleware_MTLSProxyHeader niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (5.2ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (6.06ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (3.07ms) niks3-go-unit-tests> --- PASS: TestMetricsInventory (0.26s) niks3-go-unit-tests> === CONT TestIsValidUploadKey/narinfo 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> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (6.76ms) niks3-go-unit-tests> === CONT TestIsValidUploadKey/index.html niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> === CONT TestIsValidUploadKey/nix-cache-info niks3-go-unit-tests> === CONT TestIsValidUploadKey/realisation_plus_in_output 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/build_log_home-manager_file niks3-go-unit-tests> === CONT TestIsValidUploadKey/build_log niks3-go-unit-tests> === CONT TestIsValidUploadKey/listing niks3-go-unit-tests> === CONT TestIsValidUploadKey/nar_plain niks3-go-unit-tests> === CONT TestIsValidUploadKey/nar_xz niks3-go-unit-tests> === CONT TestIsValidUploadKey/nar_zst niks3-go-unit-tests> === CONT TestUploadHandlersRejectInvalidKeys/create_pending_closure_rejects_nix-cache-info niks3-go-unit-tests> --- PASS: TestIsValidUploadKey (0.10s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/narinfo (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/realisation_plus_in_output (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/build_log_home-manager_file (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> --- PASS: TestIsValidUploadKey/nar_plain (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/nar_xz (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/nar_zst (0.00s) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received uploads request method=POST path=/ niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (2.87ms) niks3-go-unit-tests> === CONT TestUploadHandlersRejectInvalidKeys/complete_multipart_rejects_non-NAR_key niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 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/07/28 08:16:49 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/07/28 08:16:49 INFO Received uploads request method=POST path=/ niks3-go-unit-tests> --- PASS: TestUploadHandlersRejectInvalidKeys (0.10s) 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.00s) 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 TestProxyWriteTimeout/narinfo niks3-go-unit-tests> === CONT TestProxyWriteTimeout/10_GiB_nar niks3-go-unit-tests> === CONT TestProxyWriteTimeout/1_GiB_nar niks3-go-unit-tests> === CONT TestProxyWriteTimeout/unknown_size 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/1_GiB_nar (0.00s) niks3-go-unit-tests> --- PASS: TestProxyWriteTimeout/unknown_size (0.00s) niks3-go-unit-tests> === CONT TestUploadHandlersRejectOversizedBody/create_pending_closure niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received uploads request method=POST path=/ niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (7.11ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (4.3ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (3.26ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (4.61ms) niks3-go-unit-tests> --- PASS: TestService_healthCheckHandler (0.22s) niks3-go-unit-tests> === CONT TestUploadHandlersRejectOversizedBody/request_more_parts niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received request for more parts method=POST path=/ niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received cleanup request method=DELETE path=/api/pending_closures niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (11.86ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Aborted multipart uploads count=1 niks3-go-unit-tests> --- PASS: TestMultipartCleanup (0.54s) niks3-go-unit-tests> === CONT TestUploadHandlersRejectOversizedBody/complete_multipart niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received complete multipart upload request method=POST path=/ niks3-go-unit-tests> --- PASS: TestResurrectedObjectNotDeleted (0.26s) 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.00s) niks3-go-unit-tests> --- PASS: TestServerTLSConfig/missing_CA_file (0.00s) niks3-go-unit-tests> === CONT TestIsValidCachePath/narinfo 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/traversal_parent 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_e niks3-go-unit-tests> === CONT TestIsValidCachePath/random_path niks3-go-unit-tests> === CONT TestIsValidCachePath/traversal_in_middle niks3-go-unit-tests> === CONT TestIsValidCachePath/invalid_char_u niks3-go-unit-tests> --- PASS: TestIsValidCachePath (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/narinfo (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/traversal_parent (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_e (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/random_path (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/traversal_in_middle (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/invalid_char_u (0.00s) niks3-go-unit-tests> === CONT TestParseSingleRange/none niks3-go-unit-tests> === CONT TestParseSingleRange/open-ended 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/end_clamped_to_size niks3-go-unit-tests> === CONT TestParseSingleRange/malformed_both_empty niks3-go-unit-tests> === CONT TestParseSingleRange/closed niks3-go-unit-tests> === CONT TestParseSingleRange/malformed_end_before_start niks3-go-unit-tests> === CONT TestParseSingleRange/multi-range_ignored niks3-go-unit-tests> === CONT TestParseSingleRange/malformed_no_dash niks3-go-unit-tests> === CONT TestParseSingleRange/unknown_unit niks3-go-unit-tests> --- PASS: TestParseSingleRange (0.00s) niks3-go-unit-tests> --- PASS: TestParseSingleRange/none (0.00s) niks3-go-unit-tests> --- PASS: TestParseSingleRange/open-ended (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/end_clamped_to_size (0.00s) niks3-go-unit-tests> --- PASS: TestParseSingleRange/malformed_both_empty (0.00s) niks3-go-unit-tests> --- PASS: TestParseSingleRange/closed (0.00s) niks3-go-unit-tests> --- PASS: TestParseSingleRange/malformed_end_before_start (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/unknown_unit (0.00s) niks3-go-unit-tests> === CONT TestCacheConfigHandler/full_config,_no_issuer niks3-go-unit-tests> === CONT TestCacheConfigHandler/no_signing_keys niks3-go-unit-tests> === CONT TestCacheConfigHandler/issuer_requested_but_no_OIDC_validator 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/no_signing_keys (0.00s) niks3-go-unit-tests> --- PASS: TestCacheConfigHandler/issuer_requested_but_no_OIDC_validator (0.00s) niks3-go-unit-tests> --- PASS: TestCacheConfigHandler/no_cache_url_configured (0.00s) niks3-go-unit-tests> === CONT TestClientErrorHandling/InvalidStorePath niks3-go-unit-tests> 2026-07-28 08:16:49.230 UTC [1085] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.230 UTC [1085] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> === NAME TestNARDeduplicationMetadataUploadBug niks3-go-unit-tests> metadata_upload_test.go:48: First store path: /build/TestNARDeduplicationMetadataUploadBug658492960/001/store/35kylxq3y35fi9fqmxpp1qjdxp4zwd0l-file1.txt niks3-go-unit-tests> 2026-07-28 08:16:49.250 UTC [1089] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.250 UTC [1089] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received complete multipart upload request method=POST path=/api/multipart/complete niks3-go-unit-tests> 2026-07-28 08:16:49.255 UTC [1090] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.255 UTC [1090] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-28 08:16:49.256 UTC [1091] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.256 UTC [1091] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received complete multipart upload request method=POST path=/api/multipart/complete niks3-go-unit-tests> === CONT TestClientErrorHandling/ServerNotAvailable niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (30.36ms) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Completed multipart upload object_key=nar/dadb44fdadb44fdadb44fdadb44f000000000000000000000000.nar.zst upload_id=OTY3ZjYyZjEtM2IxNS00MDA1LThjNzMtMDBjNmI0MTIxOTgyLmQyNTRmMWZhLWY4OGEtNDAzMC04OTU4LTQ4N2M1ODdhZTBmYXgxNzg1MjI2NjA4OTUyMTk0NTAx parts=10 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received complete upload request method=POST path=/api/pending_closures/1/complete niks3-go-unit-tests> === CONT TestClientErrorHandling/InvalidAuthToken niks3-go-unit-tests> 2026-07-28 08:16:49.280 UTC [1111] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.280 UTC [1111] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-28 08:16:49.280 UTC [1109] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.280 UTC [1109] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (7.41ms) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Completed multipart upload object_key=nar/0000000000000000000000000000000000000000000000000000.nar.zst upload_id=OTY3ZjYyZjEtM2IxNS00MDA1LThjNzMtMDBjNmI0MTIxOTgyLjI5MGMyOGI0LTQ0ZTAtNDg2MC1hMjk1LTI5N2RhYmVkNmYyZXgxNzg1MjI2NjA4OTUxOTk2NTgx parts=10 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received complete upload request method=POST path=/api/pending_closures/1/complete niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Completed upload id=1 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (16.48ms) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (4.99ms) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Completed upload id=1 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received get closure request method=GET path=/api/closures/00000000000000000000000000000000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (2.04ms) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Object in database but missing from S3 key=dadb44fdadb44fdadb44fdadb44f0000.narinfo niks3-go-unit-tests> 2026-07-28 08:16:49.290 UTC [1114] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.290 UTC [1114] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Found objects in DB but missing from S3, will re-upload count=1 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (17.38ms) niks3-go-unit-tests> 2026-07-28 08:16:49.294 UTC [1116] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.294 UTC [1116] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (9.07ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (16.87ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (7.59ms) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Starting cleanup of old closures method=DELETE path=/api/closures niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (6.04ms) niks3-go-unit-tests> --- PASS: TestService_verifyS3Integrity (0.72s) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (3.56ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (3.68ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (5.09ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (3.26ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (12.74ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (4.26ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (13.94ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (5.42ms) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received complete multipart upload request method=POST path=/api/multipart/complete niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (4.78ms) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Created nix-cache-info in bucket bucket=bucket33 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (3.84ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (4.87ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (2.46ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Aborted multipart uploads count=0 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (4.76ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026-07-28 08:16:49.308 UTC [1120] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.308 UTC [1120] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (5.8ms) niks3-go-unit-tests> 2026-07-28 08:16:49.309 UTC [1121] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.309 UTC [1121] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (11.08ms) niks3-go-unit-tests> 2026/07/28 08:16:49 WARN mTLS auth: subject not in bound subjects subject="CN=writer" niks3-go-unit-tests> --- PASS: TestService_ReadAuthMiddleware (0.22s) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (2.39ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (3.29ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (3.48ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (2.68ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (1.99ms) niks3-go-unit-tests> 2026-07-28 08:16:49.313 UTC [1137] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.313 UTC [1137] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (3.12ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (12.45ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (3.72ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (2.45ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (8.28ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (8.74ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (7.17ms) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Garbage collection completed failed-uploads-deleted=0 old-closures-deleted=1 objects-marked-for-deletion=2 objects-deleted-after-grace-period=0 objects-failed-to-delete=0 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (3.74ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (3.3ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (3.14ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (2.29ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (2.24ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (5.36ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Vacuumed table table=pending_closures niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (3.94ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Failed to fetch cache config, uploading without size limit error="fetching cache config: server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Completed multipart upload object_key=nar/gggggggggggggggggggggggggggggg0100000000000000000000.nar.zst upload_id=OTY3ZjYyZjEtM2IxNS00MDA1LThjNzMtMDBjNmI0MTIxOTgyLmUyMjBkNjIzLTA2MTYtNDE4Ni1hMmRlLTc5OTM5MzBlOTY0MHgxNzg1MjI2NjA4OTQ3NjM0MDIy parts=12 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Created nix-cache-info in bucket bucket=bucket38 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Aborted multipart uploads count=0 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Created nix-cache-info in bucket bucket=bucket37 niks3-go-unit-tests> --- PASS: TestRedundantMultipartUpload (0.65s) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (3.88ms) niks3-go-unit-tests> --- PASS: TestCacheStatsHandler (0.24s) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (4.41ms) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Vacuumed table table=pending_objects niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (11.59ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (11.77ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (1.84ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (1.7ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Force mode enabled - objects will be deleted immediately without grace period niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (2.17ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (11.76ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (3.33ms) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Vacuumed table table=multipart_uploads niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Created nix-cache-info in bucket bucket=bucket40 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Created nix-cache-info in bucket bucket=bucket39 niks3-go-unit-tests> 2026/07/28 08:16: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/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (2.05ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (3.79ms) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Vacuumed table table=pending_closures niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (2.81ms) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Vacuumed table table=pending_objects niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Vacuumed table table=closures niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Vacuumed table table=multipart_uploads niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Vacuumed table table=closures niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Vacuumed table table=objects niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (2.9ms) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Vacuumed table table=objects niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (3.78ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (4.46ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026-07-28 08:16:49.344 UTC [1162] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.344 UTC [1162] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (2.86ms) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received get closure request method=GET path=/api/closures/00000000000000000000000000000000 niks3-go-unit-tests> --- PASS: TestService_createPendingClosureHandler (0.77s) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (2.77ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (5.44ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (1.24ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (1.12ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received complete multipart upload request method=POST path=/api/multipart/complete niks3-go-unit-tests> 2026/07/28 08:16:49 WARN mTLS auth: subject not in bound subjects subject="CN=untrusted,O=Other" niks3-go-unit-tests> --- PASS: TestGCMetrics (0.26s) niks3-go-unit-tests> 2026/07/28 08:16:49 WARN mTLS auth: bound subjects configured but subject DN unavailable niks3-go-unit-tests> 2026/07/28 08:16:49 WARN mTLS auth: subject not in bound subjects subject="CN=untrusted" niks3-go-unit-tests> --- PASS: TestService_AuthMiddleware_MTLSBoundSubjects (0.21s) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (2.51ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (914.13µs) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 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> === 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 TestService_AuthMiddleware_OIDC/valid_OIDC_token niks3-go-unit-tests> === CONT TestService_AuthMiddleware_OIDC/static_token_still_works_with_OIDC_configured niks3-go-unit-tests> === CONT TestService_AuthMiddleware_OIDC/malformed_token_rejected niks3-go-unit-tests> === CONT TestService_AuthMiddleware_OIDC/OIDC_token_with_wrong_org_rejected niks3-go-unit-tests> 2026/07/28 08:16:49 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> 2026/07/28 08:16:49 WARN Authentication failed token_preview=eyJhbGciOi...04OMMoHIKQ token_length=702 oidc_error="bound claims validation failed: claim \"repository_owner\" value [otherorg] not in allowed patterns [myorg]" oidc_provider=test tried_providers=[test] niks3-go-unit-tests> 2026/07/28 08:16:49 INFO OIDC auth successful provider=test niks3-go-unit-tests> --- PASS: TestService_AuthMiddleware_OIDC (0.26s) 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/malformed_token_rejected (0.00s) niks3-go-unit-tests> --- PASS: TestService_AuthMiddleware_OIDC/OIDC_token_with_wrong_org_rejected (0.00s) niks3-go-unit-tests> --- PASS: TestService_AuthMiddleware_OIDC/valid_OIDC_token (0.00s) niks3-go-unit-tests> === NAME TestClientIntegration niks3-go-unit-tests> client_integration_test.go:276: Created store path: /build/TestClientIntegration3331309869/002/store/xkazf6vfifsii4cq8lscz8bi2jxpy5zk-test-file.txt niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (14.82ms) niks3-go-unit-tests> 2026-07-28 08:16:49.367 UTC [1248] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.367 UTC [1248] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (3.17ms) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Completed multipart upload object_key=nar/hhhhhhhhhhhhhhhhhhhhhhhhhhhhhh0100000000000000000000.nar.zst upload_id=OTY3ZjYyZjEtM2IxNS00MDA1LThjNzMtMDBjNmI0MTIxOTgyLmNiNzk2MWVmLWE1ZDUtNDdlYS05YmQyLTdjOTc1NTdkMzA1ZXgxNzg1MjI2NjA5MDg0MTExMTI4 parts=12 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (3.12ms) niks3-go-unit-tests> --- PASS: TestCompletedNarNotReofferedAcrossClosures (0.69s) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading 1 paths to 127.0.0.1 (0 already cached) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading 35kylxq3y35fi9fqmxpp1qjdxp4zwd0l-file1.txt (160B) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (5.25ms) niks3-go-unit-tests> === NAME TestClientMultipleUploads niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> client_integration_test.go:338: Created store path 0: /build/TestClientMultipleUploads63554893/001/store/x869ry56wadb43safka5zj3r6f6vyyw8-test-file-0.txt niks3-go-unit-tests> 2026/07/28 08:16:49 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/07/28 08:16:49 OK 20241026095416_initial_model.sql (7.62ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (2.5ms) niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Failed to register uploaded object key=35kylxq3y35fi9fqmxpp1qjdxp4zwd0l.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received sign narinfos request method=POST path=/api/pending_closures/1/sign niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (1.25ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (856.25µs) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Signed narinfos id=1 count=1 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading 1 narinfos niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (2.02ms) niks3-go-unit-tests> --- PASS: TestService_AuthMiddleware_MTLSProxyHeader (0.20s) niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Failed to register uploaded object key=35kylxq3y35fi9fqmxpp1qjdxp4zwd0l.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received complete upload request method=POST path=/api/pending_closures/1/complete niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (4.63ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (1.84ms) niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Request failed, retrying attempt=1 max_attempts=6 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/07/28 08:16:49 OK 2_object_stats_trigger.sql (683.64µs) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Completed upload id=1 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Upload complete. (107ms) niks3-go-unit-tests> === NAME TestNARDeduplicationMetadataUploadBug niks3-go-unit-tests> metadata_upload_test.go:54: Retrieved narinfo from S3: niks3-go-unit-tests> StorePath: /build/TestNARDeduplicationMetadataUploadBug658492960/001/store/35kylxq3y35fi9fqmxpp1qjdxp4zwd0l-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> 2026-07-28 08:16:49.399 UTC [1325] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-28 08:16:49.399 UTC [1325] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC 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> 2026/07/28 08:16:49 OK 20241026095416_initial_model.sql (6.91ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251210153512_drop_unused_gin_index.sql (1.01ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20251218171726_add_pins.sql (1.93ms) niks3-go-unit-tests> === NAME TestPinProtectsFromGC niks3-go-unit-tests> client_integration_test.go:646: Pinned store path: /build/TestPinProtectsFromGC3591437850/001/store/rlaq38qhci3axbql0lvv5zkxwl3xfqdb-pinned-file.txt niks3-go-unit-tests> client_integration_test.go:647: Unpinned store path: /build/TestPinProtectsFromGC3591437850/001/store/7r3ksc8mjbhqax6ahihp9dzfgv5v4zp2-unpinned-file.txt niks3-go-unit-tests> === NAME TestClientMultipleUploads niks3-go-unit-tests> client_integration_test.go:338: Created store path 1: /build/TestClientMultipleUploads63554893/001/store/vafs7bclrhyrj7ka8q8r1406ac1nlb47-test-file-1.txt niks3-go-unit-tests> === NAME TestClientCADerivations niks3-go-unit-tests> client_ca_test.go:136: Built CA derivation: /build/TestClientCADerivations1933314108/001/store/za43qyia3b7j6hnm52aiz4xbnpc60hwx-ca-test niks3-go-unit-tests> 2026/07/28 08:16:49 OK 20260628120000_add_object_size_and_stats.sql (3.76ms) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> === NAME TestClientWithDependencies niks3-go-unit-tests> client_integration_test.go:593: Built derivation: /build/TestClientWithDependencies4042005766/001/store/xf34m8v6khwkhymyi2m1c6wp8l3h6syb-test-script niks3-go-unit-tests> 2026/07/28 08:16:49 OK 1_commit_pending_closure.sql (1.62ms) niks3-go-unit-tests> 2026/07/28 08:16:49 OK 2_object_stats_trigger.sql (757.24µs) niks3-go-unit-tests> 2026/07/28 08:16:49 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Failed to fetch cache config, uploading without size limit error="fetching cache config: server returned 404: 404 page not found\n" niks3-go-unit-tests> === NAME TestNARDeduplicationMetadataUploadBug niks3-go-unit-tests> metadata_upload_test.go:64: Second store path (same content): /build/TestNARDeduplicationMetadataUploadBug658492960/001/store/k8v9yg3jx6hm0nh19c5179hra7svp2sf-file2.txt niks3-go-unit-tests> === NAME TestClientCADerivations niks3-go-unit-tests> client_ca_test.go:139: Found 1 dependencies (including self) niks3-go-unit-tests> === NAME TestClientMultipleUploads niks3-go-unit-tests> client_integration_test.go:338: Created store path 2: /build/TestClientMultipleUploads63554893/001/store/xfmggnkrr61dxb1gng3ibnk8d3pr55d2-test-file-2.txt niks3-go-unit-tests> === NAME TestClientWithDependencies niks3-go-unit-tests> client_integration_test.go:595: Found 1 dependencies (including self) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> === NAME TestOrphanedObjectsGC niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading 1 paths to 127.0.0.1 (0 already cached) niks3-go-unit-tests> orphaned_objects_gc_test.go:290: GC Test Summary: niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading xkazf6vfifsii4cq8lscz8bi2jxpy5zk-test-file.txt (152B) niks3-go-unit-tests> orphaned_objects_gc_test.go:291: - Kept: 2 objects from closure A niks3-go-unit-tests> orphaned_objects_gc_test.go:292: - Deleted: 2 objects from closure B niks3-go-unit-tests> orphaned_objects_gc_test.go:293: - Deleted: 6 orphaned chain objects (X1->X2->X3) niks3-go-unit-tests> orphaned_objects_gc_test.go:294: - Deleted: 2 orphaned single objects (Y) niks3-go-unit-tests> orphaned_objects_gc_test.go:295: - Total deleted: 10 objects niks3-go-unit-tests> --- PASS: TestOrphanedObjectsGC (0.48s) niks3-go-unit-tests> 2026/07/28 08:16:49 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/07/28 08:16:49 WARN Failed to register uploaded object key=xkazf6vfifsii4cq8lscz8bi2jxpy5zk.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received sign narinfos request method=POST path=/api/pending_closures/1/sign niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Signed narinfos id=1 count=1 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading 1 narinfos niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Failed to register uploaded object key=xkazf6vfifsii4cq8lscz8bi2jxpy5zk.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received complete upload request method=POST path=/api/pending_closures/1/complete niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Failed to fetch cache config, uploading without size limit error="fetching cache config: server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Completed upload id=1 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Upload complete. (97ms) niks3-go-unit-tests> === NAME TestClientIntegration niks3-go-unit-tests> client_integration_test.go:292: Retrieved narinfo from S3: niks3-go-unit-tests> StorePath: /build/TestClientIntegration3331309869/002/store/xkazf6vfifsii4cq8lscz8bi2jxpy5zk-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> 2026/07/28 08:16:49 WARN Request failed, retrying attempt=2 max_attempts=6 backoff=218.75782ms 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> client_integration_test.go:293: Retrieved .ls file from S3 (compressed size: 77 bytes) niks3-go-unit-tests> client_integration_test.go:293: 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:296: Testing garbage collection... niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Failed to fetch cache config, uploading without size limit error="fetching cache config: server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Failed to fetch cache config, uploading without size limit error="fetching cache config: server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Failed to fetch cache config, uploading without size limit error="fetching cache config: server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Failed to fetch cache config, uploading without size limit error="fetching cache config: server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading 1 paths to 127.0.0.1 (0 already cached) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading xf34m8v6khwkhymyi2m1c6wp8l3h6syb-test-script (136B) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading 1 paths to 127.0.0.1 (0 already cached) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading rlaq38qhci3axbql0lvv5zkxwl3xfqdb-pinned-file.txt (128B) niks3-go-unit-tests> 2026/07/28 08:16:49 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/07/28 08:16:49 WARN Failed to register uploaded object key=log/2ggd8kb4dqk64rlw610b78jijh557pqh-test-script.drv error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 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/07/28 08:16:49 WARN Failed to fetch cache config, uploading without size limit error="fetching cache config: server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Failed to register uploaded object key=xf34m8v6khwkhymyi2m1c6wp8l3h6syb.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received sign narinfos request method=POST path=/api/pending_closures/1/sign niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Failed to register uploaded object key=rlaq38qhci3axbql0lvv5zkxwl3xfqdb.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Signed narinfos id=1 count=1 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received sign narinfos request method=POST path=/api/pending_closures/1/sign niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading 1 narinfos niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Starting cleanup of old closures method=DELETE path=/api/closures niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Garbage collection started niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Signed narinfos id=1 count=1 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading 1 narinfos niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Failed to register uploaded object key=xf34m8v6khwkhymyi2m1c6wp8l3h6syb.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Failed to register uploaded object key=rlaq38qhci3axbql0lvv5zkxwl3xfqdb.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received complete upload request method=POST path=/api/pending_closures/1/complete niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received complete upload request method=POST path=/api/pending_closures/1/complete niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Completed upload id=1 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Upload complete. (89ms) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Aborted multipart uploads count=0 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Completed upload id=1 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Upload complete. (50ms) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> === NAME TestClientWithDependencies niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Force mode enabled - objects will be deleted immediately without grace period niks3-go-unit-tests> client_integration_test.go:597: Skipping nix copy test - isolated store (/build/TestClientWithDependencies4042005766/001/store) requires matching store prefix niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> --- PASS: TestClientWithDependencies (0.45s) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading 0 paths to 127.0.0.1 (1 already cached) niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Failed to register uploaded object key=k8v9yg3jx6hm0nh19c5179hra7svp2sf.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received sign narinfos request method=POST path=/api/pending_closures/2/sign niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Signed narinfos id=2 count=1 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading 1 narinfos niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading 1 paths to 127.0.0.1 (0 already cached) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading za43qyia3b7j6hnm52aiz4xbnpc60hwx-ca-test (144B) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Failed to register uploaded object key=k8v9yg3jx6hm0nh19c5179hra7svp2sf.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received complete upload request method=POST path=/api/pending_closures/2/complete niks3-go-unit-tests> 2026/07/28 08:16:49 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/07/28 08:16:49 WARN Failed to register uploaded object key=log/h4sgg48965wf11y9jdwfjq434jbjxi55-ca-test.drv error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Completed upload id=2 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Upload complete. (75ms) niks3-go-unit-tests> === NAME TestNARDeduplicationMetadataUploadBug niks3-go-unit-tests> metadata_upload_test.go:76: Retrieved narinfo from S3: niks3-go-unit-tests> StorePath: /build/TestNARDeduplicationMetadataUploadBug658492960/001/store/k8v9yg3jx6hm0nh19c5179hra7svp2sf-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> 2026/07/28 08:16:49 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Failed to register uploaded object key=za43qyia3b7j6hnm52aiz4xbnpc60hwx.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received sign narinfos request method=POST path=/api/pending_closures/1/sign niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Signed narinfos id=1 count=1 niks3-go-unit-tests> metadata_upload_test.go:77: Retrieved .ls file from S3 (compressed size: 62 bytes) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading 1 narinfos 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/07/28 08:16:49 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading 3 paths to 127.0.0.1 (0 already cached) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading x869ry56wadb43safka5zj3r6f6vyyw8-test-file-0.txt (160B) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading vafs7bclrhyrj7ka8q8r1406ac1nlb47-test-file-1.txt (160B) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading xfmggnkrr61dxb1gng3ibnk8d3pr55d2-test-file-2.txt (160B) niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Failed to register uploaded object key=za43qyia3b7j6hnm52aiz4xbnpc60hwx.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received complete upload request method=POST path=/api/pending_closures/1/complete niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Failed to register uploaded object key=nar/13p9pqi0ga6fx2apcwls9hjnv7nmf740ggpn5zvfzdsp5vz2bbg4.nar.zst error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 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/07/28 08:16:49 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/07/28 08:16:49 WARN Failed to register uploaded object key=x869ry56wadb43safka5zj3r6f6vyyw8.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Failed to register uploaded object key=xfmggnkrr61dxb1gng3ibnk8d3pr55d2.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Failed to register uploaded object key=vafs7bclrhyrj7ka8q8r1406ac1nlb47.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received sign narinfos request method=POST path=/api/pending_closures/1/sign niks3-go-unit-tests> --- PASS: TestNARDeduplicationMetadataUploadBug (0.59s) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Signed narinfos id=1 count=1 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received sign narinfos request method=POST path=/api/pending_closures/2/sign niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Signed narinfos id=2 count=1 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Completed upload id=1 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received sign narinfos request method=POST path=/api/pending_closures/3/sign niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Upload complete. (80ms) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Signed narinfos id=3 count=1 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading 3 narinfos niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Authentication failed token_preview=invalid-token token_length=13 reason="static API token mismatch" niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Failed to register uploaded object key=vafs7bclrhyrj7ka8q8r1406ac1nlb47.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> === NAME TestClientCADerivations niks3-go-unit-tests> client_ca_test.go:180: Narinfo contains CA field: StorePath: /build/TestClientCADerivations1933314108/001/store/za43qyia3b7j6hnm52aiz4xbnpc60hwx-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> 2026/07/28 08:16:49 WARN Failed to register uploaded object key=x869ry56wadb43safka5zj3r6f6vyyw8.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> References: niks3-go-unit-tests> Deriver: /build/TestClientCADerivations1933314108/001/store/h4sgg48965wf11y9jdwfjq434jbjxi55-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> 2026/07/28 08:16:49 WARN Failed to register uploaded object key=xfmggnkrr61dxb1gng3ibnk8d3pr55d2.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received complete upload request method=POST path=/api/pending_closures/3/complete 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> 2026/07/28 08:16:49 INFO Completed upload id=3 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received complete upload request method=POST path=/api/pending_closures/1/complete niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Completed upload id=1 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received complete upload request method=POST path=/api/pending_closures/2/complete niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Completed upload id=2 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Upload complete. (86ms) niks3-go-unit-tests> === NAME TestClientMultipleUploads niks3-go-unit-tests> client_integration_test.go:349: Uploaded 3 paths in 115.853352ms niks3-go-unit-tests> --- PASS: TestClientMultipleUploads (0.45s) niks3-go-unit-tests> --- PASS: TestGCBugBareHashReferences (0.49s) niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Failed to fetch cache config, uploading without size limit error="fetching cache config: server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading 1 paths to 127.0.0.1 (0 already cached) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading 7r3ksc8mjbhqax6ahihp9dzfgv5v4zp2-unpinned-file.txt (128B) niks3-go-unit-tests> 2026/07/28 08:16:49 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/07/28 08:16:49 WARN Failed to register uploaded object key=7r3ksc8mjbhqax6ahihp9dzfgv5v4zp2.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received sign narinfos request method=POST path=/api/pending_closures/2/sign niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Signed narinfos id=2 count=1 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Uploading 1 narinfos niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Failed to register uploaded object key=7r3ksc8mjbhqax6ahihp9dzfgv5v4zp2.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received complete upload request method=POST path=/api/pending_closures/2/complete niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Completed upload id=2 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Upload complete. (78ms) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Received create pin request method=POST path=/api/pins/myapp niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Created/updated pin name=myapp store_path=/build/TestPinProtectsFromGC3591437850/001/store/rlaq38qhci3axbql0lvv5zkxwl3xfqdb-pinned-file.txt narinfo_key=rlaq38qhci3axbql0lvv5zkxwl3xfqdb.narinfo niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Starting cleanup of old closures method=DELETE path=/api/closures niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Garbage collection started niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Aborted multipart uploads count=0 niks3-go-unit-tests> === NAME TestClientCADerivations niks3-go-unit-tests> client_ca_test.go:258: nix copy output: warning: you don't have Internet access; disabling some network-dependent features niks3-go-unit-tests> warning: failed to create TLS context for AWS credential providers; SSO, STS WebIdentity, and ECS container authentication will be unavailable niks3-go-unit-tests> error: binary cache 's3://bucket38?endpoint=http://localhost:37423®ion=eu-west-1' is for Nix stores with prefix '/nix/store', not '/build/TestClientCADerivations1933314108/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> 2026/07/28 08:16:49 WARN Force mode enabled - objects will be deleted immediately without grace period niks3-go-unit-tests> --- PASS: TestClientCADerivations (0.61s) niks3-go-unit-tests> 2026/07/28 08:16:49 WARN Request failed, retrying attempt=3 max_attempts=6 backoff=403.635737ms 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: TestUploadHandlersRejectOversizedBody (0.19s) niks3-go-unit-tests> --- PASS: TestUploadHandlersRejectOversizedBody/request_more_parts (0.06s) niks3-go-unit-tests> --- PASS: TestUploadHandlersRejectOversizedBody/complete_multipart (0.06s) niks3-go-unit-tests> --- PASS: TestUploadHandlersRejectOversizedBody/create_pending_closure (0.69s) niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Garbage collection completed failed-uploads-deleted=0 old-closures-deleted=1 objects-marked-for-deletion=3 objects-deleted-after-grace-period=2001 objects-failed-to-delete=0 niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Vacuumed table table=pending_closures niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Vacuumed table table=pending_objects niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Vacuumed table table=multipart_uploads niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Vacuumed table table=closures niks3-go-unit-tests> 2026/07/28 08:16:49 INFO Vacuumed table table=objects niks3-go-unit-tests> === NAME TestOrphanedObjectsGCStressTest niks3-go-unit-tests> orphaned_objects_gc_test.go:425: Created 10 active closures, 5 to-delete closures, 20 orphaned chains niks3-go-unit-tests> orphaned_objects_gc_test.go:446: Marked 210 objects for deletion niks3-go-unit-tests> 2026/07/28 08:16:50 INFO Garbage collection completed failed-uploads-deleted=0 old-closures-deleted=1 objects-marked-for-deletion=3 objects-deleted-after-grace-period=2001 objects-failed-to-delete=0 niks3-go-unit-tests> 2026/07/28 08:16:50 INFO Vacuumed table table=pending_closures niks3-go-unit-tests> 2026/07/28 08:16:50 INFO Vacuumed table table=pending_objects niks3-go-unit-tests> 2026/07/28 08:16:50 INFO Vacuumed table table=multipart_uploads niks3-go-unit-tests> 2026/07/28 08:16:50 INFO Vacuumed table table=closures niks3-go-unit-tests> 2026/07/28 08:16:50 INFO Vacuumed table table=objects niks3-go-unit-tests> 2026/07/28 08:16:50 WARN Request failed, retrying attempt=4 max_attempts=6 backoff=775.022374ms 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> orphaned_objects_gc_test.go:509: Stress test completed successfully: niks3-go-unit-tests> orphaned_objects_gc_test.go:510: - Active objects preserved: 20 niks3-go-unit-tests> orphaned_objects_gc_test.go:511: - Objects deleted: 210 niks3-go-unit-tests> orphaned_objects_gc_test.go:512: - Total GC'd: 210 niks3-go-unit-tests> --- PASS: TestOrphanedObjectsGCStressTest (1.22s) niks3-go-unit-tests> 2026/07/28 08:16:50 WARN Request failed, retrying attempt=5 max_attempts=6 backoff=1.4686372s 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/07/28 08:16:51 INFO Garbage collection progress phase="" failed_uploads_deleted=0 old_closures_deleted=1 objects_marked=3 objects_deleted=2001 objects_failed=0 niks3-go-unit-tests> === NAME TestClientIntegration niks3-go-unit-tests> client_integration_test.go:303: Objects in database after GC: niks3-go-unit-tests> client_integration_test.go:303: Successfully deleted all objects with GC --force niks3-go-unit-tests> --- PASS: TestClientIntegration (2.46s) niks3-go-unit-tests> 2026/07/28 08:16:51 INFO Garbage collection progress phase="" failed_uploads_deleted=0 old_closures_deleted=1 objects_marked=3 objects_deleted=2001 objects_failed=0 niks3-go-unit-tests> === NAME TestPinProtectsFromGC niks3-go-unit-tests> client_integration_test.go:709: Pin successfully protected closure from garbage collection niks3-go-unit-tests> --- PASS: TestPinProtectsFromGC (2.60s) niks3-go-unit-tests> 2026/07/28 08:16:52 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/07/28 08:16:52 WARN Request failed, retrying attempt=1 max_attempts=6 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/07/28 08:16:52 WARN Request failed, retrying attempt=2 max_attempts=6 backoff=215.524452ms 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/07/28 08:16:52 WARN Rate limiter enabled after throttle name=s3-test rate=5 niks3-go-unit-tests> 2026/07/28 08:16:52 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=15, 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 (4.01s) niks3-go-unit-tests> 2026/07/28 08:16:52 WARN Request failed, retrying attempt=3 max_attempts=6 backoff=366.581316ms 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/07/28 08:16:53 WARN Request failed, retrying attempt=4 max_attempts=6 backoff=768.742437ms 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/07/28 08:16:53 WARN Request failed, retrying attempt=5 max_attempts=6 backoff=1.587906735s 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 (0.20s) niks3-go-unit-tests> --- PASS: TestClientErrorHandling/InvalidAuthToken (0.28s) niks3-go-unit-tests> --- PASS: TestClientErrorHandling/ServerNotAvailable (6.18s) niks3-go-unit-tests> PASS niks3-go-unit-tests> {"timestamp":"2026-07-28T08:16:55.955086938Z","level":"ERROR","fields":{"message":"Unknown connection IO error:Cancelled","peer_addr":"127.0.0.1:33748"},"target":"rustfs::server::http","filename":"rustfs/src/server/http.rs","line_number":973,"threadName":"rustfs-worker","threadId":"ThreadId(764)"} niks3-go-unit-tests> 2026-07-28 08:16:56.111 UTC [111] LOG: received smart shutdown request niks3-go-unit-tests> 2026-07-28 08:16:56.115 UTC [111] LOG: background worker "logical replication launcher" (PID 121) exited with exit code 1 niks3-go-unit-tests> 2026-07-28 08:16:56.121 UTC [116] LOG: shutting down niks3-go-unit-tests> 2026-07-28 08:16:56.122 UTC [116] LOG: checkpoint starting: shutdown immediate niks3-go-unit-tests> 2026-07-28 08:16:57.166 UTC [116] LOG: checkpoint complete: wrote 11227 buffers (68.5%), wrote 3 SLRU buffers; 0 WAL file(s) added, 0 removed, 13 recycled; write=0.283 s, sync=0.754 s, total=1.045 s; sync files=15167, longest=0.006 s, average=0.001 s; distance=208459 kB, estimate=208459 kB; lsn=0/E2F1FA0, redo lsn=0/E2F1FA0 niks3-go-unit-tests> 2026-07-28 08:16:57.245 UTC [111] LOG: database system is shut down niks3-go-unit-tests> Running OIDC tests... niks3-go-unit-tests> === RUN TestGlobMatch niks3-go-unit-tests> === PAUSE TestGlobMatch niks3-go-unit-tests> === RUN TestAudienceForIssuer niks3-go-unit-tests> === PAUSE TestAudienceForIssuer niks3-go-unit-tests> === RUN TestValidateToken_ValidToken niks3-go-unit-tests> === PAUSE TestValidateToken_ValidToken niks3-go-unit-tests> === RUN TestValidateToken_WrongAudience niks3-go-unit-tests> === PAUSE TestValidateToken_WrongAudience niks3-go-unit-tests> === RUN TestValidateToken_Expired niks3-go-unit-tests> === PAUSE TestValidateToken_Expired niks3-go-unit-tests> === RUN TestValidateToken_BoundClaimsMismatch niks3-go-unit-tests> === PAUSE TestValidateToken_BoundClaimsMismatch niks3-go-unit-tests> === RUN TestValidateToken_BoundSubjectMismatch niks3-go-unit-tests> === PAUSE TestValidateToken_BoundSubjectMismatch niks3-go-unit-tests> === RUN TestValidateToken_MultipleProviders niks3-go-unit-tests> === PAUSE TestValidateToken_MultipleProviders niks3-go-unit-tests> === RUN TestValidateToken_NoMatchingProvider niks3-go-unit-tests> === PAUSE TestValidateToken_NoMatchingProvider niks3-go-unit-tests> === CONT TestGlobMatch niks3-go-unit-tests> === RUN TestGlobMatch/foo_foo niks3-go-unit-tests> === CONT TestValidateToken_BoundClaimsMismatch niks3-go-unit-tests> === PAUSE TestGlobMatch/foo_foo niks3-go-unit-tests> === CONT TestValidateToken_MultipleProviders niks3-go-unit-tests> === CONT TestValidateToken_ValidToken niks3-go-unit-tests> === CONT TestAudienceForIssuer niks3-go-unit-tests> --- PASS: TestAudienceForIssuer (0.00s) niks3-go-unit-tests> === CONT TestValidateToken_NoMatchingProvider niks3-go-unit-tests> === CONT TestValidateToken_BoundSubjectMismatch niks3-go-unit-tests> === CONT TestValidateToken_Expired niks3-go-unit-tests> === CONT TestValidateToken_WrongAudience niks3-go-unit-tests> === RUN TestGlobMatch/foo_bar niks3-go-unit-tests> === PAUSE TestGlobMatch/foo_bar niks3-go-unit-tests> === RUN TestGlobMatch/*_ niks3-go-unit-tests> === PAUSE TestGlobMatch/*_ niks3-go-unit-tests> === RUN TestGlobMatch/*_anything niks3-go-unit-tests> === PAUSE TestGlobMatch/*_anything niks3-go-unit-tests> === RUN TestGlobMatch/foo*_foo niks3-go-unit-tests> === PAUSE TestGlobMatch/foo*_foo niks3-go-unit-tests> === RUN TestGlobMatch/foo*_foobar niks3-go-unit-tests> === PAUSE TestGlobMatch/foo*_foobar niks3-go-unit-tests> === RUN TestGlobMatch/foo*_bar niks3-go-unit-tests> === PAUSE TestGlobMatch/foo*_bar niks3-go-unit-tests> === RUN TestGlobMatch/*bar_bar niks3-go-unit-tests> === PAUSE TestGlobMatch/*bar_bar niks3-go-unit-tests> === RUN TestGlobMatch/*bar_foobar niks3-go-unit-tests> === PAUSE TestGlobMatch/*bar_foobar niks3-go-unit-tests> === RUN TestGlobMatch/*bar_foo niks3-go-unit-tests> === PAUSE TestGlobMatch/*bar_foo niks3-go-unit-tests> === RUN TestGlobMatch/foo*bar_foobar niks3-go-unit-tests> === PAUSE TestGlobMatch/foo*bar_foobar niks3-go-unit-tests> === RUN TestGlobMatch/foo*bar_foo123bar niks3-go-unit-tests> === PAUSE TestGlobMatch/foo*bar_foo123bar niks3-go-unit-tests> === RUN TestGlobMatch/foo*bar_foobarbaz niks3-go-unit-tests> === PAUSE TestGlobMatch/foo*bar_foobarbaz niks3-go-unit-tests> === RUN TestGlobMatch/*/*_foo/bar niks3-go-unit-tests> === PAUSE TestGlobMatch/*/*_foo/bar niks3-go-unit-tests> === RUN TestGlobMatch/*/*_foo niks3-go-unit-tests> === PAUSE TestGlobMatch/*/*_foo niks3-go-unit-tests> === RUN TestGlobMatch/refs/heads/*_refs/heads/main niks3-go-unit-tests> === PAUSE TestGlobMatch/refs/heads/*_refs/heads/main niks3-go-unit-tests> === RUN TestGlobMatch/refs/heads/*_refs/tags/v1.0 niks3-go-unit-tests> === PAUSE TestGlobMatch/refs/heads/*_refs/tags/v1.0 niks3-go-unit-tests> === RUN TestGlobMatch/refs/*/main_refs/heads/main niks3-go-unit-tests> === PAUSE TestGlobMatch/refs/*/main_refs/heads/main niks3-go-unit-tests> === RUN TestGlobMatch/fo?_foo niks3-go-unit-tests> === PAUSE TestGlobMatch/fo?_foo niks3-go-unit-tests> === RUN TestGlobMatch/fo?_fo niks3-go-unit-tests> === PAUSE TestGlobMatch/fo?_fo niks3-go-unit-tests> === RUN TestGlobMatch/fo?_fooo niks3-go-unit-tests> === PAUSE TestGlobMatch/fo?_fooo niks3-go-unit-tests> === RUN TestGlobMatch/?oo_foo niks3-go-unit-tests> === PAUSE TestGlobMatch/?oo_foo niks3-go-unit-tests> === RUN TestGlobMatch/?oo_boo niks3-go-unit-tests> === PAUSE TestGlobMatch/?oo_boo niks3-go-unit-tests> === RUN TestGlobMatch/repo:myorg/*:*_repo:myorg/myrepo:ref:refs/heads/main niks3-go-unit-tests> === PAUSE TestGlobMatch/repo:myorg/*:*_repo:myorg/myrepo:ref:refs/heads/main niks3-go-unit-tests> === RUN TestGlobMatch/repo:myorg/*:*_repo:otherorg/myrepo:ref:refs/heads/main niks3-go-unit-tests> === PAUSE TestGlobMatch/repo:myorg/*:*_repo:otherorg/myrepo:ref:refs/heads/main niks3-go-unit-tests> === CONT TestGlobMatch/foo_foo niks3-go-unit-tests> === CONT TestGlobMatch/repo:myorg/*:*_repo:otherorg/myrepo:ref:refs/heads/main niks3-go-unit-tests> === CONT TestGlobMatch/repo:myorg/*:*_repo:myorg/myrepo:ref:refs/heads/main niks3-go-unit-tests> === CONT TestGlobMatch/foo*bar_foobarbaz niks3-go-unit-tests> === CONT TestGlobMatch/*/*_foo niks3-go-unit-tests> === CONT TestGlobMatch/foo*bar_foo123bar niks3-go-unit-tests> 2026/07/28 08:16:58 INFO OIDC provider initialized name=test niks3-go-unit-tests> === CONT TestGlobMatch/*/*_foo/bar niks3-go-unit-tests> === CONT TestGlobMatch/refs/*/main_refs/heads/main niks3-go-unit-tests> === CONT TestGlobMatch/refs/heads/*_refs/tags/v1.0 niks3-go-unit-tests> 2026/07/28 08:16:58 INFO OIDC provider initialized name=test niks3-go-unit-tests> === CONT TestGlobMatch/foo*bar_foobar niks3-go-unit-tests> === CONT TestGlobMatch/*bar_foo niks3-go-unit-tests> === CONT TestGlobMatch/*bar_foobar niks3-go-unit-tests> 2026/07/28 08:16:58 INFO OIDC provider initialized name=test niks3-go-unit-tests> === CONT TestGlobMatch/*bar_bar niks3-go-unit-tests> === CONT TestGlobMatch/fo?_foo niks3-go-unit-tests> === CONT TestGlobMatch/foo*_bar niks3-go-unit-tests> 2026/07/28 08:16:58 INFO OIDC provider initialized name=test niks3-go-unit-tests> === CONT TestGlobMatch/?oo_boo niks3-go-unit-tests> === CONT TestGlobMatch/foo*_foobar niks3-go-unit-tests> === CONT TestGlobMatch/?oo_foo niks3-go-unit-tests> 2026/07/28 08:16:58 INFO OIDC provider initialized name=test niks3-go-unit-tests> === CONT TestGlobMatch/foo*_foo niks3-go-unit-tests> 2026/07/28 08:16:58 INFO OIDC provider initialized name=provider1 niks3-go-unit-tests> === CONT TestGlobMatch/fo?_fooo niks3-go-unit-tests> === CONT TestGlobMatch/*_anything niks3-go-unit-tests> 2026/07/28 08:16:58 INFO OIDC provider initialized name=provider1 niks3-go-unit-tests> === CONT TestGlobMatch/*_ niks3-go-unit-tests> === CONT TestGlobMatch/fo?_fo niks3-go-unit-tests> === CONT TestGlobMatch/foo_bar niks3-go-unit-tests> === CONT TestGlobMatch/refs/heads/*_refs/heads/main niks3-go-unit-tests> --- PASS: TestGlobMatch (0.01s) niks3-go-unit-tests> --- PASS: TestGlobMatch/foo_foo (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/repo:myorg/*:*_repo:otherorg/myrepo:ref:refs/heads/main (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/repo:myorg/*:*_repo:myorg/myrepo:ref:refs/heads/main (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/foo*bar_foobarbaz (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/*/*_foo (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/foo*bar_foo123bar (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/*/*_foo/bar (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/refs/*/main_refs/heads/main (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/refs/heads/*_refs/tags/v1.0 (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/foo*bar_foobar (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/*bar_foo (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/*bar_foobar (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/*bar_bar (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/fo?_foo (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/foo*_bar (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/?oo_boo (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/foo*_foobar (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/?oo_foo (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/foo*_foo (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/fo?_fooo (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/*_anything (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/*_ (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/fo?_fo (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/foo_bar (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/refs/heads/*_refs/heads/main (0.00s) niks3-go-unit-tests> 2026/07/28 08:16:58 INFO OIDC provider initialized name=provider2 niks3-go-unit-tests> --- PASS: TestValidateToken_Expired (0.01s) niks3-go-unit-tests> --- PASS: TestValidateToken_WrongAudience (0.01s) niks3-go-unit-tests> --- PASS: TestValidateToken_NoMatchingProvider (0.01s) niks3-go-unit-tests> --- PASS: TestValidateToken_BoundSubjectMismatch (0.01s) niks3-go-unit-tests> --- PASS: TestValidateToken_ValidToken (0.01s) niks3-go-unit-tests> --- PASS: TestValidateToken_BoundClaimsMismatch (0.01s) niks3-go-unit-tests> --- PASS: TestValidateToken_MultipleProviders (0.02s) niks3-go-unit-tests> PASS niks3-go-unit-tests> Running hook tests... niks3-go-unit-tests> === RUN TestSendPathsEmpty niks3-go-unit-tests> === PAUSE TestSendPathsEmpty niks3-go-unit-tests> === RUN TestQueueEnqueueAndFetch niks3-go-unit-tests> === PAUSE TestQueueEnqueueAndFetch niks3-go-unit-tests> === RUN TestQueueDeduplication niks3-go-unit-tests> === PAUSE TestQueueDeduplication niks3-go-unit-tests> === RUN TestQueueRemove niks3-go-unit-tests> === PAUSE TestQueueRemove niks3-go-unit-tests> === RUN TestQueueFetchBatchLimit niks3-go-unit-tests> === PAUSE TestQueueFetchBatchLimit niks3-go-unit-tests> === RUN TestQueueFetchRemoveLifecycle niks3-go-unit-tests> === PAUSE TestQueueFetchRemoveLifecycle niks3-go-unit-tests> === RUN TestQueueConcurrentWriters niks3-go-unit-tests> === PAUSE TestQueueConcurrentWriters niks3-go-unit-tests> === RUN TestServerClientIntegration niks3-go-unit-tests> === PAUSE TestServerClientIntegration niks3-go-unit-tests> === RUN TestServerQueueError niks3-go-unit-tests> === PAUSE TestServerQueueError niks3-go-unit-tests> === RUN TestGetListenerSocketActivation niks3-go-unit-tests> server_test.go:210: === RUN TestGetListenerSocketActivation niks3-go-unit-tests> --- PASS: TestGetListenerSocketActivation (0.00s) niks3-go-unit-tests> PASS niks3-go-unit-tests> niks3-go-unit-tests> --- PASS: TestGetListenerSocketActivation (0.01s) niks3-go-unit-tests> === RUN TestWorkerUploadsAndRemoves niks3-go-unit-tests> === PAUSE TestWorkerUploadsAndRemoves niks3-go-unit-tests> === RUN TestWorkerSkipsGCdPaths niks3-go-unit-tests> === PAUSE TestWorkerSkipsGCdPaths niks3-go-unit-tests> === RUN TestWorkerPrunesClosureDeps niks3-go-unit-tests> === PAUSE TestWorkerPrunesClosureDeps niks3-go-unit-tests> === CONT TestSendPathsEmpty niks3-go-unit-tests> === CONT TestQueueFetchRemoveLifecycle niks3-go-unit-tests> === CONT TestQueueConcurrentWriters niks3-go-unit-tests> === CONT TestWorkerPrunesClosureDeps niks3-go-unit-tests> === CONT TestWorkerSkipsGCdPaths niks3-go-unit-tests> === CONT TestWorkerUploadsAndRemoves niks3-go-unit-tests> === CONT TestServerQueueError niks3-go-unit-tests> === CONT TestServerClientIntegration niks3-go-unit-tests> --- PASS: TestSendPathsEmpty (0.00s) niks3-go-unit-tests> === CONT TestQueueDeduplication niks3-go-unit-tests> === CONT TestQueueEnqueueAndFetch niks3-go-unit-tests> === CONT TestQueueFetchBatchLimit niks3-go-unit-tests> === CONT TestQueueRemove niks3-go-unit-tests> 2026/07/28 08:16:58 ERROR Failed to queue paths error="permission denied" count=1 niks3-go-unit-tests> --- PASS: TestServerQueueError (0.00s) niks3-go-unit-tests> --- PASS: TestServerClientIntegration (0.00s) niks3-go-unit-tests> 2026/07/28 08:16:58 INFO Upload queue status pending=2 niks3-go-unit-tests> 2026/07/28 08:16:58 INFO Uploading batch count=1 niks3-go-unit-tests> 2026/07/28 08:16:58 INFO Upload queue status pending=2 niks3-go-unit-tests> 2026/07/28 08:16:58 INFO Uploading batch count=2 niks3-go-unit-tests> --- PASS: TestQueueFetchBatchLimit (0.02s) niks3-go-unit-tests> --- PASS: TestQueueRemove (0.02s) niks3-go-unit-tests> --- PASS: TestQueueDeduplication (0.02s) niks3-go-unit-tests> 2026/07/28 08:16:58 INFO Upload queue status pending=2 niks3-go-unit-tests> --- PASS: TestQueueEnqueueAndFetch (0.02s) niks3-go-unit-tests> 2026/07/28 08:16:58 WARN Store path no longer exists (garbage collected?), removing from queue path=/build/TestWorkerSkipsGCdPaths1071448560/002/nonexistent niks3-go-unit-tests> 2026/07/28 08:16:58 INFO Uploading batch count=1 niks3-go-unit-tests> --- PASS: TestQueueFetchRemoveLifecycle (0.03s) niks3-go-unit-tests> --- PASS: TestWorkerPrunesClosureDeps (0.07s) niks3-go-unit-tests> --- PASS: TestWorkerUploadsAndRemoves (0.07s) niks3-go-unit-tests> --- PASS: TestWorkerSkipsGCdPaths (0.08s) niks3-go-unit-tests> --- PASS: TestQueueConcurrentWriters (0.39s) niks3-go-unit-tests> PASS post-build step Upload coverage to codecov: ok Skipping codecov: project=Mic92/niks3 attr=default.checks.x86_64-linux.go-unit-tests