tribuchet: building on eliza Running client tests... === RUN TestPushPathsRefusesUntrustedClosure --- PASS: TestPushPathsRefusesUntrustedClosure (0.03s) === RUN TestDoServerRequestAttachesToken === PAUSE TestDoServerRequestAttachesToken === RUN TestUploadBuildLog_FileBodyReplayedOnRetry === PAUSE TestUploadBuildLog_FileBodyReplayedOnRetry === RUN TestRegisterUploadedObjectReusesConnections === PAUSE TestRegisterUploadedObjectReusesConnections === RUN TestRunGarbageCollection_FinishedOnAnotherReplica === PAUSE TestRunGarbageCollection_FinishedOnAnotherReplica === RUN TestRunGarbageCollection_NotFoundAfterLocalRun === PAUSE TestRunGarbageCollection_NotFoundAfterLocalRun === RUN TestCaseHackSuffix === PAUSE TestCaseHackSuffix === RUN TestFilterOversizedClosures === PAUSE TestFilterOversizedClosures === RUN TestUploadMultipart_PartsInParallel === PAUSE TestUploadMultipart_PartsInParallel === RUN TestUploadMultipart_ReturnsAfterDroppedBody === PAUSE TestUploadMultipart_ReturnsAfterDroppedBody === RUN TestPartSizeForNAR === PAUSE TestPartSizeForNAR === RUN TestDumpPathCaseHackMatchesNix --- PASS: TestDumpPathCaseHackMatchesNix (1.53s) === RUN TestDumpPathCaseHackCollision --- PASS: TestDumpPathCaseHackCollision (0.00s) === RUN TestDumpPathMatchesNix === PAUSE TestDumpPathMatchesNix === RUN TestDumpPathSingleFile === PAUSE TestDumpPathSingleFile === RUN TestDumpPathWriterError === PAUSE TestDumpPathWriterError === RUN TestEncodeNixBase32 === PAUSE TestEncodeNixBase32 === RUN TestEncodeNixBase32WithRealHash === PAUSE TestEncodeNixBase32WithRealHash === RUN TestConvertHashToNix32 === PAUSE TestConvertHashToNix32 === RUN TestGetStorePathHash === PAUSE TestGetStorePathHash === RUN TestPathInfoHashCompatibility === PAUSE TestPathInfoHashCompatibility === RUN TestParsePathInfoJSON === PAUSE TestParsePathInfoJSON === RUN TestParsePathInfoJSONMultiplePaths === PAUSE TestParsePathInfoJSONMultiplePaths === RUN TestPathInfoCACompatibility === PAUSE TestPathInfoCACompatibility === RUN TestRateLimiterFeedback === PAUSE TestRateLimiterFeedback === RUN TestRateLimiterFeedback_400DoesNotCountAsSuccess === PAUSE TestRateLimiterFeedback_400DoesNotCountAsSuccess === RUN TestRegisterUploadedObject_BoundedAgainstSilentServer === PAUSE TestRegisterUploadedObject_BoundedAgainstSilentServer === RUN TestRegisterUploadedObject_OutlivesPush === PAUSE TestRegisterUploadedObject_OutlivesPush === RUN TestResolveStorePath === PAUSE TestResolveStorePath === RUN TestDoWithRetry_BodyReplayedViaGetBody === PAUSE TestDoWithRetry_BodyReplayedViaGetBody === RUN TestRetryTimeoutOutlastsMaxRetries === PAUSE TestRetryTimeoutOutlastsMaxRetries === RUN TestDoWithRetry_FinalResponseBodyReadable === PAUSE TestDoWithRetry_FinalResponseBodyReadable === RUN TestShellSplit === PAUSE TestShellSplit === RUN TestShellSplitErrors === PAUSE TestShellSplitErrors === RUN TestStreamPushReportsEveryPath === PAUSE TestStreamPushReportsEveryPath === RUN TestStreamPushBatchesUnderLoad === PAUSE TestStreamPushBatchesUnderLoad === RUN TestStreamPushIsolatesFailures === PAUSE TestStreamPushIsolatesFailures === RUN TestStreamPushGivesUpOnDeadServer === PAUSE TestStreamPushGivesUpOnDeadServer === RUN TestStreamPushRequestLine === PAUSE TestStreamPushRequestLine === RUN TestStreamPushReportsSignatures === PAUSE TestStreamPushReportsSignatures === RUN TestStreamPushReportsSkippedPaths === PAUSE TestStreamPushReportsSkippedPaths === RUN TestClientSignaturesByStorePath === PAUSE TestClientSignaturesByStorePath === RUN TestStreamPushStopsWhenCanceled === PAUSE TestStreamPushStopsWhenCanceled === RUN TestSetClientTLS === PAUSE TestSetClientTLS === RUN TestSetClientTLSDoesNotMutateDefaultTransport === PAUSE TestSetClientTLSDoesNotMutateDefaultTransport === RUN TestSetClientTLSErrors === PAUSE TestSetClientTLSErrors === RUN TestStaticToken === PAUSE TestStaticToken === RUN TestFileTokenReadsAndCaches === PAUSE TestFileTokenReadsAndCaches === RUN TestFileTokenMissing === PAUSE TestFileTokenMissing === RUN TestFileTokenEmpty === PAUSE TestFileTokenEmpty === RUN TestScriptTokenNoExpiryRerunsEveryCall === PAUSE TestScriptTokenNoExpiryRerunsEveryCall === RUN TestScriptTokenCachesUntilRefresh === PAUSE TestScriptTokenCachesUntilRefresh === RUN TestScriptTokenEmptyToken === PAUSE TestScriptTokenEmptyToken === RUN TestScriptTokenBadJSON === PAUSE TestScriptTokenBadJSON === RUN TestScriptTokenScriptFails === PAUSE TestScriptTokenScriptFails === RUN TestScriptTokenEmptyCommand === PAUSE TestScriptTokenEmptyCommand === RUN TestUntrustedPaths === PAUSE TestUntrustedPaths === RUN TestUntrustedPathsContentAddressed === PAUSE TestUntrustedPathsContentAddressed === RUN TestParsePathInfoUltimate === PAUSE TestParsePathInfoUltimate === CONT TestDoServerRequestAttachesToken === CONT TestScriptTokenEmptyToken === CONT TestFileTokenEmpty === CONT TestUntrustedPaths === RUN TestUntrustedPaths/server_without_policy_accepts_anything === PAUSE TestUntrustedPaths/server_without_policy_accepts_anything === RUN TestUntrustedPaths/built_locally === PAUSE TestUntrustedPaths/built_locally === RUN TestUntrustedPaths/signed_by_the_server_key === PAUSE TestUntrustedPaths/signed_by_the_server_key === RUN TestUntrustedPaths/signed_by_an_upstream_key === PAUSE TestUntrustedPaths/signed_by_an_upstream_key === RUN TestUntrustedPaths/unsigned_substitute === PAUSE TestUntrustedPaths/unsigned_substitute === RUN TestUntrustedPaths/signed_only_by_another_key === PAUSE TestUntrustedPaths/signed_only_by_another_key === RUN TestUntrustedPaths/another_key's_signature_under_the_server_key_name === PAUSE TestUntrustedPaths/another_key's_signature_under_the_server_key_name === RUN TestUntrustedPaths/server_signature_over_different_contents === PAUSE TestUntrustedPaths/server_signature_over_different_contents === CONT TestUntrustedPaths/server_without_policy_accepts_anything --- PASS: TestFileTokenEmpty (0.00s) === CONT TestScriptTokenScriptFails === CONT TestScriptTokenBadJSON === CONT TestStreamPushReportsSkippedPaths === CONT TestScriptTokenEmptyCommand --- PASS: TestScriptTokenEmptyCommand (0.00s) === CONT TestRateLimiterFeedback_400DoesNotCountAsSuccess === CONT TestUntrustedPaths/server_signature_over_different_contents === CONT TestUntrustedPaths/another_key's_signature_under_the_server_key_name === CONT TestUntrustedPaths/signed_only_by_another_key === CONT TestUntrustedPaths/unsigned_substitute === CONT TestUntrustedPaths/signed_by_an_upstream_key === CONT TestUntrustedPaths/signed_by_the_server_key === CONT TestUntrustedPaths/built_locally === CONT TestParsePathInfoUltimate === CONT TestRegisterUploadedObject_BoundedAgainstSilentServer === CONT TestFileTokenMissing === CONT TestFileTokenReadsAndCaches === CONT TestStaticToken === CONT TestSetClientTLSErrors === CONT TestSetClientTLSDoesNotMutateDefaultTransport === CONT TestSetClientTLS === CONT TestStreamPushStopsWhenCanceled === CONT TestClientSignaturesByStorePath --- PASS: TestClientSignaturesByStorePath (0.00s) === CONT TestRateLimiterFeedback === RUN TestRateLimiterFeedback/429_enables_limiter === PAUSE TestRateLimiterFeedback/429_enables_limiter === RUN TestRateLimiterFeedback/503_enables_limiter === PAUSE TestRateLimiterFeedback/503_enables_limiter === RUN TestRateLimiterFeedback/200_does_not_enable_limiter === PAUSE TestRateLimiterFeedback/200_does_not_enable_limiter === RUN TestRateLimiterFeedback/400_does_not_enable_limiter === PAUSE TestRateLimiterFeedback/400_does_not_enable_limiter === CONT TestPathInfoCACompatibility === RUN TestPathInfoCACompatibility/null_ca_field === PAUSE TestPathInfoCACompatibility/null_ca_field === RUN TestPathInfoCACompatibility/old_string_format_-_text === PAUSE TestPathInfoCACompatibility/old_string_format_-_text === RUN TestPathInfoCACompatibility/old_string_format_-_fixed_recursive === PAUSE TestPathInfoCACompatibility/old_string_format_-_fixed_recursive === RUN TestPathInfoCACompatibility/new_structured_format_-_text === PAUSE TestPathInfoCACompatibility/new_structured_format_-_text === RUN TestPathInfoCACompatibility/new_structured_format_-_nar_method === PAUSE TestPathInfoCACompatibility/new_structured_format_-_nar_method === CONT TestParsePathInfoJSONMultiplePaths === RUN TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths === PAUSE TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths === RUN TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths === PAUSE TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths === CONT TestParsePathInfoJSON === RUN TestParsePathInfoJSON/Nix_format === PAUSE TestParsePathInfoJSON/Nix_format === RUN TestParsePathInfoJSON/Lix_format === PAUSE TestParsePathInfoJSON/Lix_format === RUN TestParsePathInfoJSON/empty_input === PAUSE TestParsePathInfoJSON/empty_input === RUN TestParsePathInfoJSON/whitespace_only === PAUSE TestParsePathInfoJSON/whitespace_only === RUN TestParsePathInfoJSON/invalid_JSON === PAUSE TestParsePathInfoJSON/invalid_JSON === CONT TestPathInfoHashCompatibility === RUN TestPathInfoHashCompatibility/old_string_format_with_dash_(SRI) === PAUSE TestPathInfoHashCompatibility/old_string_format_with_dash_(SRI) === RUN TestPathInfoHashCompatibility/old_string_format_with_colon === PAUSE TestPathInfoHashCompatibility/old_string_format_with_colon === RUN TestPathInfoHashCompatibility/new_structured_format_-_converts_to_SRI === PAUSE TestPathInfoHashCompatibility/new_structured_format_-_converts_to_SRI === RUN TestPathInfoHashCompatibility/new_structured_format_with_sha512 === PAUSE TestPathInfoHashCompatibility/new_structured_format_with_sha512 === CONT TestGetStorePathHash === RUN TestGetStorePathHash/valid_store_path === CONT TestConvertHashToNix32 === RUN TestConvertHashToNix32/SRI_format_to_Nix32 --- PASS: TestStreamPushStopsWhenCanceled (0.00s) --- PASS: TestFileTokenReadsAndCaches (0.00s) === PAUSE TestConvertHashToNix32/SRI_format_to_Nix32 === RUN TestConvertHashToNix32/already_Nix32_format === CONT TestEncodeNixBase32 === RUN TestEncodeNixBase32/test_string_hash === PAUSE TestEncodeNixBase32/test_string_hash === RUN TestEncodeNixBase32/empty_input === PAUSE TestEncodeNixBase32/empty_input === PAUSE TestGetStorePathHash/valid_store_path === CONT TestRunGarbageCollection_FinishedOnAnotherReplica === CONT TestRegisterUploadedObjectReusesConnections === CONT TestUploadBuildLog_FileBodyReplayedOnRetry === CONT TestScriptTokenCachesUntilRefresh 2026/11/10 21:17:33 WARN Rate limiter enabled after throttle name=server-test rate=5 === RUN TestGetStorePathHash/basename_without_hyphen_should_error === PAUSE TestGetStorePathHash/basename_without_hyphen_should_error === RUN TestGetStorePathHash/hash_with_invalid_characters_should_error === PAUSE TestGetStorePathHash/hash_with_invalid_characters_should_error === RUN TestGetStorePathHash/hash_with_wrong_length_should_error === PAUSE TestGetStorePathHash/hash_with_wrong_length_should_error === PAUSE TestConvertHashToNix32/already_Nix32_format === RUN TestConvertHashToNix32/invalid_format === PAUSE TestConvertHashToNix32/invalid_format === CONT TestShellSplitErrors === CONT TestStreamPushRequestLine === CONT TestDumpPathWriterError === CONT TestDumpPathSingleFile === CONT TestDumpPathMatchesNix --- PASS: TestParsePathInfoUltimate (0.00s) --- PASS: TestStaticToken (0.00s) --- PASS: TestScriptTokenScriptFails (4.14s) === CONT TestPartSizeForNAR 2026/11/10 21:17:37 ERROR Upload failed error=boom count=1 --- PASS: TestStreamPushReportsSkippedPaths (4.14s) --- PASS: TestFileTokenMissing (0.00s) === RUN TestPartSizeForNAR/zero_stays_at_minimum 2026/11/10 21:17:39 WARN Request failed, retrying attempt=1 backoff=100ms error="Post \"http://127.0.0.1:32931/api/uploads/complete\": context deadline exceeded" url=http://127.0.0.1:32931/api/uploads/complete 2026/11/10 21:17:39 WARN Request failed, retrying attempt=1 backoff=100ms error="Post \"http://127.0.0.1:32931/api/uploads/complete\": context deadline exceeded" url=http://127.0.0.1:32931/api/uploads/complete === PAUSE TestPartSizeForNAR/zero_stays_at_minimum === CONT TestUploadMultipart_PartsInParallel === CONT TestFilterOversizedClosures === CONT TestCaseHackSuffix === CONT TestRunGarbageCollection_NotFoundAfterLocalRun === CONT TestEncodeNixBase32WithRealHash === CONT TestUploadMultipart_ReturnsAfterDroppedBody === CONT TestStreamPushReportsSignatures --- PASS: TestShellSplitErrors (0.00s) === CONT TestStreamPushGivesUpOnDeadServer === CONT TestStreamPushIsolatesFailures --- PASS: TestScriptTokenBadJSON (5.34s) === CONT TestStreamPushBatchesUnderLoad --- PASS: TestUntrustedPaths (1.11s) --- PASS: TestUntrustedPaths/signed_only_by_another_key (0.00s) --- PASS: TestUntrustedPaths/built_locally (0.00s) --- PASS: TestUntrustedPaths/unsigned_substitute (0.00s) --- PASS: TestUntrustedPaths/another_key's_signature_under_the_server_key_name (0.00s) --- PASS: TestUntrustedPaths/signed_by_the_server_key (0.00s) --- PASS: TestUntrustedPaths/server_without_policy_accepts_anything (4.14s) --- PASS: TestUntrustedPaths/server_signature_over_different_contents (4.14s) --- PASS: TestUntrustedPaths/signed_by_an_upstream_key (0.00s) --- PASS: TestEncodeNixBase32WithRealHash (0.00s) --- PASS: TestScriptTokenEmptyToken (6.30s) 2026/11/10 21:17:39 ERROR Upload failed error="connection refused" count=20 2026/11/10 21:17:39 ERROR Upload failed error=boom count=1 2026/11/10 21:17:39 ERROR Server seems unavailable, giving up on batch untried=17 2026/11/10 21:17:39 ERROR Upload failed error="bad path" count=3 --- PASS: TestStreamPushIsolatesFailures (0.00s) === CONT TestStreamPushReportsEveryPath --- PASS: TestStreamPushReportsSignatures (0.00s) === CONT TestScriptTokenNoExpiryRerunsEveryCall === CONT TestShellSplit === CONT TestRetryTimeoutOutlastsMaxRetries 2026/11/10 21:17:39 WARN Failed to register uploaded object key=abc.narinfo error="sending request: context canceled during retry: context deadline exceeded" === CONT TestDoWithRetry_FinalResponseBodyReadable === CONT TestResolveStorePath === RUN TestPartSizeForNAR/small_stays_at_minimum === PAUSE TestPartSizeForNAR/small_stays_at_minimum === RUN TestPartSizeForNAR/80_GiB_fits_at_minimum === PAUSE TestPartSizeForNAR/80_GiB_fits_at_minimum === RUN TestPartSizeForNAR/115_GiB_needs_larger_parts --- PASS: TestStreamPushGivesUpOnDeadServer (0.00s) --- PASS: TestStreamPushReportsEveryPath (0.00s) --- PASS: TestShellSplit (0.00s) --- PASS: TestSetClientTLSDoesNotMutateDefaultTransport (2.16s) === PAUSE TestPartSizeForNAR/115_GiB_needs_larger_parts === RUN TestPartSizeForNAR/1_TiB === PAUSE TestPartSizeForNAR/1_TiB === RUN TestPartSizeForNAR/5_TiB_S3_max_object === PAUSE TestPartSizeForNAR/5_TiB_S3_max_object === RUN TestStreamPushBatchesUnderLoad/oneAtATime=false === RUN TestSetClientTLSErrors/missing_cert_file === PAUSE TestSetClientTLSErrors/missing_cert_file === RUN TestSetClientTLSErrors/missing_key_file === PAUSE TestSetClientTLSErrors/missing_key_file === RUN TestSetClientTLSErrors/missing_ca_file === PAUSE TestSetClientTLSErrors/missing_ca_file === RUN TestSetClientTLSErrors/invalid_ca_file === RUN TestFilterOversizedClosures/no_limit_keeps_everything === PAUSE TestFilterOversizedClosures/no_limit_keeps_everything === RUN TestFilterOversizedClosures/closure_with_oversized_dependency_is_skipped === PAUSE TestFilterOversizedClosures/closure_with_oversized_dependency_is_skipped === RUN TestFilterOversizedClosures/all_closures_skipped === PAUSE TestFilterOversizedClosures/all_closures_skipped --- PASS: TestResolveStorePath (0.00s) === CONT TestRegisterUploadedObject_OutlivesPush 2026/11/10 21:17:39 WARN Failed to register uploaded object key=abc.narinfo error="sending request: context canceled during retry: context deadline exceeded" 2026/11/10 21:17:39 INFO Garbage collection started === PAUSE TestSetClientTLSErrors/invalid_ca_file 2026/11/10 21:17:39 WARN Request failed, retrying attempt=1 backoff=100ms error="Post \"http://127.0.0.1:32931/api/uploads/complete\": context deadline exceeded" url=http://127.0.0.1:32931/api/uploads/complete 2026/11/10 21:17:39 WARN Failed to register uploaded object key=abc.narinfo error="sending request: context canceled during retry: context deadline exceeded" === CONT TestDoWithRetry_BodyReplayedViaGetBody 2026/11/10 21:17:39 WARN Request returned retryable status, retrying attempt=1 backoff=1ms status=502 url=http://127.0.0.1:41953 === CONT TestUntrustedPathsContentAddressed --- PASS: TestRegisterUploadedObject_BoundedAgainstSilentServer (2.16s) === CONT TestRateLimiterFeedback/429_enables_limiter === RUN TestPartSizeForNAR/capped_at_5_GiB === PAUSE TestStreamPushBatchesUnderLoad/oneAtATime=false === CONT TestPathInfoCACompatibility/null_ca_field --- PASS: TestDoServerRequestAttachesToken (6.31s) === PAUSE TestPartSizeForNAR/capped_at_5_GiB === CONT TestRateLimiterFeedback/400_does_not_enable_limiter === CONT TestRateLimiterFeedback/200_does_not_enable_limiter --- PASS: TestUntrustedPathsContentAddressed (0.05s) === CONT TestRateLimiterFeedback/503_enables_limiter --- PASS: TestScriptTokenNoExpiryRerunsEveryCall (0.06s) === CONT TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths 2026/11/10 21:17:40 INFO Garbage collection started === CONT TestPathInfoCACompatibility/new_structured_format_-_nar_method === CONT TestPathInfoCACompatibility/new_structured_format_-_text === CONT TestPathInfoCACompatibility/old_string_format_-_fixed_recursive 2026/11/10 21:17:40 WARN Rate limiter enabled after throttle name=server-test rate=5 === CONT TestPathInfoCACompatibility/old_string_format_-_text 2026/11/10 21:17:40 WARN Request returned retryable status, retrying attempt=1 backoff=0s status=503 url=http://127.0.0.1:46693 --- PASS: TestPathInfoCACompatibility (0.00s) --- PASS: TestPathInfoCACompatibility/null_ca_field (0.00s) --- PASS: TestPathInfoCACompatibility/new_structured_format_-_nar_method (0.00s) --- PASS: TestPathInfoCACompatibility/new_structured_format_-_text (0.00s) --- PASS: TestPathInfoCACompatibility/old_string_format_-_fixed_recursive (0.00s) --- PASS: TestPathInfoCACompatibility/old_string_format_-_text (0.00s) === CONT TestParsePathInfoJSON/Nix_format 2026/11/10 21:17:40 INFO Garbage collection progress phase=running_on_another_replica failed_uploads_deleted=0 old_closures_deleted=0 objects_marked=0 objects_deleted=0 objects_failed=0 === CONT TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths 2026/11/10 21:17:40 WARN Request returned retryable status, retrying attempt=2 backoff=1ms status=502 url=http://127.0.0.1:41953 2026/11/10 21:17:40 WARN Rate limiter backed off name=server-test rate=5 --- PASS: TestParsePathInfoJSONMultiplePaths (0.00s) --- PASS: TestParsePathInfoJSONMultiplePaths/Nix_multiple_paths (0.00s) --- PASS: TestParsePathInfoJSONMultiplePaths/Lix_multiple_paths (0.00s) === CONT TestParsePathInfoJSON/whitespace_only === CONT TestParsePathInfoJSON/empty_input === CONT TestParsePathInfoJSON/invalid_JSON 2026/11/10 21:17:40 WARN Rate limiter enabled after throttle name=server-test rate=5 === CONT TestPathInfoHashCompatibility/old_string_format_with_dash_(SRI) === CONT TestPathInfoHashCompatibility/new_structured_format_with_sha512 2026/11/10 21:17:40 WARN Request returned retryable status, retrying attempt=1 backoff=0s status=503 url=http://127.0.0.1:43001 === CONT TestParsePathInfoJSON/Lix_format --- PASS: TestParsePathInfoJSON (0.00s) --- PASS: TestParsePathInfoJSON/Nix_format (0.00s) --- PASS: TestParsePathInfoJSON/whitespace_only (0.00s) --- PASS: TestParsePathInfoJSON/empty_input (0.00s) --- PASS: TestParsePathInfoJSON/invalid_JSON (0.00s) --- PASS: TestParsePathInfoJSON/Lix_format (0.00s) === CONT TestPathInfoHashCompatibility/new_structured_format_-_converts_to_SRI === CONT TestEncodeNixBase32/empty_input === CONT TestGetStorePathHash/valid_store_path === CONT TestPathInfoHashCompatibility/old_string_format_with_colon 2026/11/10 21:17:40 WARN Rate limiter backed off name=server-test rate=5 === CONT TestEncodeNixBase32/test_string_hash 2026/11/10 21:17:40 WARN Request returned retryable status, retrying attempt=2 backoff=0s status=503 url=http://127.0.0.1:43001 === RUN TestSetClientTLS/rejects_connection_without_client_cert === PAUSE TestSetClientTLS/rejects_connection_without_client_cert === RUN TestSetClientTLS/succeeds_with_client_cert_and_CA === PAUSE TestSetClientTLS/succeeds_with_client_cert_and_CA === RUN TestSetClientTLS/preserves_debug_logging_transport === PAUSE TestSetClientTLS/preserves_debug_logging_transport === CONT TestGetStorePathHash/hash_with_invalid_characters_should_error === CONT TestConvertHashToNix32/invalid_format === CONT TestConvertHashToNix32/already_Nix32_format === CONT TestFilterOversizedClosures/no_limit_keeps_everything === CONT TestSetClientTLSErrors/missing_ca_file === CONT TestSetClientTLSErrors/invalid_ca_file === CONT TestSetClientTLSErrors/missing_key_file === CONT TestFilterOversizedClosures/all_closures_skipped 2026/11/10 21:17:40 WARN Garbage collection finished on another replica. Its statistics are not available here === CONT TestSetClientTLSErrors/missing_cert_file === CONT TestFilterOversizedClosures/closure_with_oversized_dependency_is_skipped 2026/11/10 21:17:40 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 === CONT TestPartSizeForNAR/zero_stays_at_minimum 2026/11/10 21:17:40 WARN Request returned retryable status, retrying attempt=1 backoff=1ms status=502 url=http://127.0.0.1:41953 === CONT TestPartSizeForNAR/5_TiB_S3_max_object 2026/11/10 21:17:40 WARN Skipping closure: path exceeds server max NAR size top_level_path=/nix/store/cccccccccccccccccccccccccccccccc-wrapper oversized_path=/nix/store/cccccccccccccccccccccccccccccccc-wrapper nar_size=100 max_nar_size=50 === CONT TestPartSizeForNAR/1_TiB === CONT TestPartSizeForNAR/small_stays_at_minimum --- PASS: TestPathInfoHashCompatibility (0.00s) --- PASS: TestPathInfoHashCompatibility/old_string_format_with_dash_(SRI) (0.00s) --- PASS: TestPathInfoHashCompatibility/new_structured_format_with_sha512 (0.00s) --- PASS: TestPathInfoHashCompatibility/new_structured_format_-_converts_to_SRI (0.00s) --- PASS: TestPathInfoHashCompatibility/old_string_format_with_colon (0.00s) --- PASS: TestEncodeNixBase32 (0.00s) --- PASS: TestEncodeNixBase32/empty_input (0.00s) --- PASS: TestEncodeNixBase32/test_string_hash (0.00s) === CONT TestGetStorePathHash/basename_without_hyphen_should_error === CONT TestConvertHashToNix32/SRI_format_to_Nix32 === CONT TestSetClientTLS/preserves_debug_logging_transport --- PASS: TestScriptTokenCachesUntilRefresh (2.22s) 2026/11/10 21:17:39 WARN Rate limiter enabled after throttle name=server-test rate=5 === CONT TestGetStorePathHash/hash_with_wrong_length_should_error 2026/11/10 21:17:40 WARN Request returned retryable status, retrying attempt=1 backoff=0s status=503 url=http://127.0.0.1:44691 === CONT TestPartSizeForNAR/80_GiB_fits_at_minimum === CONT TestPartSizeForNAR/115_GiB_needs_larger_parts 2026/11/10 21:17:40 WARN Rate limiter enabled after throttle name=server-test rate=5 === CONT TestSetClientTLS/rejects_connection_without_client_cert 2026/11/10 21:17:40 WARN Request returned retryable status, retrying attempt=1 backoff=0s status=429 url=http://127.0.0.1:37725 2026/11/10 21:17:40 WARN Rate limiter backed off name=server-test rate=5 === CONT TestPartSizeForNAR/capped_at_5_GiB === CONT TestSetClientTLS/succeeds_with_client_cert_and_CA 2026/11/10 21:17:40 WARN Rate limiter backed off name=server-test rate=5 --- PASS: TestRunGarbageCollection_NotFoundAfterLocalRun (0.06s) --- PASS: TestConvertHashToNix32 (0.00s) --- PASS: TestConvertHashToNix32/invalid_format (0.00s) --- PASS: TestConvertHashToNix32/already_Nix32_format (0.00s) --- PASS: TestConvertHashToNix32/SRI_format_to_Nix32 (0.00s) --- PASS: TestDoWithRetry_BodyReplayedViaGetBody (0.06s) --- PASS: TestRunGarbageCollection_FinishedOnAnotherReplica (2.22s) --- PASS: TestFilterOversizedClosures (0.00s) --- PASS: TestFilterOversizedClosures/no_limit_keeps_everything (0.00s) --- PASS: TestFilterOversizedClosures/closure_with_oversized_dependency_is_skipped (0.00s) --- PASS: TestFilterOversizedClosures/all_closures_skipped (0.00s) === RUN TestStreamPushBatchesUnderLoad/oneAtATime=true === PAUSE TestStreamPushBatchesUnderLoad/oneAtATime=true === CONT TestStreamPushBatchesUnderLoad/oneAtATime=false --- PASS: TestUploadMultipart_ReturnsAfterDroppedBody (0.06s) --- PASS: TestDoWithRetry_FinalResponseBodyReadable (0.06s) 2026/11/10 21:17:40 WARN Request returned retryable status, retrying attempt=2 backoff=1ms status=502 url=http://127.0.0.1:41953 --- PASS: TestGetStorePathHash (0.00s) --- PASS: TestGetStorePathHash/valid_store_path (0.00s) --- PASS: TestGetStorePathHash/hash_with_invalid_characters_should_error (0.00s) --- PASS: TestGetStorePathHash/basename_without_hyphen_should_error (0.00s) --- PASS: TestGetStorePathHash/hash_with_wrong_length_should_error (0.00s) --- PASS: TestRateLimiterFeedback (0.00s) --- PASS: TestRateLimiterFeedback/200_does_not_enable_limiter (0.02s) --- PASS: TestRateLimiterFeedback/503_enables_limiter (0.00s) --- PASS: TestRateLimiterFeedback/400_does_not_enable_limiter (0.02s) --- PASS: TestRateLimiterFeedback/429_enables_limiter (0.06s) --- PASS: TestRegisterUploadedObject_OutlivesPush (0.06s) --- PASS: TestPartSizeForNAR (2.19s) --- PASS: TestPartSizeForNAR/zero_stays_at_minimum (0.00s) --- PASS: TestPartSizeForNAR/5_TiB_S3_max_object (0.00s) --- PASS: TestPartSizeForNAR/1_TiB (0.00s) --- PASS: TestPartSizeForNAR/small_stays_at_minimum (0.00s) --- PASS: TestPartSizeForNAR/80_GiB_fits_at_minimum (0.00s) --- PASS: TestPartSizeForNAR/115_GiB_needs_larger_parts (0.00s) --- PASS: TestPartSizeForNAR/capped_at_5_GiB (0.00s) === CONT TestStreamPushBatchesUnderLoad/oneAtATime=true 2026/11/10 21:17:40 WARN Rate limiter enabled after throttle name=s3-test rate=5 --- PASS: TestSetClientTLSErrors (2.16s) --- PASS: TestSetClientTLSErrors/missing_ca_file (0.00s) --- PASS: TestSetClientTLSErrors/missing_key_file (0.00s) --- PASS: TestSetClientTLSErrors/missing_cert_file (0.00s) --- PASS: TestSetClientTLSErrors/invalid_ca_file (0.00s) 2026/11/10 21:17:40 WARN Request returned retryable status, retrying attempt=1 backoff=0s status=503 url=http://127.0.0.1:45851 --- PASS: TestStreamPushBatchesUnderLoad (0.06s) --- PASS: TestStreamPushBatchesUnderLoad/oneAtATime=false (0.00s) --- PASS: TestStreamPushBatchesUnderLoad/oneAtATime=true (0.00s) --- PASS: TestUploadBuildLog_FileBodyReplayedOnRetry (2.22s) 2026/11/10 21:17:40 WARN Request returned retryable status, retrying attempt=3 backoff=1ms status=502 url=http://127.0.0.1:41953 2026/11/10 21:17:40 WARN Request returned retryable status, retrying attempt=4 backoff=1ms status=502 url=http://127.0.0.1:41953 2026/11/10 21:17:40 WARN Request returned retryable status, retrying attempt=5 backoff=1ms status=502 url=http://127.0.0.1:41953 2026/11/10 21:17:40 WARN Request returned retryable status, retrying attempt=6 backoff=1ms status=502 url=http://127.0.0.1:41953 2026/11/10 21:17:40 WARN Request returned retryable status, retrying attempt=7 backoff=1ms status=502 url=http://127.0.0.1:41953 2026/11/10 21:17:40 http: TLS handshake error from 127.0.0.1:33610: remote error: tls: bad certificate 2026/11/10 21:17:40 WARN Request returned retryable status, retrying attempt=8 backoff=1ms status=502 url=http://127.0.0.1:41953 --- PASS: TestSetClientTLS (2.22s) --- PASS: TestSetClientTLS/succeeds_with_client_cert_and_CA (0.01s) --- PASS: TestSetClientTLS/preserves_debug_logging_transport (0.01s) --- PASS: TestSetClientTLS/rejects_connection_without_client_cert (0.02s) 2026/11/10 21:17:40 WARN Request returned retryable status, retrying attempt=9 backoff=1ms status=502 url=http://127.0.0.1:41953 2026/11/10 21:17:40 WARN Request returned retryable status, retrying attempt=10 backoff=1ms status=502 url=http://127.0.0.1:41953 --- PASS: TestDumpPathWriterError (2.24s) --- PASS: TestRegisterUploadedObjectReusesConnections (2.24s) 2026/11/10 21:17:40 WARN Request returned retryable status, retrying attempt=11 backoff=1ms status=502 url=http://127.0.0.1:41953 2026/11/10 21:17:40 WARN Request returned retryable status, retrying attempt=12 backoff=1ms status=502 url=http://127.0.0.1:41953 2026/11/10 21:17:40 WARN Request returned retryable status, retrying attempt=13 backoff=1ms status=502 url=http://127.0.0.1:41953 2026/11/10 21:17:40 WARN Request returned retryable status, retrying attempt=14 backoff=1ms status=502 url=http://127.0.0.1:41953 --- PASS: TestStreamPushRequestLine (2.24s) 2026/11/10 21:17:40 WARN Request returned retryable status, retrying attempt=15 backoff=1ms status=502 url=http://127.0.0.1:41953 2026/11/10 21:17:40 WARN Request returned retryable status, retrying attempt=16 backoff=1ms status=502 url=http://127.0.0.1:41953 2026/11/10 21:17:40 WARN Request returned retryable status, retrying attempt=17 backoff=1ms status=502 url=http://127.0.0.1:41953 --- PASS: TestRetryTimeoutOutlastsMaxRetries (0.09s) --- PASS: TestUploadMultipart_PartsInParallel (0.67s) --- PASS: TestRateLimiterFeedback_400DoesNotCountAsSuccess (7.15s) --- PASS: TestDumpPathSingleFile (3.51s) --- PASS: TestCaseHackSuffix (1.35s) --- PASS: TestDumpPathMatchesNix (3.52s) PASS Running server tests... The files belonging to this database system will be owned by user "nixbld". This user must also own the server process. The database cluster will be initialized with locale "C". The default database encoding has accordingly been set to "SQL_ASCII". The default text search configuration will be set to "english". Data page checksums are enabled. creating directory /build/postgres592180642/data ... ok creating subdirectories ... ok selecting dynamic shared memory implementation ... posix selecting default "max_connections" ... 100 selecting default "shared_buffers" ... 128MB selecting default time zone ... UTC creating configuration files ... ok running bootstrap script ... ok performing post-bootstrap initialization ... ok syncing data to disk ... ok initdb: warning: enabling "trust" authentication for local connections 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. Success. You can now start the database server using: pg_ctl -D /build/postgres592180642/data -l logfile start /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response /build/postgres592180642:5432 - no response 2026-11-10 21:17:56.412 UTC [135] LOG: starting PostgreSQL 18.6 on aarch64-unknown-linux-gnu, compiled by clang version 21.1.8, 64-bit 2026-11-10 21:17:56.412 UTC [135] LOG: listening on Unix socket "/build/postgres592180642/.s.PGSQL.5432" 2026-11-10 21:17:56.419 UTC [135] LOG: received smart shutdown request 2026-11-10 21:17:56.421 UTC [171] LOG: database system was shut down at 2026-11-10 21:17:46 UTC 2026-11-10 21:17:56.427 UTC [169] LOG: shutting down 2026-11-10 21:17:56.427 UTC [169] LOG: checkpoint starting: shutdown immediate 2026-11-10 21:17:56.431 UTC [169] LOG: checkpoint complete: wrote 0 buffers (0.0%), wrote 3 SLRU buffers; 0 WAL file(s) added, 0 removed, 0 recycled; write=0.001 s, sync=0.001 s, total=0.004 s; sync files=2, longest=0.001 s, average=0.001 s; distance=0 kB, estimate=0 kB; lsn=0/1765D58, redo lsn=0/1765D58 2026-11-10 21:17:56.453 UTC [135] LOG: database system is shut down 2026/11/10 21:17:56 ERROR failed to start postgres error="failed to wait for postgres: exit status 2"