Skip to content

feat(rcu): route Rapid Cache Ultra writes to the gRPC appendable writer - #1135

Open
yuxin00j wants to merge 7 commits into
fsspec:mainfrom
yuxin00j:feat-rcu-write-path
Open

yuxin00j wants to merge 7 commits into
fsspec:mainfrom
yuxin00j:feat-rcu-write-path

fix(rcu): keep the bucket and dircache consistent when a write fails

0e47110
Select commit
Loading
Failed to load commit list.
Google Cloud Build / end-to-end-tests-trigger (gcsfs-ci-902862) succeeded Nov 3, 2026 in 8m 26s

Summary

Build Information

Trigger end-to-end-tests-trigger
Build e328926d-3ef5-4a3d-9cf5-4db7e65e5da0
Start 2026-11-02T20:16:10-08:00
Duration 7m41.072s
Status SUCCESS

Steps

Step Status Duration
generate-ssh-key SUCCESS 7.343s
create-vm SUCCESS 24.302s
create-buckets SUCCESS 1m8.235s
setup-vm SUCCESS 1m53.683s
run-standard-tests SUCCESS 4m0.271s
run-zonal-tests SUCCESS 1m46.942s
run-zonal-core-tests SUCCESS 3m29.217s
run-hns-tests SUCCESS 3m35.747s
test-report SUCCESS 5.238s
cleanup SUCCESS 1m13.061s
check-failure SUCCESS 724ms

Details


starting build "e328926d-3ef5-4a3d-9cf5-4db7e65e5da0" using release legacy

FETCHSOURCE
From https://github.com/fsspec/gcsfs
 * branch            0e471107e0f569723eab05f2a6f776eec47b2647 -> FETCH_HEAD
