this derivation will be built: /nix/store/wmys4iymrjr28bdp8abmlmykcgpw940h-niks3-go-unit-tests.drv building '/nix/store/wmys4iymrjr28bdp8abmlmykcgpw940h-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 TestResolveStorePath 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> === RUN TestRateLimiterFeedback/429_enables_limiter niks3-go-unit-tests> === CONT TestScriptTokenCachesUntilRefresh niks3-go-unit-tests> === PAUSE TestRateLimiterFeedback/429_enables_limiter niks3-go-unit-tests> === RUN TestRateLimiterFeedback/503_enables_limiter niks3-go-unit-tests> --- PASS: TestResolveStorePath (0.00s) niks3-go-unit-tests> === CONT TestDumpPathWriterError niks3-go-unit-tests> 2026/07/19 13:53:41 WARN Rate limiter enabled after throttle name=server-test rate=5 niks3-go-unit-tests> === PAUSE TestRateLimiterFeedback/503_enables_limiter niks3-go-unit-tests> === RUN TestRateLimiterFeedback/200_does_not_enable_limiter niks3-go-unit-tests> === PAUSE TestRateLimiterFeedback/200_does_not_enable_limiter niks3-go-unit-tests> === RUN TestRateLimiterFeedback/400_does_not_enable_limiter niks3-go-unit-tests> === PAUSE TestRateLimiterFeedback/400_does_not_enable_limiter niks3-go-unit-tests> === CONT TestScriptTokenEmptyCommand niks3-go-unit-tests> --- PASS: TestScriptTokenEmptyCommand (0.00s) niks3-go-unit-tests> === CONT TestPartSizeForNAR niks3-go-unit-tests> === RUN TestPartSizeForNAR/zero_stays_at_minimum niks3-go-unit-tests> === PAUSE TestPartSizeForNAR/zero_stays_at_minimum niks3-go-unit-tests> === RUN TestPartSizeForNAR/small_stays_at_minimum niks3-go-unit-tests> === PAUSE TestPartSizeForNAR/small_stays_at_minimum niks3-go-unit-tests> === RUN TestPartSizeForNAR/80_GiB_fits_at_minimum niks3-go-unit-tests> === PAUSE TestPartSizeForNAR/80_GiB_fits_at_minimum niks3-go-unit-tests> === RUN TestPartSizeForNAR/115_GiB_needs_larger_parts niks3-go-unit-tests> === PAUSE TestPartSizeForNAR/115_GiB_needs_larger_parts niks3-go-unit-tests> === RUN TestPartSizeForNAR/1_TiB niks3-go-unit-tests> === PAUSE TestPartSizeForNAR/1_TiB niks3-go-unit-tests> === RUN TestPartSizeForNAR/5_TiB_S3_max_object niks3-go-unit-tests> === PAUSE TestPartSizeForNAR/5_TiB_S3_max_object niks3-go-unit-tests> === RUN TestPartSizeForNAR/capped_at_5_GiB niks3-go-unit-tests> === PAUSE TestPartSizeForNAR/capped_at_5_GiB niks3-go-unit-tests> === CONT TestUploadMultipart_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 TestShellSplitErrors niks3-go-unit-tests> --- PASS: TestShellSplitErrors (0.00s) niks3-go-unit-tests> === CONT TestSetClientTLS niks3-go-unit-tests> === CONT TestScriptTokenBadJSON niks3-go-unit-tests> === CONT TestScriptTokenEmptyToken niks3-go-unit-tests> === CONT TestPathInfoCACompatibility niks3-go-unit-tests> === RUN TestPathInfoCACompatibility/null_ca_field niks3-go-unit-tests> === CONT TestParsePathInfoJSONMultiplePaths niks3-go-unit-tests> === PAUSE TestPathInfoCACompatibility/null_ca_field niks3-go-unit-tests> === RUN TestPathInfoCACompatibility/old_string_format_-_text niks3-go-unit-tests> === PAUSE TestPathInfoCACompatibility/old_string_format_-_text niks3-go-unit-tests> === RUN TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths niks3-go-unit-tests> === PAUSE TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths niks3-go-unit-tests> === CONT TestPathInfoHashCompatibility niks3-go-unit-tests> === CONT TestGetStorePathHash niks3-go-unit-tests> === CONT TestConvertHashToNix32 niks3-go-unit-tests> === CONT TestFileTokenMissing niks3-go-unit-tests> === CONT TestSetClientTLSDoesNotMutateDefaultTransport niks3-go-unit-tests> === CONT TestFileTokenReadsAndCaches niks3-go-unit-tests> === CONT TestFilterOversizedClosures niks3-go-unit-tests> === RUN TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths niks3-go-unit-tests> === PAUSE TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths niks3-go-unit-tests> === CONT TestStaticToken niks3-go-unit-tests> === CONT TestScriptTokenNoExpiryRerunsEveryCall niks3-go-unit-tests> === CONT TestFileTokenEmpty niks3-go-unit-tests> === CONT TestDumpPathMatchesNix niks3-go-unit-tests> === CONT TestEncodeNixBase32 niks3-go-unit-tests> === CONT TestScriptTokenScriptFails niks3-go-unit-tests> === CONT TestDumpPathSingleFile niks3-go-unit-tests> === CONT TestParsePathInfoJSON niks3-go-unit-tests> === RUN TestPathInfoCACompatibility/old_string_format_-_fixed_recursive niks3-go-unit-tests> --- PASS: TestDoServerRequestAttachesToken (0.00s) niks3-go-unit-tests> === CONT TestSetClientTLSErrors niks3-go-unit-tests> === RUN TestFilterOversizedClosures/no_limit_keeps_everything niks3-go-unit-tests> === RUN TestGetStorePathHash/valid_store_path niks3-go-unit-tests> === RUN TestPathInfoHashCompatibility/old_string_format_with_dash_(SRI) niks3-go-unit-tests> --- PASS: TestFileTokenReadsAndCaches (0.00s) niks3-go-unit-tests> --- PASS: TestStaticToken (0.00s) niks3-go-unit-tests> === PAUSE TestPathInfoHashCompatibility/old_string_format_with_dash_(SRI) niks3-go-unit-tests> === RUN TestPathInfoHashCompatibility/old_string_format_with_colon niks3-go-unit-tests> === PAUSE TestPathInfoHashCompatibility/old_string_format_with_colon niks3-go-unit-tests> === CONT TestDoWithRetry_BodyReplayedViaGetBody 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> === CONT TestCaseHackSuffix niks3-go-unit-tests> === CONT TestShellSplit niks3-go-unit-tests> === RUN TestEncodeNixBase32/test_string_hash niks3-go-unit-tests> === PAUSE TestPathInfoCACompatibility/old_string_format_-_fixed_recursive niks3-go-unit-tests> === RUN TestConvertHashToNix32/SRI_format_to_Nix32 niks3-go-unit-tests> === PAUSE TestConvertHashToNix32/SRI_format_to_Nix32 niks3-go-unit-tests> === CONT TestPartSizeForNAR/zero_stays_at_minimum niks3-go-unit-tests> === RUN TestConvertHashToNix32/already_Nix32_format niks3-go-unit-tests> === PAUSE TestConvertHashToNix32/already_Nix32_format niks3-go-unit-tests> === RUN TestConvertHashToNix32/invalid_format niks3-go-unit-tests> === PAUSE TestConvertHashToNix32/invalid_format niks3-go-unit-tests> === CONT TestRateLimiterFeedback/429_enables_limiter 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/1_TiB 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 TestUploadMultipart_SupersededByPeer/missing niks3-go-unit-tests> === CONT TestUploadMultipart_SupersededByPeer/exists niks3-go-unit-tests> === PAUSE TestFilterOversizedClosures/no_limit_keeps_everything niks3-go-unit-tests> === RUN TestParsePathInfoJSON/Nix_format niks3-go-unit-tests> 2026/07/19 13:53:41 WARN Rate limiter enabled after throttle name=server-test rate=5 niks3-go-unit-tests> === PAUSE TestParsePathInfoJSON/Nix_format niks3-go-unit-tests> --- PASS: TestFileTokenMissing (0.00s) niks3-go-unit-tests> 2026/07/19 13:53:41 WARN Request returned retryable status, retrying attempt=1 max_attempts=6 backoff=0s status=503 url=http://127.0.0.1:33205 niks3-go-unit-tests> 2026/07/19 13:53:41 WARN Rate limiter backed off name=server-test rate=5 niks3-go-unit-tests> === RUN TestSetClientTLSErrors/missing_cert_file niks3-go-unit-tests> 2026/07/19 13:53:41 WARN Request returned retryable status, retrying attempt=2 max_attempts=6 backoff=0s status=503 url=http://127.0.0.1:33205 niks3-go-unit-tests> === CONT TestRateLimiterFeedback/200_does_not_enable_limiter niks3-go-unit-tests> === RUN TestPathInfoCACompatibility/new_structured_format_-_text niks3-go-unit-tests> === PAUSE TestPathInfoHashCompatibility/new_structured_format_with_sha512 niks3-go-unit-tests> === CONT TestRateLimiterFeedback/503_enables_limiter niks3-go-unit-tests> === PAUSE TestEncodeNixBase32/test_string_hash niks3-go-unit-tests> === PAUSE TestGetStorePathHash/valid_store_path niks3-go-unit-tests> === CONT TestPartSizeForNAR/115_GiB_needs_larger_parts niks3-go-unit-tests> === CONT TestRateLimiterFeedback/400_does_not_enable_limiter niks3-go-unit-tests> === RUN TestSetClientTLS/rejects_connection_without_client_cert niks3-go-unit-tests> === RUN TestFilterOversizedClosures/closure_with_oversized_dependency_is_skipped niks3-go-unit-tests> === RUN TestParsePathInfoJSON/Lix_format niks3-go-unit-tests> --- PASS: TestScriptTokenEmptyToken (0.01s) niks3-go-unit-tests> === CONT TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths niks3-go-unit-tests> === PAUSE TestSetClientTLSErrors/missing_cert_file niks3-go-unit-tests> === RUN TestSetClientTLSErrors/missing_key_file niks3-go-unit-tests> 2026/07/19 13:53:41 WARN Rate limiter enabled after throttle name=server-test rate=5 niks3-go-unit-tests> === CONT TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths niks3-go-unit-tests> 2026/07/19 13:53:41 WARN Request returned retryable status, retrying attempt=1 max_attempts=2 backoff=0s status=429 url=http://127.0.0.1:40759 niks3-go-unit-tests> === RUN TestEncodeNixBase32/empty_input niks3-go-unit-tests> === RUN TestGetStorePathHash/basename_without_hyphen_should_error niks3-go-unit-tests> === CONT TestConvertHashToNix32/SRI_format_to_Nix32 niks3-go-unit-tests> === PAUSE TestSetClientTLS/rejects_connection_without_client_cert niks3-go-unit-tests> === RUN TestSetClientTLS/succeeds_with_client_cert_and_CA niks3-go-unit-tests> --- PASS: TestScriptTokenScriptFails (0.00s) niks3-go-unit-tests> --- PASS: TestShellSplit (0.00s) niks3-go-unit-tests> --- PASS: TestFileTokenEmpty (0.00s) niks3-go-unit-tests> === PAUSE TestEncodeNixBase32/empty_input niks3-go-unit-tests> --- PASS: TestScriptTokenBadJSON (0.01s) niks3-go-unit-tests> === PAUSE TestSetClientTLSErrors/missing_key_file niks3-go-unit-tests> 2026/07/19 13:53:41 WARN Rate limiter backed off name=server-test rate=5 niks3-go-unit-tests> === PAUSE TestGetStorePathHash/basename_without_hyphen_should_error niks3-go-unit-tests> === RUN TestGetStorePathHash/hash_with_invalid_characters_should_error niks3-go-unit-tests> === PAUSE TestParsePathInfoJSON/Lix_format niks3-go-unit-tests> === PAUSE TestPathInfoCACompatibility/new_structured_format_-_text niks3-go-unit-tests> === CONT TestPathInfoHashCompatibility/new_structured_format_with_sha512 niks3-go-unit-tests> === RUN TestParsePathInfoJSON/empty_input niks3-go-unit-tests> === PAUSE TestParsePathInfoJSON/empty_input niks3-go-unit-tests> === PAUSE TestFilterOversizedClosures/closure_with_oversized_dependency_is_skipped niks3-go-unit-tests> === CONT TestPathInfoHashCompatibility/new_structured_format_-_converts_to_SRI niks3-go-unit-tests> === RUN TestPathInfoCACompatibility/new_structured_format_-_nar_method niks3-go-unit-tests> 2026/07/19 13:53:41 WARN Rate limiter enabled after throttle name=server-test rate=5 niks3-go-unit-tests> 2026/07/19 13:53:41 WARN Request returned retryable status, retrying attempt=1 max_attempts=2 backoff=0s status=503 url=http://127.0.0.1:46221 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> === CONT TestPathInfoCACompatibility/new_structured_format_-_nar_method niks3-go-unit-tests> 2026/07/19 13:53:41 WARN Rate limiter backed off name=server-test rate=5 niks3-go-unit-tests> === CONT TestConvertHashToNix32/invalid_format niks3-go-unit-tests> === CONT TestPathInfoCACompatibility/old_string_format_-_text niks3-go-unit-tests> === CONT TestConvertHashToNix32/already_Nix32_format niks3-go-unit-tests> --- PASS: TestSetClientTLSDoesNotMutateDefaultTransport (0.01s) niks3-go-unit-tests> === RUN TestSetClientTLSErrors/missing_ca_file niks3-go-unit-tests> === PAUSE TestGetStorePathHash/hash_with_invalid_characters_should_error niks3-go-unit-tests> === RUN TestParsePathInfoJSON/whitespace_only niks3-go-unit-tests> === RUN TestGetStorePathHash/hash_with_wrong_length_should_error niks3-go-unit-tests> === PAUSE TestGetStorePathHash/hash_with_wrong_length_should_error niks3-go-unit-tests> === CONT TestGetStorePathHash/hash_with_invalid_characters_should_error niks3-go-unit-tests> === CONT TestGetStorePathHash/hash_with_wrong_length_should_error niks3-go-unit-tests> === CONT TestGetStorePathHash/valid_store_path niks3-go-unit-tests> === CONT TestPathInfoHashCompatibility/old_string_format_with_colon niks3-go-unit-tests> === CONT TestEncodeNixBase32/test_string_hash niks3-go-unit-tests> === CONT TestPathInfoHashCompatibility/old_string_format_with_dash_(SRI) niks3-go-unit-tests> === CONT TestEncodeNixBase32/empty_input niks3-go-unit-tests> === RUN TestFilterOversizedClosures/all_closures_skipped niks3-go-unit-tests> === PAUSE TestFilterOversizedClosures/all_closures_skipped niks3-go-unit-tests> === CONT TestFilterOversizedClosures/no_limit_keeps_everything niks3-go-unit-tests> === CONT TestFilterOversizedClosures/closure_with_oversized_dependency_is_skipped niks3-go-unit-tests> 2026/07/19 13:53:41 WARN Skipping closure: path exceeds server max NAR size top_level_path=/nix/store/cccccccccccccccccccccccccccccccc-wrapper oversized_path=/nix/store/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb-vm-image nar_size=5000 max_nar_size=2000 niks3-go-unit-tests> === CONT TestFilterOversizedClosures/all_closures_skipped niks3-go-unit-tests> 2026/07/19 13:53:41 WARN Skipping closure: path exceeds server max NAR size top_level_path=/nix/store/cccccccccccccccccccccccccccccccc-wrapper oversized_path=/nix/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-small nar_size=1000 max_nar_size=50 niks3-go-unit-tests> --- PASS: TestPartSizeForNAR (0.00s) niks3-go-unit-tests> --- PASS: TestPartSizeForNAR/zero_stays_at_minimum (0.00s) niks3-go-unit-tests> --- PASS: TestPartSizeForNAR/capped_at_5_GiB (0.00s) niks3-go-unit-tests> --- PASS: TestPartSizeForNAR/5_TiB_S3_max_object (0.00s) niks3-go-unit-tests> --- PASS: TestPartSizeForNAR/1_TiB (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: TestDoWithRetry_BodyReplayedViaGetBody (0.01s) niks3-go-unit-tests> === PAUSE TestSetClientTLSErrors/missing_ca_file niks3-go-unit-tests> --- PASS: TestParsePathInfoJSONMultiplePaths (0.00s) niks3-go-unit-tests> --- PASS: TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths (0.00s) niks3-go-unit-tests> --- PASS: TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths (0.00s) niks3-go-unit-tests> === PAUSE TestParsePathInfoJSON/whitespace_only niks3-go-unit-tests> === RUN TestParsePathInfoJSON/invalid_JSON niks3-go-unit-tests> === PAUSE TestParsePathInfoJSON/invalid_JSON niks3-go-unit-tests> === CONT TestParsePathInfoJSON/Nix_format niks3-go-unit-tests> === CONT TestGetStorePathHash/basename_without_hyphen_should_error niks3-go-unit-tests> === CONT TestParsePathInfoJSON/whitespace_only niks3-go-unit-tests> === PAUSE TestSetClientTLS/succeeds_with_client_cert_and_CA niks3-go-unit-tests> === RUN TestSetClientTLSErrors/invalid_ca_file niks3-go-unit-tests> === PAUSE TestSetClientTLSErrors/invalid_ca_file niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback (0.00s) niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback/400_does_not_enable_limiter (0.00s) niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback/429_enables_limiter (0.01s) niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback/200_does_not_enable_limiter (0.00s) niks3-go-unit-tests> --- PASS: TestRateLimiterFeedback/503_enables_limiter (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoCACompatibility (0.01s) 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_-_nar_method (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoCACompatibility/new_structured_format_-_text (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoCACompatibility/old_string_format_-_text (0.00s) niks3-go-unit-tests> --- PASS: TestScriptTokenCachesUntilRefresh (0.02s) niks3-go-unit-tests> === CONT TestParsePathInfoJSON/invalid_JSON niks3-go-unit-tests> --- PASS: TestPathInfoHashCompatibility (0.01s) niks3-go-unit-tests> --- PASS: TestPathInfoHashCompatibility/new_structured_format_with_sha512 (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoHashCompatibility/new_structured_format_-_converts_to_SRI (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoHashCompatibility/old_string_format_with_colon (0.00s) niks3-go-unit-tests> --- PASS: TestPathInfoHashCompatibility/old_string_format_with_dash_(SRI) (0.00s) niks3-go-unit-tests> === CONT TestParsePathInfoJSON/empty_input niks3-go-unit-tests> --- PASS: TestEncodeNixBase32 (0.01s) niks3-go-unit-tests> --- PASS: TestEncodeNixBase32/test_string_hash (0.00s) niks3-go-unit-tests> --- PASS: TestEncodeNixBase32/empty_input (0.00s) niks3-go-unit-tests> === CONT TestParsePathInfoJSON/Lix_format niks3-go-unit-tests> --- PASS: TestFilterOversizedClosures (0.01s) niks3-go-unit-tests> --- PASS: TestFilterOversizedClosures/no_limit_keeps_everything (0.00s) niks3-go-unit-tests> --- PASS: TestFilterOversizedClosures/closure_with_oversized_dependency_is_skipped (0.00s) niks3-go-unit-tests> --- PASS: TestFilterOversizedClosures/all_closures_skipped (0.00s) niks3-go-unit-tests> --- PASS: TestGetStorePathHash (0.01s) niks3-go-unit-tests> --- PASS: TestGetStorePathHash/hash_with_invalid_characters_should_error (0.00s) niks3-go-unit-tests> --- PASS: TestGetStorePathHash/hash_with_wrong_length_should_error (0.00s) niks3-go-unit-tests> --- PASS: TestGetStorePathHash/valid_store_path (0.00s) niks3-go-unit-tests> --- PASS: TestGetStorePathHash/basename_without_hyphen_should_error (0.00s) 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 TestSetClientTLSErrors/missing_cert_file niks3-go-unit-tests> === CONT TestSetClientTLSErrors/invalid_ca_file niks3-go-unit-tests> === CONT TestSetClientTLSErrors/missing_ca_file niks3-go-unit-tests> === CONT TestSetClientTLSErrors/missing_key_file niks3-go-unit-tests> --- PASS: TestConvertHashToNix32 (0.00s) niks3-go-unit-tests> --- PASS: TestConvertHashToNix32/SRI_format_to_Nix32 (0.00s) niks3-go-unit-tests> --- PASS: TestConvertHashToNix32/invalid_format (0.00s) niks3-go-unit-tests> --- PASS: TestConvertHashToNix32/already_Nix32_format (0.00s) niks3-go-unit-tests> === CONT TestSetClientTLS/succeeds_with_client_cert_and_CA niks3-go-unit-tests> --- PASS: TestParsePathInfoJSON (0.01s) niks3-go-unit-tests> --- PASS: TestParsePathInfoJSON/whitespace_only (0.00s) niks3-go-unit-tests> --- PASS: TestParsePathInfoJSON/Nix_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/Lix_format (0.00s) niks3-go-unit-tests> --- PASS: TestSetClientTLSErrors (0.01s) niks3-go-unit-tests> --- PASS: TestSetClientTLSErrors/missing_cert_file (0.00s) niks3-go-unit-tests> --- PASS: TestSetClientTLSErrors/invalid_ca_file (0.00s) niks3-go-unit-tests> --- PASS: TestSetClientTLSErrors/missing_ca_file (0.00s) niks3-go-unit-tests> --- PASS: TestSetClientTLSErrors/missing_key_file (0.00s) niks3-go-unit-tests> --- PASS: TestScriptTokenNoExpiryRerunsEveryCall (0.01s) niks3-go-unit-tests> 2026/07/19 13:53:41 http: TLS handshake error from 127.0.0.1:35658: remote error: tls: bad certificate niks3-go-unit-tests> --- PASS: TestUploadMultipart_SupersededByPeer (0.00s) niks3-go-unit-tests> --- PASS: TestUploadMultipart_SupersededByPeer/exists (0.01s) niks3-go-unit-tests> --- PASS: TestUploadMultipart_SupersededByPeer/missing (0.01s) niks3-go-unit-tests> --- PASS: TestSetClientTLS (0.02s) niks3-go-unit-tests> --- PASS: TestSetClientTLS/rejects_connection_without_client_cert (0.00s) niks3-go-unit-tests> --- PASS: TestSetClientTLS/succeeds_with_client_cert_and_CA (0.00s) niks3-go-unit-tests> --- PASS: TestSetClientTLS/preserves_debug_logging_transport (0.01s) niks3-go-unit-tests> --- PASS: TestDumpPathWriterError (0.03s) niks3-go-unit-tests> --- PASS: TestCaseHackSuffix (0.03s) niks3-go-unit-tests> --- PASS: TestDumpPathSingleFile (0.04s) niks3-go-unit-tests> --- PASS: TestDumpPathMatchesNix (0.07s) 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/postgres2704336244/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/postgres2704336244/data -l logfile start niks3-go-unit-tests> niks3-go-unit-tests> /build/postgres2704336244:5432 - no response niks3-go-unit-tests> 2026-07-19 13:53:43.425 UTC [112] 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-19 13:53:43.426 UTC [112] LOG: listening on Unix socket "/build/postgres2704336244/.s.PGSQL.5432" niks3-go-unit-tests> 2026-07-19 13:53:43.431 UTC [119] LOG: database system was shut down at 2026-07-19 13:53:43 UTC niks3-go-unit-tests> 2026-07-19 13:53:43.435 UTC [112] LOG: database system is ready to accept connections niks3-go-unit-tests> /build/postgres2704336244:5432 - accepting connections niks3-go-unit-tests> {"timestamp":"2026-07-19T13:53:43.821066157Z","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(766)"} niks3-go-unit-tests> niks3-go-unit-tests> thread 'rustfs-worker' (786) 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-19 13:53:43.923 UTC [913] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:43.923 UTC [913] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/19 13:53:43 OK 20241026095416_initial_model.sql (7.21ms) niks3-go-unit-tests> 2026/07/19 13:53:43 OK 20251210153512_drop_unused_gin_index.sql (1.18ms) niks3-go-unit-tests> 2026/07/19 13:53:43 OK 20251218171726_add_pins.sql (2.12ms) niks3-go-unit-tests> 2026/07/19 13:53:43 OK 20260628120000_add_object_size_and_stats.sql (1.85ms) niks3-go-unit-tests> 2026/07/19 13:53:43 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:43 OK 1_commit_pending_closure.sql (1.33ms) niks3-go-unit-tests> 2026/07/19 13:53:43 OK 2_object_stats_trigger.sql (586.95µs) niks3-go-unit-tests> 2026/07/19 13:53:43 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/19 13:53:44 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/07/19 13:53:44 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/07/19 13:53:44 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/07/19 13:53:44 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/07/19 13:53:44 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/07/19 13:53:44 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/07/19 13:53:44 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/07/19 13:53:44 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/07/19 13:53:44 WARN watchdog liveness check failed, skipping heartbeat error="context deadline exceeded" niks3-go-unit-tests> 2026/07/19 13:53:44 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 TestService_createPendingClosureHandler niks3-go-unit-tests> === CONT TestCompleteMultipartUnregistered niks3-go-unit-tests> === CONT TestCreatePendingClosure_SmallNARUsesSimplePUT niks3-go-unit-tests> === CONT TestServerTLSConfig niks3-go-unit-tests> === RUN TestServerTLSConfig/no_client_CA niks3-go-unit-tests> === CONT TestService_cleanupPendingClosuresHandler niks3-go-unit-tests> === CONT TestUploadHandlersRejectOversizedBody niks3-go-unit-tests> === CONT TestUploadHandlersRejectInvalidKeys niks3-go-unit-tests> === RUN TestUploadHandlersRejectInvalidKeys/create_pending_closure_rejects_nix-cache-info niks3-go-unit-tests> === PAUSE TestUploadHandlersRejectInvalidKeys/create_pending_closure_rejects_nix-cache-info niks3-go-unit-tests> === CONT TestIsValidUploadKey niks3-go-unit-tests> === CONT TestProxyWriteTimeout niks3-go-unit-tests> === RUN TestProxyWriteTimeout/narinfo 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 TestReadProxyHead niks3-go-unit-tests> === CONT TestReadProxyInvalidPath niks3-go-unit-tests> === PAUSE TestServerTLSConfig/no_client_CA niks3-go-unit-tests> === RUN TestUploadHandlersRejectInvalidKeys/create_pending_closure_rejects_path_traversal 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 TestProxyWriteTimeout/narinfo niks3-go-unit-tests> --- PASS: TestParseSize (0.00s) niks3-go-unit-tests> === CONT TestReadProxy404 niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Client skipped oversized paths paths=3 nar_bytes=5000000000 niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/build_log_question_mark niks3-go-unit-tests> === RUN TestIsValidUploadKey/build_log_equals niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/build_log_equals niks3-go-unit-tests> === RUN TestIsValidUploadKey/realisation niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/realisation niks3-go-unit-tests> === RUN TestIsValidUploadKey/realisation_plus_in_output niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/realisation_plus_in_output niks3-go-unit-tests> === RUN TestIsValidUploadKey/nix-cache-info niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/nix-cache-info niks3-go-unit-tests> === RUN TestIsValidUploadKey/index.html niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/index.html niks3-go-unit-tests> === RUN TestIsValidUploadKey/narinfo_key,_nar_type niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/narinfo_key,_nar_type niks3-go-unit-tests> === RUN TestIsValidUploadKey/nar_key,_narinfo_type niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/nar_key,_narinfo_type niks3-go-unit-tests> === RUN TestIsValidUploadKey/listing_key,_narinfo_type niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/listing_key,_narinfo_type niks3-go-unit-tests> === RUN TestIsValidUploadKey/traversal niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/traversal niks3-go-unit-tests> === RUN TestIsValidUploadKey/traversal_nar niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/traversal_nar niks3-go-unit-tests> === RUN TestIsValidUploadKey/absolute niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/absolute niks3-go-unit-tests> === RUN TestIsValidUploadKey/empty_key niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/empty_key niks3-go-unit-tests> === RUN TestIsValidUploadKey/unknown_type niks3-go-unit-tests> === PAUSE TestIsValidUploadKey/unknown_type niks3-go-unit-tests> === CONT TestReadProxyNarStreaming niks3-go-unit-tests> === RUN TestServerTLSConfig/missing_CA_file niks3-go-unit-tests> === PAUSE TestServerTLSConfig/missing_CA_file niks3-go-unit-tests> === RUN TestProxyWriteTimeout/1_GiB_nar niks3-go-unit-tests> === PAUSE TestUploadHandlersRejectInvalidKeys/create_pending_closure_rejects_path_traversal 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> === 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> === RUN TestServerTLSConfig/not_a_PEM_file niks3-go-unit-tests> === PAUSE TestServerTLSConfig/not_a_PEM_file niks3-go-unit-tests> === CONT TestReadProxyNarinfo niks3-go-unit-tests> === CONT TestReadProxyNarinfoAlreadyDecompressed 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> === RUN TestIsValidCachePath/log niks3-go-unit-tests> === PAUSE TestIsValidCachePath/log niks3-go-unit-tests> === RUN TestIsValidCachePath/realisation niks3-go-unit-tests> === PAUSE TestIsValidCachePath/realisation niks3-go-unit-tests> === RUN TestIsValidCachePath/nix-cache-info niks3-go-unit-tests> === 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> === RUN TestIsValidCachePath/traversal_parent niks3-go-unit-tests> === PAUSE TestIsValidCachePath/traversal_parent niks3-go-unit-tests> === RUN TestIsValidCachePath/traversal_in_middle niks3-go-unit-tests> === PAUSE TestIsValidCachePath/traversal_in_middle niks3-go-unit-tests> === RUN TestIsValidCachePath/invalid_char_e niks3-go-unit-tests> === PAUSE TestIsValidCachePath/invalid_char_e niks3-go-unit-tests> === RUN TestIsValidCachePath/invalid_char_u niks3-go-unit-tests> === PAUSE TestIsValidCachePath/invalid_char_u niks3-go-unit-tests> === RUN TestIsValidCachePath/random_path niks3-go-unit-tests> === PAUSE TestIsValidCachePath/random_path niks3-go-unit-tests> === RUN TestIsValidCachePath/empty niks3-go-unit-tests> === PAUSE TestIsValidCachePath/empty niks3-go-unit-tests> === RUN TestIsValidCachePath/leading_slash niks3-go-unit-tests> === PAUSE TestIsValidCachePath/leading_slash niks3-go-unit-tests> === RUN TestIsValidCachePath/wrong_extension niks3-go-unit-tests> === PAUSE TestIsValidCachePath/wrong_extension niks3-go-unit-tests> === RUN TestIsValidCachePath/short_hash niks3-go-unit-tests> === PAUSE TestIsValidCachePath/short_hash niks3-go-unit-tests> === CONT 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 TestResurrectedObjectNotDeleted niks3-go-unit-tests> --- PASS: TestSkippedUploadsHandler (0.11s) niks3-go-unit-tests> === CONT TestOrphanedObjectsGCStressTest niks3-go-unit-tests> 2026-07-19 13:53:44.356 UTC [985] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.356 UTC [985] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-19 13:53:44.377 UTC [986] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.377 UTC [986] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-19 13:53:44.382 UTC [987] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.382 UTC [987] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC 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 TestOrphanedObjectsGC niks3-go-unit-tests> 2026-07-19 13:53:44.414 UTC [993] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.414 UTC [993] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-19 13:53:44.415 UTC [994] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.415 UTC [994] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-19 13:53:44.416 UTC [995] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.416 UTC [995] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (33.66ms) niks3-go-unit-tests> 2026-07-19 13:53:44.422 UTC [996] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.422 UTC [996] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (24.8ms) niks3-go-unit-tests> 2026-07-19 13:53:44.426 UTC [997] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.426 UTC [997] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (32.47ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (14.64ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (11.19ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (4.11ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (5.58ms) niks3-go-unit-tests> 2026-07-19 13:53:44.448 UTC [998] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.448 UTC [998] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (5.9ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (10.29ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (14.1ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (17.58ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (4.42ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (19.63ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (17.69ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (3.13ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (2.76ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (19ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (2.85ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (18.1ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (2.71ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (7.82ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (9.38ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (3.2ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (4.39ms) niks3-go-unit-tests> 2026/07/19 13:53:44 WARN Authentication failed token_preview=wrongtoken token_length=10 reason="static API token mismatch" niks3-go-unit-tests> --- PASS: TestService_AuthMiddleware (0.28s) niks3-go-unit-tests> === CONT TestObjectStatsTrigger niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (5.25ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (6.99ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (3.4ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (5.08ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (2.12ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (5.66ms) niks3-go-unit-tests> 2026-07-19 13:53:44.468 UTC [999] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.468 UTC [999] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (6.83ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (6.56ms) niks3-go-unit-tests> 2026-07-19 13:53:44.469 UTC [1000] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.469 UTC [1000] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (3.19ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (7.77ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (7.92ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (17.32ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (13.05ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (23.27ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (15.86ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (13.49ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (15.71ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (5.97ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (3.45ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (3.87ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (4.29ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (3.89ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (5.17ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (3.18ms) niks3-go-unit-tests> 2026-07-19 13:53:44.491 UTC [1003] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.491 UTC [1003] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received cleanup request method=DELETE path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (3.58ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (4.49ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Aborted multipart uploads count=0 niks3-go-unit-tests> 2026-07-19 13:53:44.496 UTC [1004] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.496 UTC [1004] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> --- PASS: TestCreatePendingClosure_SmallNARUsesSimplePUT (0.31s) niks3-go-unit-tests> === CONT TestMultipartCleanup niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> --- PASS: TestService_Rustfstest (0.31s) niks3-go-unit-tests> === CONT TestService_verifyS3Integrity niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (7.62ms) niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> {"timestamp":"2026-07-19T13:53:44.503782427Z","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(766)"} niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (7.96ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (21.83ms) niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received cleanup request method=DELETE path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (22.65ms) niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Aborted multipart uploads count=1 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (4.44ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (3.13ms) niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Registered completed upload object_key=nar/jjjjjjjjjjjjjjjjjjjjjjjjjjjjjj0100000000000000000000.nar.zst niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (3.72ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (2.32ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> --- PASS: TestPresignedUploadRegisteredBeforeCommit (0.32s) niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received complete upload request method=POST path=/api/pending_closures/1/complete niks3-go-unit-tests> === CONT TestService_healthCheckHandler niks3-go-unit-tests> 2026-07-19 13:53:44.515 UTC [993] ERROR: Closure does not exist: id=1 niks3-go-unit-tests> 2026-07-19 13:53:44.515 UTC [993] CONTEXT: PL/pgSQL function commit_pending_closure(bigint) line 16 at RAISE niks3-go-unit-tests> 2026-07-19 13:53:44.515 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.33s) niks3-go-unit-tests> === CONT TestService_NativeMTLS niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received complete multipart upload request method=POST path=/api/multipart/complete niks3-go-unit-tests> 2026-07-19 13:53:44.519 UTC [1011] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.519 UTC [1011] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/19 13:53:44 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.33s) niks3-go-unit-tests> === CONT TestMetricsInventory niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received complete multipart upload request method=POST path=/api/multipart/complete niks3-go-unit-tests> {"timestamp":"2026-07-19T13:53:44.525001406Z","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(766)"} niks3-go-unit-tests> {"timestamp":"2026-07-19T13:53:44.525033566Z","level":"ERROR","fields":{"message":"complete_multipart_upload etag err client=Some(\"deadbeef\"), stored=\"\", part_id=1, bucket=bucket9, 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(766)"} niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (14.42ms) niks3-go-unit-tests> 2026/07/19 13:53:44 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=YjIwNDFmMDUtZDhlYS00M2Y0LTkyNTAtZWIyMjExZjE5N2E2LmQ2NjgyNDE3LWU4OWItNGJlOS04OWQ5LWIyMTgzMjBjZjFkNXgxNzg0NDY5MjI0NTA4NDEwNzM0 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (17.76ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (24.36ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (20.43ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (3.51ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (3.68ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (10.8ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (6.16ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Completed multipart upload object_key=nar/gggggggggggggggggggggggggggggg0300000000000000000000.nar.zst upload_id=YjIwNDFmMDUtZDhlYS00M2Y0LTkyNTAtZWIyMjExZjE5N2E2LmQ2NjgyNDE3LWU4OWItNGJlOS04OWQ5LWIyMTgzMjBjZjFkNXgxNzg0NDY5MjI0NTA4NDEwNzM0 parts=1 niks3-go-unit-tests> --- PASS: TestCompleteMultipartUpload_ErrorButObjectExists (0.35s) niks3-go-unit-tests> === CONT TestNARDeduplicationMetadataUploadBug niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (4.29ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (3.79ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (3.92ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (5.36ms) niks3-go-unit-tests> 2026-07-19 13:53:44.544 UTC [1019] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.544 UTC [1019] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (4.18ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026-07-19 13:53:44.544 UTC [1022] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.544 UTC [1022] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (5.32ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026-07-19 13:53:44.545 UTC [1020] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.545 UTC [1020] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (4.26ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026-07-19 13:53:44.545 UTC [1021] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.545 UTC [1021] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (5.82ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026-07-19 13:53:44.547 UTC [1024] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.547 UTC [1024] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (14.43ms) niks3-go-unit-tests> 2026-07-19 13:53:44.548 UTC [1026] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.548 UTC [1026] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> --- PASS: TestReadProxy404 (0.36s) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (4.14ms) niks3-go-unit-tests> === CONT TestCreatePendingClosureRejectsOversizedNAR niks3-go-unit-tests> 2026/07/19 13:53:44 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> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (4.16ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (2.81ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (4.28ms) niks3-go-unit-tests> --- PASS: TestGenerateLandingPage (0.00s) niks3-go-unit-tests> === CONT TestGCTaskStore_CompletedAllowsNewTask niks3-go-unit-tests> --- PASS: TestGCTaskStore_CompletedAllowsNewTask (0.00s) niks3-go-unit-tests> === CONT TestGracefulShutdownDrainsInflight niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Starting HTTP server address=127.0.0.1:35133 niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received complete multipart upload request method=POST path=/api/multipart/complete niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (2.9ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Shutdown signal received, draining in-flight requests timeout=10s niks3-go-unit-tests> --- PASS: TestReadProxyRangeRequest (0.36s) niks3-go-unit-tests> === CONT TestGCTaskStore_Fail niks3-go-unit-tests> --- PASS: TestGCTaskStore_Fail (0.00s) niks3-go-unit-tests> === CONT TestGCTaskStore_PhaseUpdates niks3-go-unit-tests> --- PASS: TestGCTaskStore_PhaseUpdates (0.00s) niks3-go-unit-tests> === CONT TestGCTaskStore_GetEmpty niks3-go-unit-tests> --- PASS: TestGCTaskStore_GetEmpty (0.00s) niks3-go-unit-tests> === CONT TestGCTaskStore_GetReturnsLatest niks3-go-unit-tests> --- PASS: TestGCTaskStore_GetReturnsLatest (0.00s) niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> === CONT TestGCTaskStore_ConflictDifferentParams niks3-go-unit-tests> 2026-07-19 13:53:44.556 UTC [1027] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.556 UTC [1027] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> --- PASS: TestGCTaskStore_ConflictDifferentParams (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> 2026-07-19 13:53:44.556 UTC [1029] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.556 UTC [1029] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC 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 TestGCMetrics niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (6.13ms) niks3-go-unit-tests> 2026-07-19 13:53:44.558 UTC [1030] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.558 UTC [1030] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> --- PASS: TestReadProxyHead (0.33s) niks3-go-unit-tests> === CONT TestGCTaskStore_DeduplicateSameParams niks3-go-unit-tests> --- PASS: TestGCTaskStore_DeduplicateSameParams (0.00s) niks3-go-unit-tests> === CONT TestGCBugBareHashReferences niks3-go-unit-tests> 2026-07-19 13:53:44.561 UTC [1031] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.561 UTC [1031] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (7.94ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (16.52ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (3.84ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (11.09ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (12.3ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (18.46ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (29.98ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (29.63ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (28.8ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (20.9ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (28.1ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (28.08ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (16.3ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (1.76ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (18.39ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (2.26ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (4.03ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (4.03ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (3.67ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (2.41ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (3.82ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (4.95ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (10.21ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (3.9ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (6.09ms) niks3-go-unit-tests> --- PASS: TestReadProxyConditionalGet (0.39s) niks3-go-unit-tests> === CONT TestPinProtectsFromGC niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (6.7ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (7.09ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (7.06ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (7.02ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (6.98ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (5.73ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (8.21ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (8.42ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (7.21ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (7.71ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (7.9ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (5.59ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (6.96ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (8.45ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (7.02ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (8.24ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (3.63ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (6.92ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (3.48ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (10.03ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (8.91ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (2.95ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (2.43ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (3.26ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (4.26ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (4.1ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (3.98ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (2.88ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (3.82ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (3.9ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (2.55ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (4.05ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (2.38ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (2.28ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (2.34ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (3.3ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (2.64ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> --- PASS: TestReadProxyRootRedirectsToIndexHTML (0.38s) niks3-go-unit-tests> === CONT TestService_AuthMiddleware_OIDC niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (3.68ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> --- PASS: TestReadProxyDisabled (0.38s) niks3-go-unit-tests> === CONT TestClientWithDependencies niks3-go-unit-tests> --- PASS: TestReadProxyNarinfoAlreadyDecompressed (0.32s) niks3-go-unit-tests> === CONT TestClientMultipleUploads niks3-go-unit-tests> 2026/07/19 13:53:44 INFO OIDC provider initialized name=test niks3-go-unit-tests> --- PASS: TestReadProxyInvalidPath (0.41s) niks3-go-unit-tests> === CONT TestClientCADerivations niks3-go-unit-tests> --- PASS: TestReadProxyNarStreaming (0.32s) niks3-go-unit-tests> === CONT TestClientIntegration niks3-go-unit-tests> --- PASS: TestGracefulShutdownDrainsInflight (0.07s) niks3-go-unit-tests> === CONT TestCacheStatsHandler niks3-go-unit-tests> --- PASS: TestReadProxyNarinfo (0.32s) niks3-go-unit-tests> === CONT TestCacheConfigHandler niks3-go-unit-tests> === RUN TestCacheConfigHandler/full_config,_no_issuer niks3-go-unit-tests> === PAUSE TestCacheConfigHandler/full_config,_no_issuer niks3-go-unit-tests> === RUN TestCacheConfigHandler/no_cache_url_configured niks3-go-unit-tests> === PAUSE TestCacheConfigHandler/no_cache_url_configured niks3-go-unit-tests> === RUN TestCacheConfigHandler/no_signing_keys niks3-go-unit-tests> === PAUSE TestCacheConfigHandler/no_signing_keys niks3-go-unit-tests> === RUN TestCacheConfigHandler/issuer_requested_but_no_OIDC_validator niks3-go-unit-tests> === PAUSE TestCacheConfigHandler/issuer_requested_but_no_OIDC_validator niks3-go-unit-tests> === CONT TestService_AuthMiddleware_MTLSBoundSubjects niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026-07-19 13:53:44.652 UTC [1053] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.652 UTC [1053] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-19 13:53:44.660 UTC [1055] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.660 UTC [1055] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-19 13:53:44.660 UTC [1054] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.660 UTC [1054] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-19 13:53:44.662 UTC [1056] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.662 UTC [1056] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-19 13:53:44.664 UTC [1057] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.664 UTC [1057] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-19 13:53:44.668 UTC [1058] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.668 UTC [1058] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> --- PASS: TestResurrectedObjectNotDeleted (0.38s) niks3-go-unit-tests> === CONT TestService_ReadAuthMiddleware niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (25.09ms) niks3-go-unit-tests> 2026-07-19 13:53:44.690 UTC [1060] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.690 UTC [1060] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (5.88ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (20.25ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (15.18ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (15.11ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (15.14ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (2.64ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (2.8ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (2.93ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (2.74ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (12.95ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (7.65ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (4.36ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (4.58ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (3.49ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (5.55ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (5.68ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (6.1ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026-07-19 13:53:44.708 UTC [1062] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.708 UTC [1062] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-19 13:53:44.709 UTC [1063] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.709 UTC [1063] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (8.02ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (8.52ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (16.34ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (19.97ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (21.35ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (20.07ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (15.99ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (29.16ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (16.42ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (2.91ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (4.64ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (2.92ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (2.55ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (5.98ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (5.53ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (2.94ms) niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (5.45ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (5.08ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (5.22ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (4.71ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (6.92ms) niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> --- PASS: TestService_healthCheckHandler (0.23s) niks3-go-unit-tests> === CONT TestService_AuthMiddleware_MTLSProxyHeader niks3-go-unit-tests> 2026/07/19 13:53:44 WARN mTLS auth: subject not in bound subjects subject="CN=reader" niks3-go-unit-tests> 2026/07/19 13:53:44 WARN mTLS auth: subject not in bound subjects subject="CN=writer" niks3-go-unit-tests> --- PASS: TestService_NativeMTLS (0.23s) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (13.04ms) niks3-go-unit-tests> === CONT TestIsValidUploadKey/narinfo niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (13.02ms) niks3-go-unit-tests> === CONT TestIsValidUploadKey/realisation_plus_in_output niks3-go-unit-tests> === CONT TestIsValidUploadKey/unknown_type niks3-go-unit-tests> === CONT TestIsValidUploadKey/empty_key niks3-go-unit-tests> === CONT TestIsValidUploadKey/absolute niks3-go-unit-tests> === CONT TestIsValidUploadKey/traversal_nar niks3-go-unit-tests> === CONT TestIsValidUploadKey/traversal niks3-go-unit-tests> === CONT TestIsValidUploadKey/listing_key,_narinfo_type niks3-go-unit-tests> === CONT TestIsValidUploadKey/nar_key,_narinfo_type niks3-go-unit-tests> === CONT TestIsValidUploadKey/narinfo_key,_nar_type niks3-go-unit-tests> === CONT TestIsValidUploadKey/index.html niks3-go-unit-tests> === CONT TestIsValidUploadKey/nix-cache-info niks3-go-unit-tests> === CONT TestIsValidUploadKey/build_log_home-manager_file niks3-go-unit-tests> === CONT TestIsValidUploadKey/realisation niks3-go-unit-tests> === CONT TestIsValidUploadKey/build_log_equals niks3-go-unit-tests> === CONT TestIsValidUploadKey/build_log_question_mark niks3-go-unit-tests> === CONT TestIsValidUploadKey/build_log_plus_in_name niks3-go-unit-tests> === CONT TestIsValidUploadKey/nar_plain niks3-go-unit-tests> === CONT TestIsValidUploadKey/build_log niks3-go-unit-tests> === CONT TestIsValidUploadKey/listing niks3-go-unit-tests> === CONT TestIsValidUploadKey/nar_xz niks3-go-unit-tests> === CONT TestIsValidUploadKey/nar_zst niks3-go-unit-tests> --- PASS: TestIsValidUploadKey (0.11s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/narinfo (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/realisation_plus_in_output (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/unknown_type (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/empty_key (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/absolute (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/traversal_nar (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/traversal (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/listing_key,_narinfo_type (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/nar_key,_narinfo_type (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/narinfo_key,_nar_type (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/index.html (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/nix-cache-info (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/build_log_home-manager_file (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/realisation (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/build_log_equals (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/build_log_question_mark (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/build_log_plus_in_name (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/nar_plain (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_xz (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidUploadKey/nar_zst (0.00s) niks3-go-unit-tests> === CONT TestProxyWriteTimeout/narinfo niks3-go-unit-tests> === CONT TestProxyWriteTimeout/10_GiB_nar niks3-go-unit-tests> === CONT TestProxyWriteTimeout/unknown_size niks3-go-unit-tests> === CONT TestProxyWriteTimeout/1_GiB_nar niks3-go-unit-tests> --- PASS: TestProxyWriteTimeout (0.11s) niks3-go-unit-tests> --- PASS: TestProxyWriteTimeout/narinfo (0.00s) niks3-go-unit-tests> --- PASS: TestProxyWriteTimeout/10_GiB_nar (0.00s) niks3-go-unit-tests> --- PASS: TestProxyWriteTimeout/unknown_size (0.00s) niks3-go-unit-tests> --- PASS: TestProxyWriteTimeout/1_GiB_nar (0.00s) niks3-go-unit-tests> === CONT TestUploadHandlersRejectInvalidKeys/create_pending_closure_rejects_nix-cache-info niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received uploads request method=POST path=/ niks3-go-unit-tests> === CONT TestUploadHandlersRejectInvalidKeys/request_more_parts_rejects_non-NAR_key niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received request for more parts method=POST path=/ niks3-go-unit-tests> === CONT TestUploadHandlersRejectInvalidKeys/complete_multipart_rejects_non-NAR_key niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (5.29ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (2.46ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (2.17ms) niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received complete multipart upload request method=POST path=/ niks3-go-unit-tests> === CONT TestUploadHandlersRejectInvalidKeys/create_pending_closure_rejects_path_traversal niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received uploads request method=POST path=/ niks3-go-unit-tests> --- PASS: TestUploadHandlersRejectInvalidKeys (0.11s) niks3-go-unit-tests> --- PASS: TestUploadHandlersRejectInvalidKeys/create_pending_closure_rejects_nix-cache-info (0.00s) niks3-go-unit-tests> --- PASS: TestUploadHandlersRejectInvalidKeys/request_more_parts_rejects_non-NAR_key (0.00s) niks3-go-unit-tests> --- PASS: TestUploadHandlersRejectInvalidKeys/complete_multipart_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 TestServerTLSConfig/no_client_CA niks3-go-unit-tests> === CONT TestServerTLSConfig/missing_CA_file niks3-go-unit-tests> === CONT TestServerTLSConfig/not_a_PEM_file niks3-go-unit-tests> --- PASS: TestServerTLSConfig (0.11s) niks3-go-unit-tests> --- PASS: TestServerTLSConfig/no_client_CA (0.00s) niks3-go-unit-tests> --- PASS: TestServerTLSConfig/missing_CA_file (0.00s) niks3-go-unit-tests> --- PASS: TestServerTLSConfig/not_a_PEM_file (0.00s) niks3-go-unit-tests> === CONT TestIsValidCachePath/narinfo niks3-go-unit-tests> === CONT TestIsValidCachePath/index.html 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/empty niks3-go-unit-tests> === CONT TestIsValidCachePath/random_path niks3-go-unit-tests> === CONT TestIsValidCachePath/invalid_char_u niks3-go-unit-tests> === CONT TestIsValidCachePath/invalid_char_e niks3-go-unit-tests> === CONT TestIsValidCachePath/traversal_parent niks3-go-unit-tests> === CONT TestIsValidCachePath/nar_uncompressed 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_xz niks3-go-unit-tests> === CONT TestIsValidCachePath/nar_bz2 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_in_middle 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/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/empty (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/random_path (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/invalid_char_u (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/invalid_char_e (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/traversal_parent (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/nar_uncompressed (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_xz (0.00s) niks3-go-unit-tests> --- PASS: TestIsValidCachePath/nar_bz2 (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_in_middle (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/multi-range_ignored niks3-go-unit-tests> === CONT TestParseSingleRange/malformed_no_dash niks3-go-unit-tests> === CONT TestParseSingleRange/closed niks3-go-unit-tests> === CONT TestParseSingleRange/unknown_unit niks3-go-unit-tests> === CONT TestParseSingleRange/malformed_end_before_start niks3-go-unit-tests> === CONT TestParseSingleRange/malformed_both_empty 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/multi-range_ignored (0.00s) niks3-go-unit-tests> --- PASS: TestParseSingleRange/malformed_no_dash (0.00s) niks3-go-unit-tests> --- PASS: TestParseSingleRange/closed (0.00s) niks3-go-unit-tests> --- PASS: TestParseSingleRange/unknown_unit (0.00s) niks3-go-unit-tests> --- PASS: TestParseSingleRange/malformed_end_before_start (0.00s) niks3-go-unit-tests> --- PASS: TestParseSingleRange/malformed_both_empty (0.00s) niks3-go-unit-tests> === CONT TestUploadHandlersRejectOversizedBody/create_pending_closure niks3-go-unit-tests> 2026-07-19 13:53:44.748 UTC [1065] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.748 UTC [1065] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received uploads request method=POST path=/ niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (4.79ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (6.56ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (6.6ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (3.3ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> --- PASS: TestMetricsInventory (0.24s) niks3-go-unit-tests> === CONT TestUploadHandlersRejectOversizedBody/request_more_parts niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received request for more parts method=POST path=/ niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (5.61ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (6.89ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> --- PASS: TestObjectStatsTrigger (0.30s) niks3-go-unit-tests> === CONT TestUploadHandlersRejectOversizedBody/complete_multipart niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received complete multipart upload request method=POST path=/ niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Created nix-cache-info in bucket bucket=bucket32 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (3.66ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (19.41ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (21.05ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (25.23ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (4.92ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (2.84ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (3.37ms) niks3-go-unit-tests> 2026-07-19 13:53:44.793 UTC [1070] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.793 UTC [1070] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-19 13:53:44.793 UTC [1073] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.793 UTC [1073] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (4.49ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026-07-19 13:53:44.794 UTC [1072] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.794 UTC [1072] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-19 13:53:44.794 UTC [1071] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.794 UTC [1071] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-19 13:53:44.794 UTC [1080] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.794 UTC [1080] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026-07-19 13:53:44.794 UTC [1074] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.794 UTC [1074] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Aborted multipart uploads count=0 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (3.08ms) niks3-go-unit-tests> 2026-07-19 13:53:44.798 UTC [1092] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.798 UTC [1092] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/19 13:53:44 WARN Force mode enabled - objects will be deleted immediately without grace period niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (1.9ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 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/19 13:53:44 INFO Vacuumed table table=pending_closures niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Vacuumed table table=pending_objects niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Vacuumed table table=multipart_uploads niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Vacuumed table table=closures niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Vacuumed table table=objects niks3-go-unit-tests> === CONT TestClientErrorHandling/InvalidStorePath niks3-go-unit-tests> === NAME TestNARDeduplicationMetadataUploadBug niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Created nix-cache-info in bucket bucket=bucket35 niks3-go-unit-tests> metadata_upload_test.go:48: First store path: /build/TestNARDeduplicationMetadataUploadBug843451434/001/store/0padsyici49g62klwi74l6fi9pgr569s-file1.txt niks3-go-unit-tests> === CONT TestClientErrorHandling/ServerNotAvailable niks3-go-unit-tests> 2026-07-19 13:53:44.809 UTC [1093] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.809 UTC [1093] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> --- PASS: TestGCMetrics (0.25s) niks3-go-unit-tests> === CONT TestClientErrorHandling/InvalidAuthToken niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (11.22ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (11.91ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (12.59ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (12.3ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (12.37ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (12.41ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (1.66ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (10.2ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (1.41ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (1.43ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (1.85ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (1.58ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (1.69ms) niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received complete multipart upload request method=POST path=/api/multipart/complete niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (3.32ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (5.29ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (3.77ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (3.87ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (4.06ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (3.96ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (3.84ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (2.98ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (3.85ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (4.13ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (4.03ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (4.25ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (4.23ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (3.66ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (3.8ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (9.31ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (2.61ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (3.21ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (3.61ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (3.74ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (3.35ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (3.06ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (2.87ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (3.04ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (2.03ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (1.85ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (1.91ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (1.69ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (1.97ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (2.03ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (2.63ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (2.03ms) niks3-go-unit-tests> 2026/07/19 13:53:44 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 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> 2026/07/19 13:53:44 WARN mTLS auth: subject not in bound subjects subject="CN=untrusted,O=Other" 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> 2026/07/19 13:53:44 WARN mTLS auth: bound subjects configured but subject DN unavailable niks3-go-unit-tests> === CONT TestService_AuthMiddleware_OIDC/valid_OIDC_token niks3-go-unit-tests> 2026/07/19 13:53:44 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> === CONT TestService_AuthMiddleware_OIDC/malformed_token_rejected niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Created nix-cache-info in bucket bucket=bucket36 niks3-go-unit-tests> 2026/07/19 13:53:44 WARN Authentication failed token_preview=not-a-valid-jwt token_length=15 oidc_error="no provider could verify the token (signature or issuer mismatch)" oidc_provider="" tried_providers=[test] niks3-go-unit-tests> === CONT TestService_AuthMiddleware_OIDC/OIDC_token_with_wrong_org_rejected niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Created nix-cache-info in bucket bucket=bucket37 niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Created nix-cache-info in bucket bucket=bucket39 niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Created nix-cache-info in bucket bucket=bucket42 niks3-go-unit-tests> 2026/07/19 13:53:44 INFO OIDC auth successful provider=test niks3-go-unit-tests> 2026/07/19 13:53:44 WARN Authentication failed token_preview=eyJhbGciOi...IXSuNZt3Zw 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> === CONT TestService_AuthMiddleware_OIDC/static_token_still_works_with_OIDC_configured niks3-go-unit-tests> --- PASS: TestService_AuthMiddleware_OIDC (0.22s) niks3-go-unit-tests> --- PASS: TestService_AuthMiddleware_OIDC/malformed_token_rejected (0.00s) niks3-go-unit-tests> --- PASS: TestService_AuthMiddleware_OIDC/valid_OIDC_token (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/static_token_still_works_with_OIDC_configured (0.00s) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (6.84ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (2.39ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (1.98ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> --- PASS: TestCacheStatsHandler (0.22s) niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Completed multipart upload object_key=nar/0000000000000000000000000000000000000000000000000000.nar.zst upload_id=YjIwNDFmMDUtZDhlYS00M2Y0LTkyNTAtZWIyMjExZjE5N2E2Ljk0NTE2ZmNlLTgzY2UtNDQ2My04MDFjLTk2ZjU4NmVkODUyMXgxNzg0NDY5MjI0NTA0OTkxNzg2 parts=10 niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received complete upload request method=POST path=/api/pending_closures/1/complete niks3-go-unit-tests> 2026/07/19 13:53:44 WARN mTLS auth: subject not in bound subjects subject="CN=writer" niks3-go-unit-tests> --- PASS: TestService_ReadAuthMiddleware (0.16s) niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Completed upload id=1 niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received get closure request method=GET path=/api/closures/00000000000000000000000000000000 niks3-go-unit-tests> 2026-07-19 13:53:44.851 UTC [1159] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.851 UTC [1159] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Starting cleanup of old closures method=DELETE path=/api/closures niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received cleanup request method=DELETE path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Aborted multipart uploads count=1 niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Aborted multipart uploads count=0 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (9.11ms) niks3-go-unit-tests> --- PASS: TestMultipartCleanup (0.37s) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (1.73ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (2.59ms) niks3-go-unit-tests> === NAME TestClientMultipleUploads niks3-go-unit-tests> client_integration_test.go:338: Created store path 0: /build/TestClientMultipleUploads781983143/001/store/30jzv5jvjjj0fsp1hsndy6bcl9m30j8n-test-file-0.txt niks3-go-unit-tests> 2026/07/19 13:53:44 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/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (3ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> === NAME TestClientIntegration niks3-go-unit-tests> client_integration_test.go:276: Created store path: /build/TestClientIntegration3912713474/002/store/rjwbvsjqs9rcc1661y2smw64d5i34cvs-test-file.txt niks3-go-unit-tests> 2026/07/19 13:53:44 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/19 13:53:44 INFO Received complete multipart upload request method=POST path=/api/multipart/complete niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (26.11ms) niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Vacuumed table table=pending_closures niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (2.24ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> === NAME TestPinProtectsFromGC niks3-go-unit-tests> client_integration_test.go:646: Pinned store path: /build/TestPinProtectsFromGC1928702268/001/store/r28z3xmpcnkz1whcb6ha100h37w6wq52-pinned-file.txt niks3-go-unit-tests> client_integration_test.go:647: Unpinned store path: /build/TestPinProtectsFromGC1928702268/001/store/hmzif7cpwchifa2arqibjq95piqg8yn8-unpinned-file.txt niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Vacuumed table table=pending_objects niks3-go-unit-tests> --- PASS: TestService_AuthMiddleware_MTLSProxyHeader (0.17s) niks3-go-unit-tests> 2026-07-19 13:53:44.911 UTC [1352] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.911 UTC [1352] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> === NAME TestClientMultipleUploads niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Vacuumed table table=multipart_uploads niks3-go-unit-tests> client_integration_test.go:338: Created store path 1: /build/TestClientMultipleUploads781983143/001/store/cicjrln9bgmcnwm8y6w5kxqxyj4rhb5q-test-file-1.txt niks3-go-unit-tests> 2026-07-19 13:53:44.913 UTC [1361] ERROR: relation "goose_db_version" does not exist at character 36 niks3-go-unit-tests> 2026-07-19 13:53:44.913 UTC [1361] STATEMENT: SELECT version_id, is_applied from goose_db_version ORDER BY id DESC niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Vacuumed table table=closures niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Vacuumed table table=objects niks3-go-unit-tests> 2026/07/19 13:53:44 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> === NAME TestClientCADerivations niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Completed multipart upload object_key=nar/hhhhhhhhhhhhhhhhhhhhhhhhhhhhhh0100000000000000000000.nar.zst upload_id=YjIwNDFmMDUtZDhlYS00M2Y0LTkyNTAtZWIyMjExZjE5N2E2LjVhYjJlNjMzLTY4ZjAtNDI3Yy1iM2JiLTA2YjUzNjgzZjlkNXgxNzg0NDY5MjI0NTYyNjY5MTU2 parts=12 niks3-go-unit-tests> client_ca_test.go:136: Built CA derivation: /build/TestClientCADerivations3133163643/001/store/hiiyppf72j087s5ysazspmxgbijv7gin-ca-test niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Uploading 1 paths to 127.0.0.1 (0 already cached) niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Uploading 0padsyici49g62klwi74l6fi9pgr569s-file1.txt (160B) niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (9.27ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20241026095416_initial_model.sql (8.27ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (1.14ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251210153512_drop_unused_gin_index.sql (1.49ms) niks3-go-unit-tests> === NAME TestClientWithDependencies niks3-go-unit-tests> client_integration_test.go:593: Built derivation: /build/TestClientWithDependencies4781385/001/store/n5qk8xk8crfa3gx34cpklj64d6mx8x3j-test-script niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20251218171726_add_pins.sql (2.5ms) niks3-go-unit-tests> 2026/07/19 13:53:44 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/19 13:53:44 OK 20251218171726_add_pins.sql (2.51ms) niks3-go-unit-tests> --- PASS: TestCompletedNarNotReofferedAcrossClosures (0.74s) niks3-go-unit-tests> 2026/07/19 13:53:44 WARN Failed to register uploaded object key=0padsyici49g62klwi74l6fi9pgr569s.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received sign narinfos request method=POST path=/api/pending_closures/1/sign niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Signed narinfos id=1 count=1 niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Uploading 1 narinfos niks3-go-unit-tests> === NAME TestOrphanedObjectsGC niks3-go-unit-tests> orphaned_objects_gc_test.go:290: GC Test Summary: 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.55s) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (5.89ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 20260628120000_add_object_size_and_stats.sql (5.74ms) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: successfully migrated database to version: 20260628120000 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (1.65ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 1_commit_pending_closure.sql (1.59ms) niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (580.87µs) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 OK 2_object_stats_trigger.sql (755.31µs) niks3-go-unit-tests> 2026/07/19 13:53:44 goose: up to current file version: 2 niks3-go-unit-tests> 2026/07/19 13:53:44 WARN Failed to register uploaded object key=0padsyici49g62klwi74l6fi9pgr569s.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received complete upload request method=POST path=/api/pending_closures/1/complete niks3-go-unit-tests> 2026/07/19 13:53:44 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 TestClientMultipleUploads niks3-go-unit-tests> client_integration_test.go:338: Created store path 2: /build/TestClientMultipleUploads781983143/001/store/g0dyij9awdmz6nrs34a0l705a9bwkchw-test-file-2.txt niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Completed upload id=1 niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Upload complete. (104ms) 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/TestNARDeduplicationMetadataUploadBug843451434/001/store/0padsyici49g62klwi74l6fi9pgr569s-file1.txt niks3-go-unit-tests> URL: nar/1byf36hhc5sn8lvwqfkjh3ybgn76slmx8naakslrypxs6mna71rf.nar.zst niks3-go-unit-tests> Compression: zstd niks3-go-unit-tests> NarHash: sha256:1byf36hhc5sn8lvwqfkjh3ybgn76slmx8naakslrypxs6mna71rf niks3-go-unit-tests> NarSize: 160 niks3-go-unit-tests> References: niks3-go-unit-tests> CA: fixed:r:sha256:1byf36hhc5sn8lvwqfkjh3ybgn76slmx8naakslrypxs6mna71rf niks3-go-unit-tests> metadata_upload_test.go:55: Retrieved .ls file from S3 (compressed size: 77 bytes) niks3-go-unit-tests> metadata_upload_test.go:55: Decompressed .ls content (64 bytes): niks3-go-unit-tests> {"version":1,"root":{"type":"regular","size":44,"narOffset":96}} niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received get closure request method=GET path=/api/closures/00000000000000000000000000000000 niks3-go-unit-tests> --- PASS: TestService_createPendingClosureHandler (0.77s) 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 TestClientWithDependencies niks3-go-unit-tests> client_integration_test.go:595: Found 1 dependencies (including self) niks3-go-unit-tests> 2026/07/19 13:53:44 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/19 13:53:44 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Uploading 1 paths to 127.0.0.1 (0 already cached) niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Uploading rjwbvsjqs9rcc1661y2smw64d5i34cvs-test-file.txt (152B) niks3-go-unit-tests> 2026/07/19 13:53:44 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/19 13:53:44 WARN Failed to register uploaded object key=rjwbvsjqs9rcc1661y2smw64d5i34cvs.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received sign narinfos request method=POST path=/api/pending_closures/1/sign niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Signed narinfos id=1 count=1 niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Uploading 1 narinfos niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received complete multipart upload request method=POST path=/api/multipart/complete niks3-go-unit-tests> 2026/07/19 13:53:44 WARN Failed to register uploaded object key=rjwbvsjqs9rcc1661y2smw64d5i34cvs.narinfo error="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/TestNARDeduplicationMetadataUploadBug843451434/001/store/5w3yfg13cr5nw21jlp668a1ipwzyll0c-file2.txt niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Received complete upload request method=POST path=/api/pending_closures/1/complete niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Completed upload id=1 niks3-go-unit-tests> 2026/07/19 13:53:44 INFO Upload complete. (89ms) 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/TestClientIntegration3912713474/002/store/rjwbvsjqs9rcc1661y2smw64d5i34cvs-test-file.txt niks3-go-unit-tests> URL: nar/11l1b7hsy9g9pz8i2rcn4n128l6pyr2yf58d49r12hr5caw9dzk1.nar.zst niks3-go-unit-tests> Compression: zstd niks3-go-unit-tests> NarHash: sha256:11l1b7hsy9g9pz8i2rcn4n128l6pyr2yf58d49r12hr5caw9dzk1 niks3-go-unit-tests> NarSize: 152 niks3-go-unit-tests> References: niks3-go-unit-tests> CA: fixed:r:sha256:11l1b7hsy9g9pz8i2rcn4n128l6pyr2yf58d49r12hr5caw9dzk1 niks3-go-unit-tests> client_integration_test.go: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/19 13:53:45 INFO Completed multipart upload object_key=nar/gggggggggggggggggggggggggggggg0100000000000000000000.nar.zst upload_id=YjIwNDFmMDUtZDhlYS00M2Y0LTkyNTAtZWIyMjExZjE5N2E2LmVkODMwZjMwLTkwNmUtNDUyYi04YzlkLTY5ZTkyYTNhMjQzNHgxNzg0NDY5MjI0NjMxMDE4Njkx parts=12 niks3-go-unit-tests> --- PASS: TestGCBugBareHashReferences (0.45s) niks3-go-unit-tests> --- PASS: TestRedundantMultipartUpload (0.72s) niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:45 WARN Request failed, retrying attempt=2 max_attempts=6 backoff=184.044164ms 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/19 13:53:45 INFO Uploading 1 paths to 127.0.0.1 (0 already cached) niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Uploading r28z3xmpcnkz1whcb6ha100h37w6wq52-pinned-file.txt (128B) niks3-go-unit-tests> 2026/07/19 13:53:45 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/19 13:53:45 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/19 13:53:45 WARN Failed to register uploaded object key=r28z3xmpcnkz1whcb6ha100h37w6wq52.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received sign narinfos request method=POST path=/api/pending_closures/1/sign niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Signed narinfos id=1 count=1 niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Uploading 1 narinfos niks3-go-unit-tests> 2026/07/19 13:53:45 WARN Failed to register uploaded object key=r28z3xmpcnkz1whcb6ha100h37w6wq52.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received complete upload request method=POST path=/api/pending_closures/1/complete niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Uploading 1 paths to 127.0.0.1 (0 already cached) niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Uploading n5qk8xk8crfa3gx34cpklj64d6mx8x3j-test-script (136B) niks3-go-unit-tests> 2026/07/19 13:53:45 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/19 13:53:45 INFO Starting cleanup of old closures method=DELETE path=/api/closures niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Garbage collection started niks3-go-unit-tests> 2026/07/19 13:53:45 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/19 13:53:45 WARN Failed to register uploaded object key=log/nq2p11pki00zaxdh976i8ranv9fmas21-test-script.drv error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/19 13:53:45 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/19 13:53:45 INFO Received complete multipart upload request method=POST path=/api/multipart/complete niks3-go-unit-tests> 2026/07/19 13:53:45 WARN Failed to register uploaded object key=n5qk8xk8crfa3gx34cpklj64d6mx8x3j.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received sign narinfos request method=POST path=/api/pending_closures/1/sign niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Completed upload id=1 niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Signed narinfos id=1 count=1 niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Upload complete. (94ms) niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Uploading 1 narinfos niks3-go-unit-tests> 2026/07/19 13:53:45 WARN Failed to register uploaded object key=n5qk8xk8crfa3gx34cpklj64d6mx8x3j.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received complete upload request method=POST path=/api/pending_closures/1/complete niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Aborted multipart uploads count=0 niks3-go-unit-tests> 2026/07/19 13:53:45 WARN Force mode enabled - objects will be deleted immediately without grace period niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Completed upload id=1 niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Upload complete. (52ms) niks3-go-unit-tests> 2026/07/19 13:53:45 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 TestClientWithDependencies niks3-go-unit-tests> client_integration_test.go:597: Skipping nix copy test - isolated store (/build/TestClientWithDependencies4781385/001/store) requires matching store prefix niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Completed multipart upload object_key=nar/dadb44fdadb44fdadb44fdadb44f000000000000000000000000.nar.zst upload_id=YjIwNDFmMDUtZDhlYS00M2Y0LTkyNTAtZWIyMjExZjE5N2E2LmMyMWZhM2IxLWE0ODItNGQ2My05ZTBmLWM1NDc4NjliN2YyZXgxNzg0NDY5MjI0NzQwOTU4NDE1 parts=10 niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received complete upload request method=POST path=/api/pending_closures/1/complete niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Completed upload id=1 niks3-go-unit-tests> --- PASS: TestClientWithDependencies (0.44s) niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Object in database but missing from S3 key=dadb44fdadb44fdadb44fdadb44f0000.narinfo niks3-go-unit-tests> 2026/07/19 13:53:45 WARN Found objects in DB but missing from S3, will re-upload count=1 niks3-go-unit-tests> --- PASS: TestService_verifyS3Integrity (0.56s) niks3-go-unit-tests> 2026/07/19 13:53:45 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/19 13:53:45 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Uploading 1 paths to 127.0.0.1 (0 already cached) niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Uploading hiiyppf72j087s5ysazspmxgbijv7gin-ca-test (144B) niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:45 WARN Failed to register uploaded object key=log/zmaz0m32hccz6viybp25710lh8mfxbwf-ca-test.drv error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/19 13:53:45 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/19 13:53:45 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:45 WARN Failed to register uploaded object key=hiiyppf72j087s5ysazspmxgbijv7gin.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received sign narinfos request method=POST path=/api/pending_closures/1/sign niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Signed narinfos id=1 count=1 niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Uploading 1 narinfos niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Uploading 3 paths to 127.0.0.1 (0 already cached) niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Uploading g0dyij9awdmz6nrs34a0l705a9bwkchw-test-file-2.txt (160B) niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Uploading cicjrln9bgmcnwm8y6w5kxqxyj4rhb5q-test-file-1.txt (160B) niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Uploading 30jzv5jvjjj0fsp1hsndy6bcl9m30j8n-test-file-0.txt (160B) niks3-go-unit-tests> 2026/07/19 13:53:45 WARN Failed to register uploaded object key=hiiyppf72j087s5ysazspmxgbijv7gin.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received complete upload request method=POST path=/api/pending_closures/1/complete niks3-go-unit-tests> 2026/07/19 13:53:45 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/19 13:53:45 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/19 13:53:45 WARN Authentication failed token_preview=invalid-token token_length=13 reason="static API token mismatch" niks3-go-unit-tests> 2026/07/19 13:53:45 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/19 13:53:45 INFO Completed upload id=1 niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Upload complete. (96ms) niks3-go-unit-tests> 2026/07/19 13:53:45 WARN Failed to register uploaded object key=30jzv5jvjjj0fsp1hsndy6bcl9m30j8n.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/19 13:53:45 WARN Failed to register uploaded object key=g0dyij9awdmz6nrs34a0l705a9bwkchw.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/19 13:53:45 WARN Failed to register uploaded object key=cicjrln9bgmcnwm8y6w5kxqxyj4rhb5q.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received sign narinfos request method=POST path=/api/pending_closures/1/sign niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Signed narinfos id=1 count=1 niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received sign narinfos request method=POST path=/api/pending_closures/2/sign niks3-go-unit-tests> === NAME TestClientCADerivations niks3-go-unit-tests> client_ca_test.go:180: Narinfo contains CA field: StorePath: /build/TestClientCADerivations3133163643/001/store/hiiyppf72j087s5ysazspmxgbijv7gin-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> 2026/07/19 13:53:45 INFO Signed narinfos id=2 count=1 niks3-go-unit-tests> NarSize: 144 niks3-go-unit-tests> References: niks3-go-unit-tests> Deriver: /build/TestClientCADerivations3133163643/001/store/zmaz0m32hccz6viybp25710lh8mfxbwf-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/19 13:53:45 INFO Received sign narinfos request method=POST path=/api/pending_closures/3/sign niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Signed narinfos id=3 count=1 niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Uploading 3 narinfos 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/19 13:53:45 WARN Failed to register uploaded object key=cicjrln9bgmcnwm8y6w5kxqxyj4rhb5q.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:45 WARN Failed to register uploaded object key=g0dyij9awdmz6nrs34a0l705a9bwkchw.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/19 13:53:45 WARN Failed to register uploaded object key=30jzv5jvjjj0fsp1hsndy6bcl9m30j8n.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received complete upload request method=POST path=/api/pending_closures/1/complete niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Uploading 0 paths to 127.0.0.1 (1 already cached) niks3-go-unit-tests> 2026/07/19 13:53:45 WARN Failed to register uploaded object key=5w3yfg13cr5nw21jlp668a1ipwzyll0c.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received sign narinfos request method=POST path=/api/pending_closures/2/sign niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Completed upload id=1 niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Signed narinfos id=2 count=1 niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Uploading 1 narinfos niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received complete upload request method=POST path=/api/pending_closures/2/complete niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Completed upload id=2 niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received complete upload request method=POST path=/api/pending_closures/3/complete niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Completed upload id=3 niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Upload complete. (116ms) niks3-go-unit-tests> === NAME TestClientMultipleUploads niks3-go-unit-tests> client_integration_test.go:349: Uploaded 3 paths in 153.549791ms niks3-go-unit-tests> 2026/07/19 13:53:45 WARN Failed to register uploaded object key=5w3yfg13cr5nw21jlp668a1ipwzyll0c.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received complete upload request method=POST path=/api/pending_closures/2/complete niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Completed upload id=2 niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Upload complete. (74ms) 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/TestNARDeduplicationMetadataUploadBug843451434/001/store/5w3yfg13cr5nw21jlp668a1ipwzyll0c-file2.txt niks3-go-unit-tests> URL: nar/1byf36hhc5sn8lvwqfkjh3ybgn76slmx8naakslrypxs6mna71rf.nar.zst niks3-go-unit-tests> Compression: zstd niks3-go-unit-tests> NarHash: sha256:1byf36hhc5sn8lvwqfkjh3ybgn76slmx8naakslrypxs6mna71rf niks3-go-unit-tests> NarSize: 160 niks3-go-unit-tests> References: niks3-go-unit-tests> CA: fixed:r:sha256:1byf36hhc5sn8lvwqfkjh3ybgn76slmx8naakslrypxs6mna71rf niks3-go-unit-tests> metadata_upload_test.go:77: Retrieved .ls file from S3 (compressed size: 62 bytes) niks3-go-unit-tests> metadata_upload_test.go:77: Decompressed .ls content (49 bytes): niks3-go-unit-tests> {"version":1,"root":{"type":"regular","size":44}} niks3-go-unit-tests> 2026/07/19 13:53:45 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> --- PASS: TestClientMultipleUploads (0.49s) niks3-go-unit-tests> --- PASS: TestNARDeduplicationMetadataUploadBug (0.57s) niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received uploads request method=POST path=/api/pending_closures niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Uploading 1 paths to 127.0.0.1 (0 already cached) niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Uploading hmzif7cpwchifa2arqibjq95piqg8yn8-unpinned-file.txt (128B) niks3-go-unit-tests> 2026/07/19 13:53:45 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/19 13:53:45 WARN Failed to register uploaded object key=hmzif7cpwchifa2arqibjq95piqg8yn8.ls error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received sign narinfos request method=POST path=/api/pending_closures/2/sign niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Signed narinfos id=2 count=1 niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Uploading 1 narinfos niks3-go-unit-tests> 2026/07/19 13:53:45 WARN Failed to register uploaded object key=hmzif7cpwchifa2arqibjq95piqg8yn8.narinfo error="server returned 404: 404 page not found\n" niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received complete upload request method=POST path=/api/pending_closures/2/complete niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Completed upload id=2 niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Upload complete. (80ms) niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Received create pin request method=POST path=/api/pins/myapp niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Created/updated pin name=myapp store_path=/build/TestPinProtectsFromGC1928702268/001/store/r28z3xmpcnkz1whcb6ha100h37w6wq52-pinned-file.txt narinfo_key=r28z3xmpcnkz1whcb6ha100h37w6wq52.narinfo niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Starting cleanup of old closures method=DELETE path=/api/closures niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Garbage collection started niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Aborted multipart uploads count=0 niks3-go-unit-tests> 2026/07/19 13:53:45 WARN Force mode enabled - objects will be deleted immediately without grace period niks3-go-unit-tests> 2026/07/19 13:53:45 WARN Request failed, retrying attempt=3 max_attempts=6 backoff=424.426912ms 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> === 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://bucket42?endpoint=http://localhost:45895®ion=eu-west-1' is for Nix stores with prefix '/nix/store', not '/build/TestClientCADerivations3133163643/001/store' niks3-go-unit-tests> client_ca_test.go:259: nix copy failed (might be expected with isolated stores): exit status 1 niks3-go-unit-tests> --- PASS: TestClientCADerivations (0.61s) niks3-go-unit-tests> --- PASS: TestUploadHandlersRejectOversizedBody (0.20s) niks3-go-unit-tests> --- PASS: TestUploadHandlersRejectOversizedBody/complete_multipart (0.05s) niks3-go-unit-tests> --- PASS: TestUploadHandlersRejectOversizedBody/request_more_parts (0.05s) niks3-go-unit-tests> --- PASS: TestUploadHandlersRejectOversizedBody/create_pending_closure (0.76s) 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/19 13:53:45 WARN Request failed, retrying attempt=4 max_attempts=6 backoff=824.210263ms 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/19 13:53:45 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/19 13:53:45 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/19 13:53:45 INFO Vacuumed table table=pending_closures niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Vacuumed table table=pending_closures niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Vacuumed table table=pending_objects niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Vacuumed table table=multipart_uploads niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Vacuumed table table=pending_objects niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Vacuumed table table=multipart_uploads niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Vacuumed table table=closures niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Vacuumed table table=closures niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Vacuumed table table=objects niks3-go-unit-tests> 2026/07/19 13:53:45 INFO Vacuumed table table=objects 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.43s) niks3-go-unit-tests> 2026/07/19 13:53:46 WARN Request failed, retrying attempt=5 max_attempts=6 backoff=1.681627789s 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/19 13:53:47 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.43s) niks3-go-unit-tests> 2026/07/19 13:53:47 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.61s) niks3-go-unit-tests> 2026/07/19 13:53:48 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/19 13:53:48 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/19 13:53:48 WARN Request failed, retrying attempt=2 max_attempts=6 backoff=187.034961ms 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/19 13:53:48 WARN Request failed, retrying attempt=3 max_attempts=6 backoff=385.826234ms 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/19 13:53:48 WARN Request failed, retrying attempt=4 max_attempts=6 backoff=822.345551ms 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/19 13:53:49 WARN Rate limiter enabled after throttle name=s3-test rate=5 niks3-go-unit-tests> 2026/07/19 13:53:49 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 (5.02s) niks3-go-unit-tests> 2026/07/19 13:53:49 WARN Request failed, retrying attempt=5 max_attempts=6 backoff=1.501166359s 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.17s) niks3-go-unit-tests> --- PASS: TestClientErrorHandling/InvalidAuthToken (0.28s) niks3-go-unit-tests> --- PASS: TestClientErrorHandling/ServerNotAvailable (6.39s) niks3-go-unit-tests> PASS niks3-go-unit-tests> {"timestamp":"2026-07-19T13:53:51.695167722Z","level":"ERROR","fields":{"message":"Unknown connection IO error:Cancelled","peer_addr":"127.0.0.1:37192"},"target":"rustfs::server::http","filename":"rustfs/src/server/http.rs","line_number":973,"threadName":"rustfs-worker","threadId":"ThreadId(763)"} niks3-go-unit-tests> 2026-07-19 13:53:51.853 UTC [112] LOG: received smart shutdown request niks3-go-unit-tests> 2026-07-19 13:53:51.857 UTC [112] LOG: background worker "logical replication launcher" (PID 122) exited with exit code 1 niks3-go-unit-tests> 2026-07-19 13:53:51.863 UTC [117] LOG: shutting down niks3-go-unit-tests> 2026-07-19 13:53:51.864 UTC [117] LOG: checkpoint starting: shutdown immediate niks3-go-unit-tests> 2026-07-19 13:53:53.350 UTC [117] LOG: checkpoint complete: wrote 10956 buffers (66.9%), wrote 3 SLRU buffers; 0 WAL file(s) added, 0 removed, 13 recycled; write=0.260 s, sync=1.213 s, total=1.486 s; sync files=15167, longest=0.002 s, average=0.001 s; distance=208460 kB, estimate=208460 kB; lsn=0/E2F2318, redo lsn=0/E2F2318 niks3-go-unit-tests> 2026-07-19 13:53:53.437 UTC [112] 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> === PAUSE TestGlobMatch/foo_foo niks3-go-unit-tests> === CONT TestValidateToken_BoundClaimsMismatch niks3-go-unit-tests> === RUN TestGlobMatch/foo_bar niks3-go-unit-tests> === PAUSE TestGlobMatch/foo_bar niks3-go-unit-tests> === CONT TestValidateToken_WrongAudience niks3-go-unit-tests> === CONT TestAudienceForIssuer niks3-go-unit-tests> --- PASS: TestAudienceForIssuer (0.00s) niks3-go-unit-tests> === CONT TestValidateToken_MultipleProviders niks3-go-unit-tests> === CONT TestValidateToken_Expired niks3-go-unit-tests> === CONT TestValidateToken_NoMatchingProvider niks3-go-unit-tests> === CONT TestValidateToken_BoundSubjectMismatch niks3-go-unit-tests> === CONT TestValidateToken_ValidToken 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/?oo_boo niks3-go-unit-tests> === CONT TestGlobMatch/foo*bar_foobar niks3-go-unit-tests> === CONT TestGlobMatch/*/*_foo/bar niks3-go-unit-tests> === CONT TestGlobMatch/*_ niks3-go-unit-tests> === CONT TestGlobMatch/foo*_bar niks3-go-unit-tests> === CONT TestGlobMatch/foo_bar niks3-go-unit-tests> === CONT TestGlobMatch/?oo_foo niks3-go-unit-tests> === CONT TestGlobMatch/fo?_fooo niks3-go-unit-tests> === CONT TestGlobMatch/refs/heads/*_refs/heads/main niks3-go-unit-tests> === CONT TestGlobMatch/*/*_foo niks3-go-unit-tests> === CONT TestGlobMatch/refs/heads/*_refs/tags/v1.0 niks3-go-unit-tests> === CONT TestGlobMatch/fo?_fo niks3-go-unit-tests> === CONT TestGlobMatch/fo?_foo niks3-go-unit-tests> === CONT TestGlobMatch/refs/*/main_refs/heads/main niks3-go-unit-tests> === CONT TestGlobMatch/foo*bar_foo123bar niks3-go-unit-tests> === CONT TestGlobMatch/foo*bar_foobarbaz niks3-go-unit-tests> 2026/07/19 13:53:54 INFO OIDC provider initialized name=test niks3-go-unit-tests> === CONT TestGlobMatch/foo*_foobar niks3-go-unit-tests> === CONT TestGlobMatch/foo*_foo niks3-go-unit-tests> === CONT TestGlobMatch/*bar_foobar niks3-go-unit-tests> === CONT TestGlobMatch/*_anything niks3-go-unit-tests> 2026/07/19 13:53:54 INFO OIDC provider initialized name=test niks3-go-unit-tests> === CONT TestGlobMatch/*bar_bar niks3-go-unit-tests> 2026/07/19 13:53:54 INFO OIDC provider initialized name=test niks3-go-unit-tests> === CONT TestGlobMatch/*bar_foo 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/?oo_boo (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/foo*bar_foobar (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/*/*_foo/bar (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/*_ (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/foo*_bar (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/foo_bar (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/?oo_foo (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/fo?_fooo (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/refs/heads/*_refs/heads/main (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/*/*_foo (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/refs/heads/*_refs/tags/v1.0 (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/fo?_fo (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/fo?_foo (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/refs/*/main_refs/heads/main (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/foo*bar_foo123bar (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/foo*bar_foobarbaz (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/foo*_foobar (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/foo*_foo (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/*bar_foobar (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/*_anything (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/*bar_bar (0.00s) niks3-go-unit-tests> --- PASS: TestGlobMatch/*bar_foo (0.00s) niks3-go-unit-tests> 2026/07/19 13:53:54 INFO OIDC provider initialized name=provider1 niks3-go-unit-tests> 2026/07/19 13:53:54 INFO OIDC provider initialized name=test niks3-go-unit-tests> 2026/07/19 13:53:54 INFO OIDC provider initialized name=provider1 niks3-go-unit-tests> 2026/07/19 13:53:54 INFO OIDC provider initialized name=test niks3-go-unit-tests> 2026/07/19 13:53:54 INFO OIDC provider initialized name=provider2 niks3-go-unit-tests> --- PASS: TestValidateToken_WrongAudience (0.01s) niks3-go-unit-tests> --- PASS: TestValidateToken_BoundClaimsMismatch (0.01s) niks3-go-unit-tests> --- PASS: TestValidateToken_ValidToken (0.01s) niks3-go-unit-tests> --- PASS: TestValidateToken_Expired (0.01s) niks3-go-unit-tests> --- PASS: TestValidateToken_BoundSubjectMismatch (0.01s) niks3-go-unit-tests> --- PASS: TestValidateToken_NoMatchingProvider (0.01s) niks3-go-unit-tests> --- PASS: TestValidateToken_MultipleProviders (0.01s) 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 TestWorkerUploadsAndRemoves niks3-go-unit-tests> === CONT TestServerQueueError niks3-go-unit-tests> --- PASS: TestSendPathsEmpty (0.00s) niks3-go-unit-tests> === CONT TestWorkerPrunesClosureDeps niks3-go-unit-tests> === CONT TestWorkerSkipsGCdPaths niks3-go-unit-tests> === CONT TestQueueConcurrentWriters niks3-go-unit-tests> === CONT TestQueueDeduplication niks3-go-unit-tests> 2026/07/19 13:53:54 ERROR Failed to queue paths error="permission denied" count=1 niks3-go-unit-tests> === CONT TestQueueEnqueueAndFetch niks3-go-unit-tests> === CONT TestQueueFetchRemoveLifecycle niks3-go-unit-tests> === CONT TestServerClientIntegration niks3-go-unit-tests> === CONT TestQueueFetchBatchLimit niks3-go-unit-tests> === CONT TestQueueRemove niks3-go-unit-tests> --- PASS: TestServerQueueError (0.00s) niks3-go-unit-tests> --- PASS: TestServerClientIntegration (0.00s) niks3-go-unit-tests> --- PASS: TestQueueFetchRemoveLifecycle (0.01s) niks3-go-unit-tests> --- PASS: TestQueueFetchBatchLimit (0.01s) niks3-go-unit-tests> --- PASS: TestQueueEnqueueAndFetch (0.01s) niks3-go-unit-tests> --- PASS: TestQueueRemove (0.01s) niks3-go-unit-tests> --- PASS: TestQueueDeduplication (0.01s) niks3-go-unit-tests> 2026/07/19 13:53:54 INFO Upload queue status pending=2 niks3-go-unit-tests> 2026/07/19 13:53:54 INFO Uploading batch count=2 niks3-go-unit-tests> 2026/07/19 13:53:54 INFO Upload queue status pending=2 niks3-go-unit-tests> 2026/07/19 13:53:54 INFO Upload queue status pending=2 niks3-go-unit-tests> 2026/07/19 13:53:54 INFO Uploading batch count=1 niks3-go-unit-tests> 2026/07/19 13:53:54 WARN Store path no longer exists (garbage collected?), removing from queue path=/build/TestWorkerSkipsGCdPaths4039262804/002/nonexistent niks3-go-unit-tests> 2026/07/19 13:53:54 INFO Uploading batch count=1 niks3-go-unit-tests> --- PASS: TestWorkerUploadsAndRemoves (0.07s) niks3-go-unit-tests> --- PASS: TestWorkerPrunesClosureDeps (0.07s) niks3-go-unit-tests> --- PASS: TestWorkerSkipsGCdPaths (0.07s) niks3-go-unit-tests> --- PASS: TestQueueConcurrentWriters (0.24s) niks3-go-unit-tests> PASS post-build step Upload coverage to codecov: ok Skipping codecov: project=Mic92/niks3 attr=x86_64-linux.go-unit-tests