LCOV - code coverage report
Current view: top level - libs/utils/src - backoff.rs (source / functions) Coverage Total Hit
Test: 2b0730d767f560e20b6748f57465922aa8bb805e.info Lines: 96.0 % 150 144
Test Date: 2024-09-25 14:04:07 Functions: 45.9 % 133 61

Function Name Sort by function name Hit count Sort by function hit count
utils::backoff::tests::backoff_defaults_produce_growing_backoff_sequence 1
utils::backoff::tests::dont_retry_permanent_errors::{closure#0}::{closure#0} 1
utils::backoff::tests::dont_retry_permanent_errors::{closure#0}::{closure#0}::{closure#0} 1
utils::backoff::tests::dont_retry_permanent_errors::{closure#0}::{closure#1} 1
utils::backoff::tests::dont_retry_permanent_errors 2
utils::backoff::tests::dont_retry_permanent_errors 1
utils::backoff::tests::dont_retry_permanent_errors::{closure#0} 1
utils::backoff::tests::retry_always_error 2
utils::backoff::tests::retry_always_error 1
utils::backoff::tests::retry_always_error::{closure#0} 1
utils::backoff::tests::retry_always_error::{closure#0}::{closure#0} 2
utils::backoff::tests::retry_always_error::{closure#0}::{closure#0}::{closure#0} 2
utils::backoff::tests::retry_always_error::{closure#0}::{closure#1} 2
utils::backoff::tests::retry_ok_after_err 2
utils::backoff::tests::retry_ok_after_err 1
utils::backoff::tests::retry_ok_after_err::{closure#0} 1
utils::backoff::tests::retry_ok_after_err::{closure#0}::{closure#1} 2
utils::backoff::tests::retry_ok_after_err::{closure#0}::{closure#0} 3
utils::backoff::tests::retry_ok_after_err::{closure#0}::{closure#0}::{closure#0} 3
utils::backoff::retry::<_, _, _, _, _> 848
utils::backoff::retry::<(), ::upload_initdb::{closure#0}::{closure#0}, ::upload_initdb::{closure#0}::{closure#0}::{closure#0}, anyhow::Error, ::upload_initdb::{closure#0}::{closure#1}> 0
utils::backoff::retry::<(), ::delete_tenant::{closure#0}::{closure#0}, ::delete_tenant::{closure#0}::{closure#0}::{closure#0}, pageserver::tenant::mgr::DeleteTenantError, ::delete_tenant::{closure#0}::{closure#1}> 0
utils::backoff::retry::<(), ::copy_timeline_layer::{closure#0}::{closure#0}, ::copy_timeline_layer::{closure#0}::{closure#0}::{closure#0}, anyhow::Error, ::caused_by_cancel> 0
utils::backoff::retry::<(), ::persist_index_part_with_deleted_flag::{closure#0}::{closure#0}::{closure#1}, pageserver::tenant::remote_timeline_client::upload::upload_index_part::{closure#0}, anyhow::Error, ::persist_index_part_with_deleted_flag::{closure#0}::{closure#0}::{closure#2}> 0
utils::backoff::retry::<(), ::preserve_initdb_archive::{closure#0}::{closure#0}, ::preserve_initdb_archive::{closure#0}::{closure#0}::{closure#0}, anyhow::Error, ::caused_by_cancel> 0
utils::backoff::retry::<(), ::upload_layer_file::{closure#0}::{closure#0}, ::upload_layer_file::{closure#0}::{closure#0}::{closure#0}, anyhow::Error, ::caused_by_cancel> 0
utils::backoff::retry::<(), ::do_notify::{closure#0}::{closure#1}, ::do_notify_iteration::{closure#0}, storage_controller::compute_hook::NotifyError, ::do_notify::{closure#0}::{closure#2}> 0
utils::backoff::retry::<(), ::with_client_retries<(), ::location_config::{closure#0}::{closure#0}, ::location_config::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries<(), ::location_config::{closure#0}::{closure#0}, ::location_config::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal> 0
utils::backoff::retry::<(), ::with_client_retries<(), ::abort_tenant_shard_split::{closure#0}::{closure#0}::{closure#1}, ::abort_tenant_shard_split::{closure#0}::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries<(), ::abort_tenant_shard_split::{closure#0}::{closure#0}::{closure#1}, ::abort_tenant_shard_split::{closure#0}::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal> 0
utils::backoff::retry::<(), ::with_client_retries<(), ::node_activate_reconcile::{closure#0}::{closure#0}::{closure#1}, ::node_activate_reconcile::{closure#0}::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries<(), ::node_activate_reconcile::{closure#0}::{closure#0}::{closure#1}, ::node_activate_reconcile::{closure#0}::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal> 0
utils::backoff::retry::<(), ::with_client_retries<(), ::tenant_for_shards_api<(), ::tenant_shard_split_start_secondaries::{closure#0}::{closure#0}, ::tenant_shard_split_start_secondaries::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, ::tenant_shard_split_start_secondaries::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries<(), ::tenant_for_shards_api<(), ::tenant_shard_split_start_secondaries::{closure#0}::{closure#0}, ::tenant_shard_split_start_secondaries::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, ::tenant_shard_split_start_secondaries::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal> 0
utils::backoff::retry::<(), pageserver::consumption_metrics::upload::upload::{closure#0}::{closure#0}, pageserver::consumption_metrics::upload::upload::{closure#0}::{closure#0}::{closure#0}, pageserver::consumption_metrics::upload::UploadError, ::is_reject> 0
utils::backoff::retry::<(), pageserver::tenant::remote_timeline_client::upload::time_travel_recover_tenant::{closure#0}::{closure#0}, pageserver::tenant::remote_timeline_client::upload::time_travel_recover_tenant::{closure#0}::{closure#0}::{closure#0}, remote_storage::error::TimeTravelError, pageserver::tenant::remote_timeline_client::upload::time_travel_recover_tenant::{closure#0}::{closure#1}> 0
utils::backoff::retry::<(), pageserver::tenant::secondary::heatmap_uploader::upload_tenant_heatmap::{closure#0}::{closure#5}, pageserver::tenant::secondary::heatmap_uploader::upload_tenant_heatmap::{closure#0}::{closure#5}::{closure#0}, anyhow::Error, ::caused_by_cancel> 0
utils::backoff::retry::<(), proxy::usage_metrics::upload_events_chunk::{closure#0}::{closure#0}, proxy::usage_metrics::upload_events_chunk::{closure#0}::{closure#0}::{closure#0}, anyhow::Error, ::caused_by_cancel> 0
utils::backoff::retry::<(), safekeeper::wal_backup::delete_timeline::{closure#0}::{closure#0}, safekeeper::wal_backup::delete_timeline::{closure#0}::{closure#0}::{closure#0}, anyhow::Error, safekeeper::wal_backup::delete_timeline::{closure#0}::{closure#1}> 0
utils::backoff::retry::<(http::status::StatusCode, pageserver_api::models::SecondaryProgress), ::with_client_retries<(http::status::StatusCode, pageserver_api::models::SecondaryProgress), ::secondary_download::{closure#0}::{closure#0}, ::secondary_download::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries<(http::status::StatusCode, pageserver_api::models::SecondaryProgress), ::secondary_download::{closure#0}::{closure#0}, ::secondary_download::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal> 0
utils::backoff::retry::<(http::status::StatusCode, pageserver_api::models::SecondaryProgress), ::with_client_retries<(http::status::StatusCode, pageserver_api::models::SecondaryProgress), ::tenant_for_shards_api<(http::status::StatusCode, pageserver_api::models::SecondaryProgress), ::tenant_shard_split_start_secondaries::{closure#0}::{closure#1}, ::tenant_shard_split_start_secondaries::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, ::tenant_shard_split_start_secondaries::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries<(http::status::StatusCode, pageserver_api::models::SecondaryProgress), ::tenant_for_shards_api<(http::status::StatusCode, pageserver_api::models::SecondaryProgress), ::tenant_shard_split_start_secondaries::{closure#0}::{closure#1}, ::tenant_shard_split_start_secondaries::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, ::tenant_shard_split_start_secondaries::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal> 0
utils::backoff::retry::<_, _, _, _, _> 0
utils::backoff::retry::::list_projects::{closure#0}::{closure#0}, ::list_projects::{closure#0}::{closure#0}::{closure#0}, storage_scrubber::cloud_admin_api::Error, ::with_retries::list_projects::{closure#0}::{closure#0}, ::list_projects::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}> 0
utils::backoff::retry::, ::with_client_retries, ::maybe_refresh_observed::{closure#0}::{closure#0}, ::maybe_refresh_observed::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries, ::maybe_refresh_observed::{closure#0}::{closure#0}, ::maybe_refresh_observed::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal> 0
utils::backoff::retry::::with_client_retries::tenant_for_shards_api::tenant_delete::{closure#0}::{closure#1}, ::tenant_delete::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, ::tenant_delete::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries::tenant_for_shards_api::tenant_delete::{closure#0}::{closure#1}, ::tenant_delete::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, ::tenant_delete::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal> 0
utils::backoff::retry::::download_heatmap::{closure#0}::{closure#0}, ::download_heatmap::{closure#0}::{closure#0}::{closure#0}, pageserver::tenant::secondary::downloader::UpdateError, ::download_heatmap::{closure#0}::{closure#1}> 0
utils::backoff::retry::::with_client_retries::node_activate_reconcile::{closure#0}::{closure#0}::{closure#0}, ::node_activate_reconcile::{closure#0}::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries::node_activate_reconcile::{closure#0}::{closure#0}::{closure#0}, ::node_activate_reconcile::{closure#0}::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal> 0
utils::backoff::retry::::with_client_retries::scan_node_locations::{closure#0}::{closure#0}::{closure#0}, ::scan_node_locations::{closure#0}::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries::scan_node_locations::{closure#0}::{closure#0}::{closure#0}, ::scan_node_locations::{closure#0}::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal> 0
utils::backoff::retry::::with_client_retries::secondary_lag::{closure#0}::{closure#0}, ::secondary_lag::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries::secondary_lag::{closure#0}::{closure#0}, ::secondary_lag::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal> 0
utils::backoff::retry::::with_client_retries::tenant_for_shards_api::optimize_all_validate::{closure#0}::{closure#1}, ::optimize_all_validate::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, ::optimize_all_validate::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries::tenant_for_shards_api::optimize_all_validate::{closure#0}::{closure#1}, ::optimize_all_validate::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, ::optimize_all_validate::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal> 0
utils::backoff::retry::::with_client_retries::autosplit_tenants::{closure#0}::{closure#0}, ::autosplit_tenants::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries::autosplit_tenants::{closure#0}::{closure#0}, ::autosplit_tenants::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal> 0
utils::backoff::retry::::with_client_retries::heartbeat::{closure#0}::{closure#0}::{closure#0}, ::heartbeat::{closure#0}::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries::heartbeat::{closure#0}::{closure#0}::{closure#0}, ::heartbeat::{closure#0}::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal> 0
utils::backoff::retry::::retry_http_forever::{closure#0}::{closure#0}, ::retry_http_forever::{closure#0}::{closure#0}::{closure#0}, reqwest::error::Error, ::retry_http_forever::{closure#0}::{closure#1}> 0
utils::backoff::retry::::retry_http_forever::{closure#0}::{closure#0}, ::retry_http_forever::{closure#0}::{closure#0}::{closure#0}, reqwest::error::Error, ::retry_http_forever::{closure#0}::{closure#1}> 0
utils::backoff::retry::::delete_all::{closure#0}::{closure#2}, ::delete_all::{closure#0}::{closure#2}::{closure#0}, remote_storage::error::DownloadError, ::is_permanent> 0
utils::backoff::retry::::{closure#0}::{closure#0}, ::list::{closure#0}, remote_storage::error::DownloadError, ::is_permanent> 0
utils::backoff::retry::::step_down::{closure#0}::{closure#0}, ::request_step_down::{closure#0}, storage_controller::peer_client::StorageControllerPeerError, ::step_down::{closure#0}::{closure#1}> 0
utils::backoff::retry::>, ::find_timeline_branch::{closure#0}::{closure#0}, ::find_timeline_branch::{closure#0}::{closure#0}::{closure#0}, storage_scrubber::cloud_admin_api::Error, ::with_retries>, ::find_timeline_branch::{closure#0}::{closure#0}, ::find_timeline_branch::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}> 0
utils::backoff::retry::>, ::find_tenant_project::{closure#0}::{closure#0}, ::find_tenant_project::{closure#0}::{closure#0}::{closure#0}, storage_scrubber::cloud_admin_api::Error, ::with_retries>, ::find_tenant_project::{closure#0}::{closure#0}, ::find_tenant_project::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}> 0
utils::backoff::retry::<(), utils::backoff::tests::dont_retry_permanent_errors::{closure#0}::{closure#0}, utils::backoff::tests::dont_retry_permanent_errors::{closure#0}::{closure#0}::{closure#0}, std::io::error::Error, utils::backoff::tests::dont_retry_permanent_errors::{closure#0}::{closure#1}> 1
utils::backoff::retry::<(), utils::backoff::tests::retry_always_error::{closure#0}::{closure#0}, utils::backoff::tests::retry_always_error::{closure#0}::{closure#0}::{closure#0}, std::io::error::Error, utils::backoff::tests::retry_always_error::{closure#0}::{closure#1}> 1
utils::backoff::retry::<(), utils::backoff::tests::retry_ok_after_err::{closure#0}::{closure#0}, utils::backoff::tests::retry_ok_after_err::{closure#0}::{closure#0}::{closure#0}, std::io::error::Error, utils::backoff::tests::retry_ok_after_err::{closure#0}::{closure#1}> 1
utils::backoff::retry::<(), test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::{closure#3}, ::upload>>>::{closure#0}, anyhow::Error, test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::retry<(), test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::{closure#3}, ::upload>>>::{closure#0}, anyhow::Error>::{closure#0}::{closure#0}> 2
utils::backoff::retry::<(), test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::{closure#4}, ::upload>>>::{closure#0}, anyhow::Error, test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::retry<(), test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::{closure#4}, ::upload>>>::{closure#0}, anyhow::Error>::{closure#0}::{closure#0}> 2
utils::backoff::retry::<(), test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::{closure#6}, ::upload>>>::{closure#0}, anyhow::Error, test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::retry<(), test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::{closure#6}, ::upload>>>::{closure#0}, anyhow::Error>::{closure#0}::{closure#0}> 2
utils::backoff::retry::<(), test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::{closure#7}, ::upload>>>::{closure#0}, anyhow::Error, test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::retry<(), test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::{closure#7}, ::upload>>>::{closure#0}, anyhow::Error>::{closure#0}::{closure#0}> 2
utils::backoff::retry::<(), test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::{closure#8}, ::delete::{closure#0}, anyhow::Error, test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::retry<(), test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::{closure#8}, ::delete::{closure#0}, anyhow::Error>::{closure#0}::{closure#0}> 2
utils::backoff::retry::<(), test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::{closure#9}, ::delete_objects::{closure#0}, anyhow::Error, test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::retry<(), test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::{closure#9}, ::delete_objects::{closure#0}, anyhow::Error>::{closure#0}::{closure#0}> 2
utils::backoff::retry::::download::{closure#0}, remote_storage::error::DownloadError, test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::retry::download::{closure#0}, remote_storage::error::DownloadError>::{closure#0}::{closure#0}> 2
utils::backoff::retry::::time_travel_recover::{closure#0}::{closure#9}, ::time_travel_recover::{closure#0}::{closure#9}::{closure#0}, remote_storage::error::TimeTravelError, ::time_travel_recover::{closure#0}::{closure#2}> 6
utils::backoff::retry::::time_travel_recover::{closure#0}::{closure#3}, ::time_travel_recover::{closure#0}::{closure#3}::{closure#0}, remote_storage::error::TimeTravelError, ::time_travel_recover::{closure#0}::{closure#2}> 6
utils::backoff::retry::::is_permanent> 6
utils::backoff::retry::::list::{closure#0}, remote_storage::error::DownloadError, test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::retry::list::{closure#0}, remote_storage::error::DownloadError>::{closure#0}::{closure#0}> 12
utils::backoff::retry::<(), ::remote_delete::{closure#0}::{closure#0}, ::remote_delete::{closure#0}::{closure#0}::{closure#0}, anyhow::Error, ::caused_by_cancel> 18
utils::backoff::retry::::is_permanent> 18
utils::backoff::retry::::is_permanent> 18
utils::backoff::retry::<(), proxy::context::parquet::upload_parquet::{closure#0}::{closure#2}, proxy::context::parquet::upload_parquet::{closure#0}::{closure#2}::{closure#0}, anyhow::Error, ::caused_by_cancel> 26
utils::backoff::retry::<(), ::delete_objects::{closure#0}::{closure#0}::{closure#0}, ::delete_objects::{closure#0}::{closure#0}::{closure#0}::{closure#0}, ::delete_objects::{closure#0}::{closure#0}::AzureOrTimeout, ::delete_objects::{closure#0}::{closure#0}::{closure#1}> 49
utils::backoff::retry::, pageserver::tenant::remote_timeline_client::download::do_download_index_part::{closure#0}::{closure#0}, pageserver::tenant::remote_timeline_client::download::do_download_index_part::{closure#0}::{closure#0}::{closure#0}, remote_storage::error::DownloadError, ::is_permanent> 102
utils::backoff::retry::::{closure#0}::{closure#0}, ::list::{closure#0}, remote_storage::error::DownloadError, ::is_permanent> 570
utils::backoff::retry::<_, _, _, _, _>::{closure#0} 848
utils::backoff::retry::<(), ::upload_initdb::{closure#0}::{closure#0}, ::upload_initdb::{closure#0}::{closure#0}::{closure#0}, anyhow::Error, ::upload_initdb::{closure#0}::{closure#1}>::{closure#0} 0
utils::backoff::retry::<(), ::delete_tenant::{closure#0}::{closure#0}, ::delete_tenant::{closure#0}::{closure#0}::{closure#0}, pageserver::tenant::mgr::DeleteTenantError, ::delete_tenant::{closure#0}::{closure#1}>::{closure#0} 0
utils::backoff::retry::<(), ::copy_timeline_layer::{closure#0}::{closure#0}, ::copy_timeline_layer::{closure#0}::{closure#0}::{closure#0}, anyhow::Error, ::caused_by_cancel>::{closure#0} 0
utils::backoff::retry::<(), ::persist_index_part_with_deleted_flag::{closure#0}::{closure#0}::{closure#1}, pageserver::tenant::remote_timeline_client::upload::upload_index_part::{closure#0}, anyhow::Error, ::persist_index_part_with_deleted_flag::{closure#0}::{closure#0}::{closure#2}>::{closure#0} 0
utils::backoff::retry::<(), ::preserve_initdb_archive::{closure#0}::{closure#0}, ::preserve_initdb_archive::{closure#0}::{closure#0}::{closure#0}, anyhow::Error, ::caused_by_cancel>::{closure#0} 0
utils::backoff::retry::<(), ::upload_layer_file::{closure#0}::{closure#0}, ::upload_layer_file::{closure#0}::{closure#0}::{closure#0}, anyhow::Error, ::caused_by_cancel>::{closure#0} 0
utils::backoff::retry::<(), ::do_notify::{closure#0}::{closure#1}, ::do_notify_iteration::{closure#0}, storage_controller::compute_hook::NotifyError, ::do_notify::{closure#0}::{closure#2}>::{closure#0} 0
utils::backoff::retry::<(), ::with_client_retries<(), ::location_config::{closure#0}::{closure#0}, ::location_config::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries<(), ::location_config::{closure#0}::{closure#0}, ::location_config::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal>::{closure#0} 0
utils::backoff::retry::<(), ::with_client_retries<(), ::abort_tenant_shard_split::{closure#0}::{closure#0}::{closure#1}, ::abort_tenant_shard_split::{closure#0}::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries<(), ::abort_tenant_shard_split::{closure#0}::{closure#0}::{closure#1}, ::abort_tenant_shard_split::{closure#0}::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal>::{closure#0} 0
utils::backoff::retry::<(), ::with_client_retries<(), ::node_activate_reconcile::{closure#0}::{closure#0}::{closure#1}, ::node_activate_reconcile::{closure#0}::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries<(), ::node_activate_reconcile::{closure#0}::{closure#0}::{closure#1}, ::node_activate_reconcile::{closure#0}::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal>::{closure#0} 0
utils::backoff::retry::<(), ::with_client_retries<(), ::tenant_for_shards_api<(), ::tenant_shard_split_start_secondaries::{closure#0}::{closure#0}, ::tenant_shard_split_start_secondaries::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, ::tenant_shard_split_start_secondaries::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries<(), ::tenant_for_shards_api<(), ::tenant_shard_split_start_secondaries::{closure#0}::{closure#0}, ::tenant_shard_split_start_secondaries::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, ::tenant_shard_split_start_secondaries::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal>::{closure#0} 0
utils::backoff::retry::<(), pageserver::consumption_metrics::upload::upload::{closure#0}::{closure#0}, pageserver::consumption_metrics::upload::upload::{closure#0}::{closure#0}::{closure#0}, pageserver::consumption_metrics::upload::UploadError, ::is_reject>::{closure#0} 0
utils::backoff::retry::<(), pageserver::tenant::remote_timeline_client::upload::time_travel_recover_tenant::{closure#0}::{closure#0}, pageserver::tenant::remote_timeline_client::upload::time_travel_recover_tenant::{closure#0}::{closure#0}::{closure#0}, remote_storage::error::TimeTravelError, pageserver::tenant::remote_timeline_client::upload::time_travel_recover_tenant::{closure#0}::{closure#1}>::{closure#0} 0
utils::backoff::retry::<(), pageserver::tenant::secondary::heatmap_uploader::upload_tenant_heatmap::{closure#0}::{closure#5}, pageserver::tenant::secondary::heatmap_uploader::upload_tenant_heatmap::{closure#0}::{closure#5}::{closure#0}, anyhow::Error, ::caused_by_cancel>::{closure#0} 0
utils::backoff::retry::<(), proxy::usage_metrics::upload_events_chunk::{closure#0}::{closure#0}, proxy::usage_metrics::upload_events_chunk::{closure#0}::{closure#0}::{closure#0}, anyhow::Error, ::caused_by_cancel>::{closure#0} 0
utils::backoff::retry::<(), safekeeper::wal_backup::delete_timeline::{closure#0}::{closure#0}, safekeeper::wal_backup::delete_timeline::{closure#0}::{closure#0}::{closure#0}, anyhow::Error, safekeeper::wal_backup::delete_timeline::{closure#0}::{closure#1}>::{closure#0} 0
utils::backoff::retry::<(http::status::StatusCode, pageserver_api::models::SecondaryProgress), ::with_client_retries<(http::status::StatusCode, pageserver_api::models::SecondaryProgress), ::secondary_download::{closure#0}::{closure#0}, ::secondary_download::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries<(http::status::StatusCode, pageserver_api::models::SecondaryProgress), ::secondary_download::{closure#0}::{closure#0}, ::secondary_download::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal>::{closure#0} 0
utils::backoff::retry::<(http::status::StatusCode, pageserver_api::models::SecondaryProgress), ::with_client_retries<(http::status::StatusCode, pageserver_api::models::SecondaryProgress), ::tenant_for_shards_api<(http::status::StatusCode, pageserver_api::models::SecondaryProgress), ::tenant_shard_split_start_secondaries::{closure#0}::{closure#1}, ::tenant_shard_split_start_secondaries::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, ::tenant_shard_split_start_secondaries::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries<(http::status::StatusCode, pageserver_api::models::SecondaryProgress), ::tenant_for_shards_api<(http::status::StatusCode, pageserver_api::models::SecondaryProgress), ::tenant_shard_split_start_secondaries::{closure#0}::{closure#1}, ::tenant_shard_split_start_secondaries::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, ::tenant_shard_split_start_secondaries::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal>::{closure#0} 0
utils::backoff::retry::<_, _, _, _, _>::{closure#0} 0
utils::backoff::retry::::list_projects::{closure#0}::{closure#0}, ::list_projects::{closure#0}::{closure#0}::{closure#0}, storage_scrubber::cloud_admin_api::Error, ::with_retries::list_projects::{closure#0}::{closure#0}, ::list_projects::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}>::{closure#0} 0
utils::backoff::retry::, ::with_client_retries, ::maybe_refresh_observed::{closure#0}::{closure#0}, ::maybe_refresh_observed::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries, ::maybe_refresh_observed::{closure#0}::{closure#0}, ::maybe_refresh_observed::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal>::{closure#0} 0
utils::backoff::retry::::with_client_retries::tenant_for_shards_api::tenant_delete::{closure#0}::{closure#1}, ::tenant_delete::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, ::tenant_delete::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries::tenant_for_shards_api::tenant_delete::{closure#0}::{closure#1}, ::tenant_delete::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, ::tenant_delete::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal>::{closure#0} 0
utils::backoff::retry::::download_heatmap::{closure#0}::{closure#0}, ::download_heatmap::{closure#0}::{closure#0}::{closure#0}, pageserver::tenant::secondary::downloader::UpdateError, ::download_heatmap::{closure#0}::{closure#1}>::{closure#0} 0
utils::backoff::retry::::with_client_retries::node_activate_reconcile::{closure#0}::{closure#0}::{closure#0}, ::node_activate_reconcile::{closure#0}::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries::node_activate_reconcile::{closure#0}::{closure#0}::{closure#0}, ::node_activate_reconcile::{closure#0}::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal>::{closure#0} 0
utils::backoff::retry::::with_client_retries::scan_node_locations::{closure#0}::{closure#0}::{closure#0}, ::scan_node_locations::{closure#0}::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries::scan_node_locations::{closure#0}::{closure#0}::{closure#0}, ::scan_node_locations::{closure#0}::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal>::{closure#0} 0
utils::backoff::retry::::with_client_retries::secondary_lag::{closure#0}::{closure#0}, ::secondary_lag::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries::secondary_lag::{closure#0}::{closure#0}, ::secondary_lag::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal>::{closure#0} 0
utils::backoff::retry::::with_client_retries::tenant_for_shards_api::optimize_all_validate::{closure#0}::{closure#1}, ::optimize_all_validate::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, ::optimize_all_validate::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries::tenant_for_shards_api::optimize_all_validate::{closure#0}::{closure#1}, ::optimize_all_validate::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, ::optimize_all_validate::{closure#0}::{closure#1}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal>::{closure#0} 0
utils::backoff::retry::::with_client_retries::autosplit_tenants::{closure#0}::{closure#0}, ::autosplit_tenants::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries::autosplit_tenants::{closure#0}::{closure#0}, ::autosplit_tenants::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal>::{closure#0} 0
utils::backoff::retry::::with_client_retries::heartbeat::{closure#0}::{closure#0}::{closure#0}, ::heartbeat::{closure#0}::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, ::with_client_retries::heartbeat::{closure#0}::{closure#0}::{closure#0}, ::heartbeat::{closure#0}::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}, pageserver_client::mgmt_api::Error, ::with_client_retries::{closure#0}::is_fatal>::{closure#0} 0
utils::backoff::retry::::retry_http_forever::{closure#0}::{closure#0}, ::retry_http_forever::{closure#0}::{closure#0}::{closure#0}, reqwest::error::Error, ::retry_http_forever::{closure#0}::{closure#1}>::{closure#0} 0
utils::backoff::retry::::retry_http_forever::{closure#0}::{closure#0}, ::retry_http_forever::{closure#0}::{closure#0}::{closure#0}, reqwest::error::Error, ::retry_http_forever::{closure#0}::{closure#1}>::{closure#0} 0
utils::backoff::retry::::delete_all::{closure#0}::{closure#2}, ::delete_all::{closure#0}::{closure#2}::{closure#0}, remote_storage::error::DownloadError, ::is_permanent>::{closure#0} 0
utils::backoff::retry::::{closure#0}::{closure#0}, ::list::{closure#0}, remote_storage::error::DownloadError, ::is_permanent>::{closure#0} 0
utils::backoff::retry::::step_down::{closure#0}::{closure#0}, ::request_step_down::{closure#0}, storage_controller::peer_client::StorageControllerPeerError, ::step_down::{closure#0}::{closure#1}>::{closure#0} 0
utils::backoff::retry::>, ::find_timeline_branch::{closure#0}::{closure#0}, ::find_timeline_branch::{closure#0}::{closure#0}::{closure#0}, storage_scrubber::cloud_admin_api::Error, ::with_retries>, ::find_timeline_branch::{closure#0}::{closure#0}, ::find_timeline_branch::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}>::{closure#0} 0
utils::backoff::retry::>, ::find_tenant_project::{closure#0}::{closure#0}, ::find_tenant_project::{closure#0}::{closure#0}::{closure#0}, storage_scrubber::cloud_admin_api::Error, ::with_retries>, ::find_tenant_project::{closure#0}::{closure#0}, ::find_tenant_project::{closure#0}::{closure#0}::{closure#0}>::{closure#0}::{closure#0}>::{closure#0} 0
utils::backoff::retry::<(), utils::backoff::tests::dont_retry_permanent_errors::{closure#0}::{closure#0}, utils::backoff::tests::dont_retry_permanent_errors::{closure#0}::{closure#0}::{closure#0}, std::io::error::Error, utils::backoff::tests::dont_retry_permanent_errors::{closure#0}::{closure#1}>::{closure#0} 1
utils::backoff::retry::<(), utils::backoff::tests::retry_always_error::{closure#0}::{closure#0}, utils::backoff::tests::retry_always_error::{closure#0}::{closure#0}::{closure#0}, std::io::error::Error, utils::backoff::tests::retry_always_error::{closure#0}::{closure#1}>::{closure#0} 1
utils::backoff::retry::<(), utils::backoff::tests::retry_ok_after_err::{closure#0}::{closure#0}, utils::backoff::tests::retry_ok_after_err::{closure#0}::{closure#0}::{closure#0}, std::io::error::Error, utils::backoff::tests::retry_ok_after_err::{closure#0}::{closure#1}>::{closure#0} 1
utils::backoff::retry::<(), test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::{closure#3}, ::upload>>>::{closure#0}, anyhow::Error, test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::retry<(), test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::{closure#3}, ::upload>>>::{closure#0}, anyhow::Error>::{closure#0}::{closure#0}>::{closure#0} 2
utils::backoff::retry::<(), test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::{closure#4}, ::upload>>>::{closure#0}, anyhow::Error, test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::retry<(), test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::{closure#4}, ::upload>>>::{closure#0}, anyhow::Error>::{closure#0}::{closure#0}>::{closure#0} 2
utils::backoff::retry::<(), test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::{closure#6}, ::upload>>>::{closure#0}, anyhow::Error, test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::retry<(), test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::{closure#6}, ::upload>>>::{closure#0}, anyhow::Error>::{closure#0}::{closure#0}>::{closure#0} 2
utils::backoff::retry::<(), test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::{closure#7}, ::upload>>>::{closure#0}, anyhow::Error, test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::retry<(), test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::{closure#7}, ::upload>>>::{closure#0}, anyhow::Error>::{closure#0}::{closure#0}>::{closure#0} 2
utils::backoff::retry::<(), test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::{closure#8}, ::delete::{closure#0}, anyhow::Error, test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::retry<(), test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::{closure#8}, ::delete::{closure#0}, anyhow::Error>::{closure#0}::{closure#0}>::{closure#0} 2
utils::backoff::retry::<(), test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::{closure#9}, ::delete_objects::{closure#0}, anyhow::Error, test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::retry<(), test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::{closure#9}, ::delete_objects::{closure#0}, anyhow::Error>::{closure#0}::{closure#0}>::{closure#0} 2
utils::backoff::retry::::download::{closure#0}, remote_storage::error::DownloadError, test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::retry::download::{closure#0}, remote_storage::error::DownloadError>::{closure#0}::{closure#0}>::{closure#0} 2
utils::backoff::retry::::time_travel_recover::{closure#0}::{closure#9}, ::time_travel_recover::{closure#0}::{closure#9}::{closure#0}, remote_storage::error::TimeTravelError, ::time_travel_recover::{closure#0}::{closure#2}>::{closure#0} 6
utils::backoff::retry::::time_travel_recover::{closure#0}::{closure#3}, ::time_travel_recover::{closure#0}::{closure#3}::{closure#0}, remote_storage::error::TimeTravelError, ::time_travel_recover::{closure#0}::{closure#2}>::{closure#0} 6
utils::backoff::retry::::is_permanent>::{closure#0} 6
utils::backoff::retry::::list::{closure#0}, remote_storage::error::DownloadError, test_real_s3::__test_context_wrapped_s3_time_travel_recovery_works::{closure#0}::retry::list::{closure#0}, remote_storage::error::DownloadError>::{closure#0}::{closure#0}>::{closure#0} 12
utils::backoff::retry::<(), ::remote_delete::{closure#0}::{closure#0}, ::remote_delete::{closure#0}::{closure#0}::{closure#0}, anyhow::Error, ::caused_by_cancel>::{closure#0} 18
utils::backoff::retry::::is_permanent>::{closure#0} 18
utils::backoff::retry::::is_permanent>::{closure#0} 18
utils::backoff::retry::<(), proxy::context::parquet::upload_parquet::{closure#0}::{closure#2}, proxy::context::parquet::upload_parquet::{closure#0}::{closure#2}::{closure#0}, anyhow::Error, ::caused_by_cancel>::{closure#0} 26
utils::backoff::retry::<(), ::delete_objects::{closure#0}::{closure#0}::{closure#0}, ::delete_objects::{closure#0}::{closure#0}::{closure#0}::{closure#0}, ::delete_objects::{closure#0}::{closure#0}::AzureOrTimeout, ::delete_objects::{closure#0}::{closure#0}::{closure#1}>::{closure#0} 49
utils::backoff::retry::, pageserver::tenant::remote_timeline_client::download::do_download_index_part::{closure#0}::{closure#0}, pageserver::tenant::remote_timeline_client::download::do_download_index_part::{closure#0}::{closure#0}::{closure#0}, remote_storage::error::DownloadError, ::is_permanent>::{closure#0} 102
utils::backoff::retry::::{closure#0}::{closure#0}, ::list::{closure#0}, remote_storage::error::DownloadError, ::is_permanent>::{closure#0} 570
utils::backoff::exponential_backoff 1112
utils::backoff::exponential_backoff::{closure#0} 1112
utils::backoff::exponential_backoff_duration_seconds 11112

Generated by: LCOV version 2.1-beta