HEAD is now at 0e47110 fix(rcu): keep the bucket and dircache consistent when a write fails
GitCommit:
0e471107e0f569723eab05f2a6f776eec47b2647
BUILD
Starting Step #0 - "generate-ssh-key"
Starting Step #1 - "create-vm"
Starting Step #2 - "create-buckets"
Step #1 - "create-vm": Pulling image: gcr.io/google.com/cloudsdktool/cloud-sdk
Step #0 - "generate-ssh-key": Pulling image: gcr.io/google.com/cloudsdktool/cloud-sdk
Step #2 - "create-buckets": Pulling image: gcr.io/google.com/cloudsdktool/cloud-sdk
Step #2 - "create-buckets": Using default tag: latest
Step #1 - "create-vm": Using default tag: latest
Step #0 - "generate-ssh-key": Using default tag: latest
Step #2 - "create-buckets": latest: Pulling from google.com/cloudsdktool/cloud-sdk
Step #1 - "create-vm": latest: Pulling from google.com/cloudsdktool/cloud-sdk
Step #2 - "create-buckets": Digest: sha256:aa2b2728a6f3eaf1d6d37409133fde8220b28460282f6983e3055b1b2c792228
Step #2 - "create-buckets": Status: Downloaded newer image for gcr.io/google.com/cloudsdktool/cloud-sdk:latest
Step #1 - "create-vm": Digest: sha256:aa2b2728a6f3eaf1d6d37409133fde8220b28460282f6983e3055b1b2c792228
Step #1 - "create-vm": Status: Image is up to date for gcr.io/google.com/cloudsdktool/cloud-sdk:latest
Step #2 - "create-buckets": gcr.io/google.com/cloudsdktool/cloud-sdk:latest
Step #1 - "create-vm": gcr.io/google.com/cloudsdktool/cloud-sdk:latest
Step #0 - "generate-ssh-key": latest: Pulling from google.com/cloudsdktool/cloud-sdk
Step #0 - "generate-ssh-key": Digest: sha256:aa2b2728a6f3eaf1d6d37409133fde8220b28460282f6983e3055b1b2c792228
Step #0 - "generate-ssh-key": Status: Image is up to date for gcr.io/google.com/cloudsdktool/cloud-sdk:latest
Step #0 - "generate-ssh-key": gcr.io/google.com/cloudsdktool/cloud-sdk:latest
Step #1 - "create-vm": --- Creating GCE VM ---
Step #2 - "create-buckets": 
Step #2 - "create-buckets": Your active configuration is: [default]
Step #2 - "create-buckets": --- Creating standard bucket ---
Step #2 - "create-buckets": --- Creating standard requester pays bucket ---
Step #2 - "create-buckets": --- Creating versioned bucket ---
Step #2 - "create-buckets": --- Creating HNS bucket ---
Step #2 - "create-buckets": --- Creating HNS requester pays bucket ---
Step #2 - "create-buckets": --- Creating Zonal bucket ---
Step #2 - "create-buckets": --- Creating standard bucket for Zonal test ---
Step #2 - "create-buckets": --- Creating Zonal bucket for running core tests ---
Finished Step #0 - "generate-ssh-key"
Step #1 - "create-vm": Created [https://www.googleapis.com/compute/v1/projects/gcsfs-ci-902862/zones/us-central1-a/instances/gcsfs-test-vm-e328926d].
Step #1 - "create-vm": NAME                    ZONE           MACHINE_TYPE    PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
Step #1 - "create-vm": gcsfs-test-vm-e328926d  us-central1-a  n2-standard-16               10.128.0.50  34.27.246.122  RUNNING
Finished Step #1 - "create-vm"
Starting Step #3 - "setup-vm"
Step #3 - "setup-vm": Already have image (with digest): gcr.io/google.com/cloudsdktool/cloud-sdk
Step #2 - "create-buckets": Creating gs://gcsfs-test-versioned-e328926d-gw1/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-standard-e328926d-gw0/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-hns-e328926d-gw3/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-standard-req-pay-e328926d-gw3/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-standard-req-pay-e328926d-gw0/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-hns-req-pay-e328926d-gw0/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-hns-req-pay-e328926d-gw4/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-standard-req-pay-e328926d-gw1/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-versioned-e328926d-gw0/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-hns-req-pay-e328926d-gw3/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-hns-req-pay-e328926d-gw2/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-standard-e328926d-gw2/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-hns-e328926d-gw7/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-zonal-e328926d-gw0/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-hns-e328926d-gw4/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-standard-e328926d-gw1/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-hns-e328926d-gw5/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-standard-for-zonal-e328926d-gw1/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-zonal-e328926d-gw1/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-versioned-e328926d-gw3/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-hns-req-pay-e328926d-gw7/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-hns-req-pay-e328926d-gw1/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-hns-e328926d-gw2/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-hns-e328926d-gw6/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-hns-e328926d-gw1/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-standard-for-zonal-e328926d-gw0/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-hns-req-pay-e328926d-gw5/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-standard-req-pay-e328926d-gw2/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-versioned-e328926d-gw2/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-standard-e328926d-gw3/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-zonal-core-e328926d-gw0/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-zonal-core-e328926d-gw1/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-hns-e328926d-gw0/...
Step #2 - "create-buckets": Creating gs://gcsfs-test-hns-req-pay-e328926d-gw6/...
Step #3 - "setup-vm": ERROR: (gcloud.compute.ssh) [/usr/bin/ssh] exited with return code [255].
Step #3 - "setup-vm": Waiting for VM to become available... (attempt 1/10)
Step #2 - "create-buckets": --- Enabling versioning on versioned bucket ---
Step #2 - "create-buckets": --- Enabling requester pays on HNS bucket ---
Step #2 - "create-buckets": --- Enabling requester pays on standard bucket ---
Step #3 - "setup-vm": Failed to add the host to the list of known hosts (/builder/home/.ssh/google_compute_known_hosts).
Step #3 - "setup-vm": VM is ready
Step #3 - "setup-vm": Failed to add the host to the list of known hosts (/builder/home/.ssh/google_compute_known_hosts).
Step #3 - "setup-vm": Failed to add the host to the list of known hosts (/builder/home/.ssh/google_compute_known_hosts).
Step #2 - "create-buckets":   
Step #2 - "create-buckets":   
Step #2 - "create-buckets": Updating gs://gcsfs-test-versioned-e328926d-gw3/...
Step #2 - "create-buckets": Updating gs://gcsfs-test-hns-req-pay-e328926d-gw3/...
Step #3 - "setup-vm": --- Installing dependencies on VM ---
Step #2 - "create-buckets":   
Step #2 - "create-buckets":   
Step #2 - "create-buckets": Updating gs://gcsfs-test-hns-req-pay-e328926d-gw6/...
Step #2 - "create-buckets":   
Step #2 - "create-buckets":   
Step #2 - "create-buckets":   
Step #2 - "create-buckets":   
Step #2 - "create-buckets": Updating gs://gcsfs-test-hns-req-pay-e328926d-gw4/...
Step #2 - "create-buckets": Updating gs://gcsfs-test-standard-req-pay-e328926d-gw1/...
Step #2 - "create-buckets":   
Step #2 - "create-buckets": Updating gs://gcsfs-test-hns-req-pay-e328926d-gw1/...
Step #2 - "create-buckets": Updating gs://gcsfs-test-hns-req-pay-e328926d-gw2/...
Step #2 - "create-buckets": Updating gs://gcsfs-test-versioned-e328926d-gw1/...
Step #2 - "create-buckets":   
Step #2 - "create-buckets": Updating gs://gcsfs-test-versioned-e328926d-gw0/...
Step #2 - "create-buckets": ...
Step #2 - "create-buckets":   
Step #2 - "create-buckets":   
Step #2 - "create-buckets":   
Step #2 - "create-buckets":   
Step #2 - "create-buckets": Updating gs://gcsfs-test-standard-req-pay-e328926d-gw3/...
Step #2 - "create-buckets": Updating gs://gcsfs-test-versioned-e328926d-gw2/...
Step #2 - "create-buckets": Updating gs://gcsfs-test-hns-req-pay-e328926d-gw7/...
Step #2 - "create-buckets":   
Step #2 - "create-buckets": Updating gs://gcsfs-test-standard-req-pay-e328926d-gw2/...
Step #2 - "create-buckets": ....
Step #2 - "create-buckets": Updating gs://gcsfs-test-hns-req-pay-e328926d-gw5/...
Step #2 - "create-buckets": Updating gs://gcsfs-test-standard-req-pay-e328926d-gw0/...
Step #2 - "create-buckets":   
Step #2 - "create-buckets": Updating gs://gcsfs-test-hns-req-pay-e328926d-gw0/...
Step #2 - "create-buckets": ....
Step #2 - "create-buckets": ....
Step #2 - "create-buckets": ....
Step #2 - "create-buckets": ....
Step #2 - "create-buckets": ....
Step #2 - "create-buckets": ...
Step #2 - "create-buckets": ....
Step #2 - "create-buckets": ...
Step #2 - "create-buckets": ...
Step #2 - "create-buckets": ...
Step #2 - "create-buckets": ...
Step #2 - "create-buckets": ...
Step #2 - "create-buckets": ..
Step #2 - "create-buckets": ....
Finished Step #2 - "create-buckets"
Step #3 - "setup-vm": --- Installing Python and dependencies on VM ---
Step #3 - "setup-vm": --- Installing gcsfs from local source ---
Step #3 - "setup-vm":   /tmp/pip-build-env-k748_tli/overlay/lib/python3.13/site-packages/vcs_versioning/_backends/_git.py:709: BuildBackendWarning: "/home/sa_116841737565922334104" is shallow and may cause errors
Step #3 - "setup-vm":     pre_parse(wd)
Finished Step #3 - "setup-vm"
Starting Step #7 - "run-hns-tests"
Starting Step #4 - "run-standard-tests"
Starting Step #6 - "run-zonal-core-tests"
Starting Step #5 - "run-zonal-tests"
Step #7 - "run-hns-tests": Already have image (with digest): gcr.io/google.com/cloudsdktool/cloud-sdk
Step #5 - "run-zonal-tests": Already have image (with digest): gcr.io/google.com/cloudsdktool/cloud-sdk
Step #4 - "run-standard-tests": Already have image (with digest): gcr.io/google.com/cloudsdktool/cloud-sdk
Step #6 - "run-zonal-core-tests": Already have image (with digest): gcr.io/google.com/cloudsdktool/cloud-sdk
Step #5 - "run-zonal-tests": Failed to add the host to the list of known hosts (/builder/home/.ssh/google_compute_known_hosts).
Step #4 - "run-standard-tests": Failed to add the host to the list of known hosts (/builder/home/.ssh/google_compute_known_hosts).
Step #6 - "run-zonal-core-tests": Failed to add the host to the list of known hosts (/builder/home/.ssh/google_compute_known_hosts).
Step #4 - "run-standard-tests": --- Running Test Suite: standard ---
Step #7 - "run-hns-tests": Failed to add the host to the list of known hosts (/builder/home/.ssh/google_compute_known_hosts).
Step #5 - "run-zonal-tests": --- Running Test Suite: zonal ---
Step #6 - "run-zonal-core-tests": --- Running Test Suite: zonal-core ---
Step #7 - "run-hns-tests": --- Running Test Suite: hns ---
Step #5 - "run-zonal-tests": --- zonal: pytest exit 0 249 passed, 78 skipped, 8 subtests passed in 99.33s (0:01:39) ---
Finished Step #5 - "run-zonal-tests"
Step #6 - "run-zonal-core-tests": --- zonal-core: pytest exit 0 207 passed, 19 skipped, 1 warning in 201.24s (0:03:21) ---
Finished Step #6 - "run-zonal-core-tests"
Step #7 - "run-hns-tests": --- hns: pytest exit 0 928 passed, 14 skipped, 1 xfailed, 1 xpassed, 17 warnings in 206.41s (0:03:26) ---
Finished Step #7 - "run-hns-tests"
Step #4 - "run-standard-tests": --- standard: pytest exit 0 700 passed, 689 skipped, 1 xfailed, 14 warnings in 231.61s (0:03:51) ---
Finished Step #4 - "run-standard-tests"
Starting Step #8 - "test-report"
Step #8 - "test-report": Already have image (with digest): gcr.io/google.com/cloudsdktool/cloud-sdk
Step #8 - "test-report": Failed to add the host to the list of known hosts (/builder/home/.ssh/google_compute_known_hosts).
Step #8 - "test-report": ===== E2E TEST SUMMARY =====
Step #8 - "test-report": 
Step #8 - "test-report": suite         passed  failed   error  skipped      time
Step #8 - "test-report": standard         700       0       0      690      232s
Step #8 - "test-report": zonal            249       0       0       78       99s
Step #8 - "test-report": zonal-core       207       0       0       19      201s
Step #8 - "test-report": hns              929       0       0       15      206s
Step #8 - "test-report": 
Step #8 - "test-report": No failures or errors.
Step #8 - "test-report": 
Step #8 - "test-report": ===== END OF E2E TEST SUMMARY (full logs follow) =====
Step #8 - "test-report": ===== FULL LOG: standard =====
Step #8 - "test-report": /home/sa_116841737565922334104/env/lib/python3.13/site-packages/pytest_asyncio/plugin.py:300: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset.
Step #8 - "test-report": The event loop scope for asynchronous fixtures will default to the "fixture" caching scope. Future versions of pytest-asyncio will default the loop scope for asynchronous fixtures to "function" scope. Set the default fixture loop scope explicitly in order to avoid unexpected behavior in the future. Valid fixture loop scopes are: "function", "class", "module", "package", "session"
Step #8 - "test-report": 
Step #8 - "test-report":   warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET))
Step #8 - "test-report": /home/sa_116841737565922334104/env/lib/python3.13/site-packages/pytest_asyncio/plugin.py:300: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset.
Step #8 - "test-report": The event loop scope for asynchronous fixtures will default to the "fixture" caching scope. Future versions of pytest-asyncio will default the loop scope for asynchronous fixtures to "function" scope. Set the default fixture loop scope explicitly in order to avoid unexpected behavior in the future. Valid fixture loop scopes are: "function", "class", "module", "package", "session"
Step #8 - "test-report": 
Step #8 - "test-report":   warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET))
Step #8 - "test-report": /home/sa_116841737565922334104/env/lib/python3.13/site-packages/pytest_asyncio/plugin.py:300: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset.
Step #8 - "test-report": The event loop scope for asynchronous fixtures will default to the "fixture" caching scope. Future versions of pytest-asyncio will default the loop scope for asynchronous fixtures to "function" scope. Set the default fixture loop scope explicitly in order to avoid unexpected behavior in the future. Valid fixture loop scopes are: "function", "class", "module", "package", "session"
Step #8 - "test-report": 
Step #8 - "test-report":   warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET))
Step #8 - "test-report": /home/sa_116841737565922334104/env/lib/python3.13/site-packages/pytest_asyncio/plugin.py:300: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset.
Step #8 - "test-report": The event loop scope for asynchronous fixtures will default to the "fixture" caching scope. Future versions of pytest-asyncio will default the loop scope for asynchronous fixtures to "function" scope. Set the default fixture loop scope explicitly in order to avoid unexpected behavior in the future. Valid fixture loop scopes are: "function", "class", "module", "package", "session"
Step #8 - "test-report": 
Step #8 - "test-report":   warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET))
Step #8 - "test-report": /home/sa_116841737565922334104/env/lib/python3.13/site-packages/pytest_asyncio/plugin.py:300: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset.
Step #8 - "test-report": The event loop scope for asynchronous fixtures will default to the "fixture" caching scope. Future versions of pytest-asyncio will default the loop scope for asynchronous fixtures to "function" scope. Set the default fixture loop scope explicitly in order to avoid unexpected behavior in the future. Valid fixture loop scopes are: "function", "class", "module", "package", "session"
Step #8 - "test-report": 
Step #8 - "test-report":   warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET))
Step #8 - "test-report": ============================= test session starts ==============================
Step #8 - "test-report": platform linux -- Python 3.13.5, pytest-9.2.0, pluggy-1.7.0 -- /home/sa_116841737565922334104/env/bin/python3
Step #8 - "test-report": cachedir: .pytest_cache
Step #8 - "test-report": rootdir: /home/sa_116841737565922334104
Step #8 - "test-report": configfile: pyproject.toml
Step #8 - "test-report": plugins: asyncio-1.4.1.post1, xdist-3.8.0, timeout-2.4.0
Step #8 - "test-report": asyncio: mode=Mode.STRICT, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function
Step #8 - "test-report": timeout: 1800.0s
Step #8 - "test-report": timeout method: signal
Step #8 - "test-report": timeout func_only: False
Step #8 - "test-report": created: 4/4 workers
Step #8 - "test-report": 4 workers [1390 items]
Step #8 - "test-report": 
Step #8 - "test-report": scheduling tests via LoadScheduling
Step #8 - "test-report": 
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_file_to_existing_directory <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": gcsfs/tests/test_close_from_event_loop.py::test_read_file_finalized_on_loop_thread_releases_mrd_pool 
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsGet::test_get_list_of_files_to_new_directory <- env/lib/python3.13/site-packages/fsspec/tests/abstract/get.py 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_mv_file_cache 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_close_from_event_loop.py::test_read_file_finalized_on_loop_thread_releases_mrd_pool 
Step #8 - "test-report": gcsfs/tests/test_close_from_event_loop.py::test_write_file_finalized_on_loop_thread_flushes_and_finalizes 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_close_from_event_loop.py::test_write_file_finalized_on_loop_thread_flushes_and_finalizes 
Step #8 - "test-report": gcsfs/tests/test_close_from_event_loop.py::test_close_on_loop_thread_is_idempotent 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_close_from_event_loop.py::test_close_on_loop_thread_is_idempotent 
Step #8 - "test-report": gcsfs/tests/test_close_from_event_loop.py::test_deferred_closes_share_a_bounded_thread_pool 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_close_from_event_loop.py::test_deferred_closes_share_a_bounded_thread_pool 
Step #8 - "test-report": gcsfs/tests/test_close_from_event_loop.py::test_off_loop_close_still_blocks_and_propagates_errors 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_close_from_event_loop.py::test_off_loop_close_still_blocks_and_propagates_errors 
Step #8 - "test-report": gcsfs/tests/test_close_from_event_loop.py::test_gcsfile_finalizer_when_already_closed_or_deferred 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_close_from_event_loop.py::test_gcsfile_finalizer_when_already_closed_or_deferred 
Step #8 - "test-report": gcsfs/tests/test_close_from_event_loop.py::test_gcsfile_finalizer_when_sys_finalizing 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_close_from_event_loop.py::test_gcsfile_finalizer_when_sys_finalizing 
Step #8 - "test-report": gcsfs/tests/test_close_from_event_loop.py::test_gcsfile_finalizer_when_queue_is_none 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_close_from_event_loop.py::test_gcsfile_finalizer_when_queue_is_none 
Step #8 - "test-report": gcsfs/tests/test_close_from_event_loop.py::test_gcsfile_finalized_on_loop_thread_defers_close 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_close_from_event_loop.py::test_gcsfile_finalized_on_loop_thread_defers_close 
Step #8 - "test-report": gcsfs/tests/test_close_from_event_loop.py::test_defer_task_tracks_and_discards_task 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_close_from_event_loop.py::test_defer_task_tracks_and_discards_task 
Step #8 - "test-report": gcsfs/tests/test_close_from_event_loop.py::test_defer_task_logs_exception 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_close_from_event_loop.py::test_defer_task_logs_exception 
Step #8 - "test-report": gcsfs/tests/test_close_from_event_loop.py::test_gcsfile_cache_del_does_not_block_gc 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_close_from_event_loop.py::test_gcsfile_cache_del_does_not_block_gc 
Step #8 - "test-report": gcsfs/tests/test_close_from_event_loop.py::test_gcsfile_adaptive_cache_binds_to_fs_loop_after_reset_lock 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_close_from_event_loop.py::test_gcsfile_adaptive_cache_binds_to_fs_loop_after_reset_lock 
Step #8 - "test-report": gcsfs/tests/test_concurrency.py::test_split_range_caps_concurrency[0-4-5-expected0] 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_concurrency.py::test_split_range_caps_concurrency[0-4-5-expected0] 
Step #8 - "test-report": gcsfs/tests/test_concurrency.py::test_split_range_caps_concurrency[4-4-5-expected1] 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_concurrency.py::test_split_range_caps_concurrency[4-4-5-expected1] 
Step #8 - "test-report": gcsfs/tests/test_concurrency.py::test_split_range_caps_concurrency[5-4-5-expected2] 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_concurrency.py::test_split_range_caps_concurrency[5-4-5-expected2] 
Step #8 - "test-report": gcsfs/tests/test_concurrency.py::test_split_range_caps_concurrency[20-1000-5-expected3] 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_concurrency.py::test_split_range_caps_concurrency[20-1000-5-expected3] 
Step #8 - "test-report": gcsfs/tests/test_concurrency.py::test_split_range_caps_concurrency[21-4-5-expected4] 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_concurrency.py::test_split_range_caps_concurrency[21-4-5-expected4] 
Step #8 - "test-report": gcsfs/tests/test_concurrency.py::test_split_range_caps_concurrency[21-1000-5-expected5] 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_concurrency.py::test_split_range_caps_concurrency[21-1000-5-expected5] 
Step #8 - "test-report": gcsfs/tests/test_concurrency.py::test_parallel_tasks_first_completed_basic 
Step #8 - "test-report": [gw3] PASSED gcsfs/tests/test_core.py::test_mv_file_cache 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_concurrency.py::test_parallel_tasks_first_completed_basic 
Step #8 - "test-report": gcsfs/tests/test_concurrency.py::test_parallel_tasks_first_completed_cancellation 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_mv_file_calls_move_to 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_concurrency.py::test_parallel_tasks_first_completed_cancellation 
Step #8 - "test-report": gcsfs/tests/test_concurrency.py::test_parallel_tasks_first_completed_exception 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_concurrency.py::test_parallel_tasks_first_completed_exception 
Step #8 - "test-report": gcsfs/tests/test_concurrency.py::test_parallel_tasks_unretrieved_exception_fix 
Step #8 - "test-report": [gw1] PASSED gcsfs/tests/derived/gcsfs_test.py::TestGcsfsGet::test_get_list_of_files_to_new_directory <- env/lib/python3.13/site-packages/fsspec/tests/abstract/get.py 
Step #8 - "test-report": [gw3] PASSED gcsfs/tests/test_core.py::test_mv_file_calls_move_to 
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsGet::test_get_directory_recursive <- env/lib/python3.13/site-packages/fsspec/tests/abstract/get.py 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_concurrency.py::test_parallel_tasks_unretrieved_exception_fix 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_simple 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_mv_file_fallback 
Step #8 - "test-report": [gw1] PASSED gcsfs/tests/derived/gcsfs_test.py::TestGcsfsGet::test_get_directory_recursive <- env/lib/python3.13/site-packages/fsspec/tests/abstract/get.py 
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsGet::test_get_directory_without_files_with_same_name_prefix <- env/lib/python3.13/site-packages/fsspec/tests/abstract/get.py 
Step #8 - "test-report": [gw3] PASSED gcsfs/tests/test_core.py::test_mv_file_fallback 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_core.py::test_simple 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_gcs_init_invalid_access 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_mv_file_raises_filenotfound_from_moveto 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_core.py::test_gcs_init_invalid_access 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_exists 
Step #8 - "test-report": [gw0] PASSED gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_file_to_existing_directory <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_file_to_new_directory <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": [gw1] PASSED gcsfs/tests/derived/gcsfs_test.py::TestGcsfsGet::test_get_directory_without_files_with_same_name_prefix <- env/lib/python3.13/site-packages/fsspec/tests/abstract/get.py 
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsGet::test_get_with_source_and_destination_as_list <- env/lib/python3.13/site-packages/fsspec/tests/abstract/get.py 
Step #8 - "test-report": [gw3] PASSED gcsfs/tests/test_core.py::test_mv_file_raises_filenotfound_from_moveto 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_mv_file_idempotency_retries 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_core.py::test_exists 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_isdir 
Step #8 - "test-report": [gw0] PASSED gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_file_to_new_directory <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_file_to_file_in_existing_directory <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": [gw1] PASSED gcsfs/tests/derived/gcsfs_test.py::TestGcsfsGet::test_get_with_source_and_destination_as_list <- env/lib/python3.13/site-packages/fsspec/tests/abstract/get.py 
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_file_to_existing_directory <- env/lib/python3.13/site-packages/fsspec/tests/abstract/put.py 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_core.py::test_isdir 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_isfile 
Step #8 - "test-report": [gw3] PASSED gcsfs/tests/test_core.py::test_mv_file_idempotency_retries 
Step #8 - "test-report": [gw0] PASSED gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_file_to_file_in_existing_directory <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_cat_file 
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_file_to_file_in_new_directory <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_core.py::test_isfile 
Step #8 - "test-report": [gw3] PASSED gcsfs/tests/test_core.py::test_cat_file 
Step #8 - "test-report": [gw1] PASSED gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_file_to_existing_directory <- env/lib/python3.13/site-packages/fsspec/tests/abstract/put.py 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_dircache_filled 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_get_put[None] 
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_file_to_new_directory <- env/lib/python3.13/site-packages/fsspec/tests/abstract/put.py 
Step #8 - "test-report": [gw1] PASSED gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_file_to_new_directory <- env/lib/python3.13/site-packages/fsspec/tests/abstract/put.py 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_core.py::test_dircache_filled 
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_file_to_file_in_existing_directory <- env/lib/python3.13/site-packages/fsspec/tests/abstract/put.py 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_many_connect 
Step #8 - "test-report": [gw0] PASSED gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_file_to_file_in_new_directory <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": [gw1] PASSED gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_file_to_file_in_existing_directory <- env/lib/python3.13/site-packages/fsspec/tests/abstract/put.py 
Step #8 - "test-report": [gw3] PASSED gcsfs/tests/test_core.py::test_get_put[None] 
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_file_to_file_in_new_directory <- env/lib/python3.13/site-packages/fsspec/tests/abstract/put.py 
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_directory_to_existing_directory <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_get_put[size] 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_core.py::test_many_connect 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_many_connect_new 
Step #8 - "test-report": [gw1] PASSED gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_file_to_file_in_new_directory <- env/lib/python3.13/site-packages/fsspec/tests/abstract/put.py 
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_directory_to_existing_directory <- env/lib/python3.13/site-packages/fsspec/tests/abstract/put.py 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_core.py::test_many_connect_new 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_simple_upload 
Step #8 - "test-report": [gw3] PASSED gcsfs/tests/test_core.py::test_get_put[size] 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_get_put[md5] 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_core.py::test_simple_upload 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_simple_upload_with_kms 
Step #8 - "test-report": [gw3] PASSED gcsfs/tests/test_core.py::test_get_put[md5] 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_get_put[crc32c] 
Step #8 - "test-report": [gw1] PASSED gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_directory_to_existing_directory <- env/lib/python3.13/site-packages/fsspec/tests/abstract/put.py 
Step #8 - "test-report": gcsfs/tes
...
[Logs truncated due to log size limitations. For full logs, see https://console.cloud.google.com/logs/viewer?advancedFilter=resource.type%3D%22build%22+AND+resource.labels.build_id%3D%22e328926d-3ef5-4a3d-9cf5-4db7e65e5da0%22+AND+resource.labels.build_trigger_id%3D%22433a7f7f-df84-4d06-acae-a2bc3ccae773%22&project=gcsfs-ci-902862.]
...
7] PASSED gcsfs/tests/test_retry.py::test_is_retriable_extra 
Step #8 - "test-report": [gw4] PASSED gcsfs/tests/test_mapping.py::test_map_clear_empty 
Step #8 - "test-report": gcsfs/tests/test_hns.py::TestExtendedGcsFileSystemFindIntegration::test_find_partial_prefix 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_init_local_file 
Step #8 - "test-report": [gw6] PASSED gcsfs/tests/test_core.py::test_init_local_file 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_open_generation_forwarded 
Step #8 - "test-report": [gw6] PASSED gcsfs/tests/test_core.py::test_open_generation_forwarded 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_cat_file_generation 
Step #8 - "test-report": [gw6] PASSED gcsfs/tests/test_core.py::test_cat_file_generation 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_file_url_generation 
Step #8 - "test-report": [gw6] PASSED gcsfs/tests/test_core.py::test_file_url_generation 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_get_cache_type_header_value 
Step #8 - "test-report": [gw6] PASSED gcsfs/tests/test_core.py::test_get_cache_type_header_value 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_get_headers_includes_cache_type 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_hns.py::TestExtendedGcsFileSystemFindIntegration::test_find_partial_prefix 
Step #8 - "test-report": [gw3] PASSED gcsfs/tests/test_hns.py::TestExtendedGcsFileSystemExpandPath::test_hns_expand_path 
Step #8 - "test-report": [gw6] PASSED gcsfs/tests/test_core.py::test_get_headers_includes_cache_type 
Step #8 - "test-report": [gw0] PASSED gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**-True-None-expected12] <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": gcsfs/tests/test_hns.py::TestExtendedGcsFileSystemFindIntegration::test_find_on_file 
Step #8 - "test-report": gcsfs/tests/test_hns.py::TestHNSFolderStatus::test_hns_empty_folder_status 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_user_agent_includes_cache_type_and_source_in_read 
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**-True-1-expected13] <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": [gw3] PASSED gcsfs/tests/test_hns.py::TestHNSFolderStatus::test_hns_empty_folder_status 
Step #8 - "test-report": gcsfs/tests/test_hns.py::TestExtendedGcsFileSystemHnsRequesterPays::test_hns_mkdir_fails_without_quota_project 
Step #8 - "test-report": [gw2] PASSED gcsfs/tests/test_hns.py::TestExtendedGcsFileSystemFindIntegration::test_find_on_file 
Step #8 - "test-report": [gw3] PASSED gcsfs/tests/test_hns.py::TestExtendedGcsFileSystemHnsRequesterPays::test_hns_mkdir_fails_without_quota_project 
Step #8 - "test-report": [gw6] PASSED gcsfs/tests/test_core.py::test_user_agent_includes_cache_type_and_source_in_read 
Step #8 - "test-report": gcsfs/tests/test_hns.py::TestExtendedGcsFileSystemHnsRequesterPays::test_hns_mkdir_succeeds_with_quota_project 
Step #8 - "test-report": [gw3] PASSED gcsfs/tests/test_hns.py::TestExtendedGcsFileSystemHnsRequesterPays::test_hns_mkdir_succeeds_with_quota_project 
Step #8 - "test-report": gcsfs/tests/test_hns.py::TestExtendedGcsFileSystemHnsRequesterPays::test_hns_bucket_type_detection_with_req_pays 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_process_object_structure 
Step #8 - "test-report": [gw3] PASSED gcsfs/tests/test_hns.py::TestExtendedGcsFileSystemHnsRequesterPays::test_hns_bucket_type_detection_with_req_pays 
Step #8 - "test-report": gcsfs/tests/test_hns_unit.py::TestExtendedGcsFileSystemMv::test_hns_folder_rename_success[simple_rename_at_root] 
Step #8 - "test-report": [gw6] PASSED gcsfs/tests/test_core.py::test_process_object_structure 
Step #8 - "test-report": [gw3] PASSED gcsfs/tests/test_hns_unit.py::TestExtendedGcsFileSystemMv::test_hns_folder_rename_success[simple_rename_at_root] 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_process_object_leading_slash 
Step #8 - "test-report": gcsfs/tests/test_hns_unit.py::TestExtendedGcsFileSystemMv::test_hns_folder_rename_success[rename_within_nested_dir] 
Step #8 - "test-report": [gw6] PASSED gcsfs/tests/test_core.py::test_process_object_leading_slash 
Step #8 - "test-report": [gw3] PASSED gcsfs/tests/test_hns_unit.py::TestExtendedGcsFileSystemMv::test_hns_folder_rename_success[rename_within_nested_dir] 
Step #8 - "test-report": [gw0] PASSED gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**-True-1-expected13] <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**-True-2-expected14] <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": [gw0] PASSED gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**-True-2-expected14] <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**-False-2-expected15] <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": [gw0] PASSED gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**-False-2-expected15] <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**/*1-False-None-expected16] <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": [gw0] PASSED gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**/*1-False-None-expected16] <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**/*1-True-None-expected17] <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": [gw0] PASSED gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**/*1-True-None-expected17] <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**/*1-True-1-expected18] <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": [gw0] PASSED gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**/*1-True-1-expected18] <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**/*1-True-2-expected19] <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": [gw0] PASSED gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**/*1-True-2-expected19] <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**/*1-False-2-expected20] <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": [gw0] PASSED gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**/*1-False-2-expected20] <- env/lib/python3.13/site-packages/fsspec/tests/abstract/copy.py 
Step #8 - "test-report": 
Step #8 - "test-report": =============================== warnings summary ===============================
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsGet::test_get_directory_recursive
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_glob_edge_cases[**/*1-True-1-expected18]
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_file_to_existing_directory
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsGet::test_get_glob_edge_cases[*-True-None-expected5]
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**/subdir0-False-None-expected21]
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_file_to_existing_directory
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPipe::test_pipe_exclusive
Step #8 - "test-report": gcsfs/tests/derived/gcsfs_test.py::TestGcsfsGet::test_get_file_to_existing_directory
Step #8 - "test-report":   /home/sa_116841737565922334104/env/lib/python3.13/site-packages/_pytest/fixtures.py:1392: PytestRemovedIn10Warning: Class-scoped fixtures defined as instance methods are deprecated.
Step #8 - "test-report":   Instance attributes set in the 'fs' fixture will NOT be visible to test methods,
Step #8 - "test-report":   as each test gets a new instance while the fixture runs only once per class.
Step #8 - "test-report":   Use a @classmethod decorator below @pytest.fixture and set attributes on cls instead.
Step #8 - "test-report":   See https://docs.pytest.org/en/stable/deprecations.html#class-scoped-fixture-as-instance-method
Step #8 - "test-report":     fixturefunc = resolve_fixture_function(fixturedef, request)
Step #8 - "test-report": 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_info
Step #8 - "test-report":   /home/sa_116841737565922334104/gcsfs/tests/test_core.py:419: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
Step #8 - "test-report":     today = datetime.utcnow().date().isoformat()
Step #8 - "test-report": 
Step #8 - "test-report": gcsfs/tests/test_core.py::test_near_find
Step #8 - "test-report":   /home/sa_116841737565922334104/env/lib/python3.13/site-packages/_pytest/unraisableexception.py:63: PytestUnraisableExceptionWarning: Exception ignored in: <_io.BytesIO object at 0x7faec824cef0>
Step #8 - "test-report":   
Step #8 - "test-report":   Traceback (most recent call last):
Step #8 - "test-report":     File "/home/sa_116841737565922334104/env/lib/python3.13/site-packages/aiohappyeyeballs/_staggered.py", line 122, in run_one_coro
Step #8 - "test-report":       result = await coro_fn()
Step #8 - "test-report":                ^^^^^^^^^^^^^^^
Step #8 - "test-report":     File "/home/sa_116841737565922334104/env/lib/python3.13/site-packages/aiohappyeyeballs/impl.py", line 210, in _connect_sock
Step #8 - "test-report":       await loop.sock_connect(sock, address)
Step #8 - "test-report":     File "/usr/lib/python3.13/asyncio/selector_events.py", line 641, in sock_connect
Step #8 - "test-report":       return await fut
Step #8 - "test-report":              ^^^^^^^^^
Step #8 - "test-report":     File "/usr/lib/python3.13/asyncio/selector_events.py", line 649, in _sock_connect
Step #8 - "test-report":       sock.connect(address)
Step #8 - "test-report":       ~~~~~~~~~~~~^^^^^^^^^
Step #8 - "test-report":   OSError: [Errno 101] Network is unreachable
Step #8 - "test-report":   
Step #8 - "test-report":   During handling of the above exception, another exception occurred:
Step #8 - "test-report":   
Step #8 - "test-report":   Traceback (most recent call last):
Step #8 - "test-report":     File "/home/sa_116841737565922334104/env/lib/python3.13/site-packages/aiohappyeyeballs/_staggered.py", line 15, in _set_result
Step #8 - "test-report":       def _set_result(wait_next: "asyncio.Future[None]") -> None:
Step #8 - "test-report":       
Step #8 - "test-report":   BufferError: Existing exports of data: object cannot be re-sized
Step #8 - "test-report":   
Step #8 - "test-report":   Enable tracemalloc to get traceback where the object was allocated.
Step #8 - "test-report":   See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
Step #8 - "test-report":     warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))
Step #8 - "test-report": 
Step #8 - "test-report": gcsfs/tests/test_credentials.py::test_raw_token_credentials_init_with_raw_token_fetches_expiry
Step #8 - "test-report": gcsfs/tests/test_credentials.py::test_raw_token_credentials_refresh_throws_error_after_expiry
Step #8 - "test-report": gcsfs/tests/test_credentials.py::test_raw_token_credentials_init_raises_on_short_lived_token
Step #8 - "test-report":   /home/sa_116841737565922334104/gcsfs/credentials.py:62: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC).
Step #8 - "test-report":     expiry = datetime.utcfromtimestamp(float(response.json()["exp"]))
Step #8 - "test-report": 
Step #8 - "test-report": gcsfs/tests/test_credentials.py::test_raw_token_credentials_init_with_raw_token_fetches_expiry
Step #8 - "test-report":   /home/sa_116841737565922334104/gcsfs/tests/test_credentials.py:142: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC).
Step #8 - "test-report":     assert creds.credentials.expiry == datetime.datetime.utcfromtimestamp(
Step #8 - "test-report": 
Step #8 - "test-report": gcsfs/tests/test_credentials.py::test_raw_token_credentials_refresh_throws_error_after_expiry
Step #8 - "test-report":   /home/sa_116841737565922334104/gcsfs/tests/test_credentials.py:202: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
Step #8 - "test-report":     creds.credentials.expiry = datetime.datetime.utcnow() - datetime.timedelta(
Step #8 - "test-report": 
Step #8 - "test-report": gcsfs/tests/test_fuse.py::test_fuse
Step #8 - "test-report":   /home/sa_116841737565922334104/env/lib/python3.13/site-packages/fuse.py:649: DeprecationWarning: Time as floating point seconds for utimens is deprecated!
Step #8 - "test-report":   To enable time as nanoseconds set the property "use_ns" to True in your operations class or set your fusepy requirements to <4.
Step #8 - "test-report":     warnings.warn(
Step #8 - "test-report": 
Step #8 - "test-report": gcsfs/tests/test_telemetry.py::test_post_fork_telemetry_reset
Step #8 - "test-report":   /usr/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=5156) is multi-threaded, use of fork() may lead to deadlocks in the child.
Step #8 - "test-report":     self.pid = os.fork()
Step #8 - "test-report": 
Step #8 - "test-report": -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
Step #8 - "test-report": --- generated xml file: /home/sa_116841737565922334104/test-results/hns.xml ----
Step #8 - "test-report": ============================= slowest 50 durations =============================
Step #8 - "test-report": 34.50s call     gcsfs/tests/test_core.py::test_get_file_concurrent_early_eof
Step #8 - "test-report": 10.79s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_to_new_directory
Step #8 - "test-report": 9.68s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[*-True-None-expected5]
Step #8 - "test-report": 9.49s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_glob_to_new_directory
Step #8 - "test-report": 8.68s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**-True-2-expected14]
Step #8 - "test-report": 8.60s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_to_existing_directory
Step #8 - "test-report": 8.03s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**-True-None-expected12]
Step #8 - "test-report": 7.59s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_glob_to_existing_directory
Step #8 - "test-report": 6.54s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[*-True-2-expected7]
Step #8 - "test-report": 6.12s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[*1-True-None-expected9]
Step #8 - "test-report": 5.73s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**/*1-True-None-expected17]
Step #8 - "test-report": 5.70s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_glob_edge_cases[*-True-None-expected5]
Step #8 - "test-report": 5.63s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_glob_edge_cases[**-True-None-expected12]
Step #8 - "test-report": 5.45s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**-False-None-expected11]
Step #8 - "test-report": 5.41s call     gcsfs/tests/test_core.py::test_bucket_location[EUROPE-WEST3]
Step #8 - "test-report": 5.17s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_glob_edge_cases[**-True-2-expected14]
Step #8 - "test-report": 5.05s call     gcsfs/tests/test_core.py::test_bucket_location[europe-west3]
Step #8 - "test-report": 5.03s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[subdir[0-1]-True-None-expected29]
Step #8 - "test-report": 4.95s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_glob_edge_cases[**-False-None-expected11]
Step #8 - "test-report": 4.89s call     gcsfs/tests/test_core.py::test_bucket_default_location_overwrite
Step #8 - "test-report": 4.84s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**/*1-True-2-expected19]
Step #8 - "test-report": 4.82s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**/subdir0-True-None-expected22]
Step #8 - "test-report": 4.76s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_glob_edge_cases[**/*1-True-None-expected17]
Step #8 - "test-report": 4.76s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_glob_edge_cases[*1-True-None-expected9]
Step #8 - "test-report": 4.73s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_glob_edge_cases[subdir[0-1]-True-None-expected29]
Step #8 - "test-report": 4.65s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_glob_edge_cases[**-False-2-expected15]
Step #8 - "test-report": 4.64s call     gcsfs/tests/test_fuse.py::test_fuse
Step #8 - "test-report": 4.64s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_directory_to_existing_directory
Step #8 - "test-report": 4.62s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[subdir[0-1]/*fil[e]*-False-None-expected30]
Step #8 - "test-report": 4.29s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_glob_edge_cases[**/*1-True-2-expected19]
Step #8 - "test-report": 4.24s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[subdir[0-1]/*fil[e]*-True-None-expected31]
Step #8 - "test-report": 4.17s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_directory_to_new_directory
Step #8 - "test-report": 4.16s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_directory_to_new_directory
Step #8 - "test-report": 4.16s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_glob_edge_cases[subdir[1-2]-True-None-expected26]
Step #8 - "test-report": 4.13s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[subdir[1-2]-True-None-expected26]
Step #8 - "test-report": 4.09s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_directory_to_existing_directory
Step #8 - "test-report": 4.07s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[*1-True-2-expected10]
Step #8 - "test-report": 4.07s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_glob_edge_cases[**/subdir0-True-None-expected22]
Step #8 - "test-report": 4.06s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**-False-2-expected15]
Step #8 - "test-report": 3.98s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_glob_edge_cases[**/*1-False-2-expected20]
Step #8 - "test-report": 3.87s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_glob_edge_cases[*-True-2-expected7]
Step #8 - "test-report": 3.84s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_glob_edge_cases[*1-True-2-expected10]
Step #8 - "test-report": 3.82s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsGet::test_get_glob_edge_cases[**-True-None-expected12]
Step #8 - "test-report": 3.72s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**/*1-False-None-expected16]
Step #8 - "test-report": 3.70s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_glob_edge_cases[subdir[0-1]/*fil[e]*-False-None-expected30]
Step #8 - "test-report": 3.70s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[**/*1-False-2-expected20]
Step #8 - "test-report": 3.65s call     gcsfs/tests/test_hns.py::TestExtendedGcsFileSystemRm::test_rm_folder_with_placeholder
Step #8 - "test-report": 3.46s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_glob_edge_cases[**/*1-False-None-expected16]
Step #8 - "test-report": 3.43s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsPut::test_put_glob_edge_cases[file[1-2]-False-None-expected2]
Step #8 - "test-report": 3.43s call     gcsfs/tests/derived/gcsfs_test.py::TestGcsfsCopy::test_copy_glob_edge_cases[file[1-2]-True-None-expected3]
Step #8 - "test-report": = 928 passed, 14 skipped, 1 xfailed, 1 xpassed, 17 warnings in 206.41s (0:03:26) =
Finished Step #8 - "test-report"
Starting Step #9 - "cleanup"
Step #9 - "cleanup": Already have image (with digest): gcr.io/google.com/cloudsdktool/cloud-sdk
Step #9 - "cleanup": --- Deleting VM ---
Step #9 - "cleanup": --- Removing SSH key from OS Login ---
Step #9 - "cleanup": --- Deleting buckets ---
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-standard-e328926d-gw0/...
Step #9 - "cleanup": .
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-standard-e328926d-gw1/...
Step #9 - "cleanup": ..
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-standard-e328926d-gw2/...
Step #9 - "cleanup": ..
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-standard-e328926d-gw3/...
Step #9 - "cleanup": ..
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-versioned-e328926d-gw0/...
Step #9 - "cleanup": .
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-versioned-e328926d-gw1/...
Step #9 - "cleanup": .
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-versioned-e328926d-gw2/...
Step #9 - "cleanup": ..
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-versioned-e328926d-gw3/...
Step #9 - "cleanup": ..
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-hns-e328926d-gw0/...
Step #9 - "cleanup": ..
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-hns-e328926d-gw1/...
Step #9 - "cleanup": .
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-hns-e328926d-gw2/...
Step #9 - "cleanup": ..
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-hns-e328926d-gw3/...
Step #9 - "cleanup": ...
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-hns-e328926d-gw4/...
Step #9 - "cleanup": ..
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-hns-e328926d-gw5/...
Step #9 - "cleanup": .
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-hns-e328926d-gw6/...
Step #9 - "cleanup": ..
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-hns-e328926d-gw7/...
Step #9 - "cleanup": .
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-zonal-e328926d-gw0/...
Step #9 - "cleanup": .
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-zonal-e328926d-gw1/...
Step #9 - "cleanup": ..
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-standard-for-zonal-e328926d-gw0/...
Step #9 - "cleanup": .
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-standard-for-zonal-e328926d-gw1/...
Step #9 - "cleanup": ..
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-zonal-core-e328926d-gw0/...
Step #9 - "cleanup": .
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-zonal-core-e328926d-gw1/...
Step #9 - "cleanup": ..
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Deleted [https://www.googleapis.com/compute/v1/projects/gcsfs-ci-902862/zones/us-central1-a/instances/gcsfs-test-vm-e328926d].
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-hns-req-pay-e328926d-gw0/...
Step #9 - "cleanup": .
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-hns-req-pay-e328926d-gw1/...
Step #9 - "cleanup": ...
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-hns-req-pay-e328926d-gw2/...
Step #9 - "cleanup": ..
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-hns-req-pay-e328926d-gw3/...
Step #9 - "cleanup": .
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-hns-req-pay-e328926d-gw4/...
Step #9 - "cleanup": .
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-hns-req-pay-e328926d-gw5/...
Step #9 - "cleanup": ..
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-hns-req-pay-e328926d-gw6/...
Step #9 - "cleanup": ..
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-hns-req-pay-e328926d-gw7/...
Step #9 - "cleanup": ..
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-standard-req-pay-e328926d-gw0/...
Step #9 - "cleanup": ..
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-standard-req-pay-e328926d-gw1/...
Step #9 - "cleanup": ..
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-standard-req-pay-e328926d-gw2/...
Step #9 - "cleanup": .
Step #9 - "cleanup": Removing objects:
Step #9 - "cleanup":   
Step #9 - "cleanup": 
Step #9 - "cleanup": Removing buckets:
Step #9 - "cleanup":   
Step #9 - "cleanup": Removing gs://gcsfs-test-standard-req-pay-e328926d-gw3/...
Step #9 - "cleanup": .
Finished Step #9 - "cleanup"
Starting Step #10 - "check-failure"
Step #10 - "check-failure": Already have image (with digest): gcr.io/google.com/cloudsdktool/cloud-sdk
Step #10 - "check-failure": Build successful.
Finished Step #10 - "check-failure"
PUSH
DONE

Build Log: https://console.cloud.google.com/logs/viewer?advancedFilter=resource.type%3D%22build%22+AND+resource.labels.build_id%3D%22e328926d-3ef5-4a3d-9cf5-4db7e65e5da0%22+AND+resource.labels.build_trigger_id%3D%22433a7f7f-df84-4d06-acae-a2bc3ccae773%22&project=gcsfs-ci-902862