diff --git a/docs/quality/diagnostic-allowances-linux.json b/docs/quality/diagnostic-allowances-linux.json index 102b3e6f..6030c3b0 100644 --- a/docs/quality/diagnostic-allowances-linux.json +++ b/docs/quality/diagnostic-allowances-linux.json @@ -1,90 +1,6 @@ { "schema": 1, "warnings": [ - { - "count": 1, - "fingerprint": "71a6fbd0e075f7bca826a065d8b76e484b4875a6f093f84e54435b13dc420bab", - "item": "crate::dlq_and_settle", - "lint": "clippy::allow_attributes_without_reason", - "path": "src/application/consumer/delivery.rs" - }, - { - "count": 1, - "fingerprint": "c9df997dfba8fe967a2e7dc756fd00658525c64c2b5b7caba402e69cc0ac2ff9", - "item": "crate::ReadPlan < 'a >::segment", - "lint": "clippy::allow_attributes_without_reason", - "path": "src/application/read.rs" - }, - { - "count": 1, - "fingerprint": "0008921133ad15a463a765a126faabe1a8b26edcb252db05337ec92b202fd46f", - "item": "crate::TEST_ASSERT_KEYED_DENSE", - "lint": "clippy::allow_attributes_without_reason", - "path": "src/application/read.rs" - }, - { - "count": 1, - "fingerprint": "ee99fdfcbd2ac9a98b1979169a16a76f4ddcb71a8a4f48a67f79d4abd0e24319", - "item": "crate::read_merged", - "lint": "clippy::allow_attributes_without_reason", - "path": "src/application/read.rs" - }, - { - "count": 1, - "fingerprint": "38c5fba0dcbe08fe844b3044cbbff4ee685a26765d0b1fb9948d13fd624f5190", - "item": "crate::read_stitched", - "lint": "clippy::allow_attributes_without_reason", - "path": "src/application/read.rs" - }, - { - "count": 1, - "fingerprint": "d1ab2ef2c5d52cc346cc433c770edfd4dc2a508ec0ec7c27d5aef2937602fdad", - "item": "crate::WALK_CLOSE_SUBMITS_SNAPSHOT", - "lint": "clippy::allow_attributes_without_reason", - "path": "src/dst/tests/runtime_sweep.rs" - }, - { - "count": 1, - "fingerprint": "4726a4571dfdb78495ced8de54fa2f3b16bb3d76083e46a6132cbeb4fa571ab5", - "item": "crate::TraceState::event", - "lint": "clippy::allow_attributes_without_reason", - "path": "src/dst/trace_store.rs" - }, - { - "count": 1, - "fingerprint": "4536c5ad357fab836314c87fe78d95b9c23d9f545289e7ee7c0e600f6393a5d2", - "item": "crate::read", - "lint": "clippy::allow_attributes_without_reason", - "path": "src/history/canonical_span.rs" - }, - { - "count": 1, - "fingerprint": "926990bf4070f815519da4ea817cf8f1c3746bcd938d366e01d2064f42874d2a", - "item": "crate::ReadParams::sig", - "lint": "clippy::allow_attributes_without_reason", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "331c39030639a764b0dfe71b8cee3e572de2dcfc8789ec04e0a196da4b8f6d9e", - "item": "crate::raise_nofile", - "lint": "clippy::allow_attributes_without_reason", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "745a7d140082bc43b8fac9bfbaf67d1c7c2c8d9d9a51d5811503f6669e5c5a1f", - "item": "crate::sse_response", - "lint": "clippy::allow_attributes_without_reason", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "3fc6f535aafafccf0492bd8dd860c3326140c64c8104e0d87824ee811be9aba4", - "item": "crate", - "lint": "clippy::allow_attributes_without_reason", - "path": "src/project_policy.rs" - }, { "count": 1, "fingerprint": "9f75b52bc2315c18f5b5f127af17ec6b4cadc2938ee7e2e9d1b38fd6c521946a", @@ -183,27 +99,6 @@ "lint": "clippy::arithmetic_side_effects", "path": "src/postings/validated/tests.rs" }, - { - "count": 1, - "fingerprint": "c6ca46333280941cc3d9e0533fb04c013cfbc0e35fcd776a233242943a9b421d", - "item": "crate::validate_boundary", - "lint": "clippy::cast_possible_truncation", - "path": "src/application/creation/fork.rs" - }, - { - "count": 1, - "fingerprint": "6976bf455d3ff810be747836b93b0a893da0aeb7a7cb1af430f022d5901c937d", - "item": "crate::o2_tests::o2_batch_publishes_one_owner_only_after_authentication_and_admission", - "lint": "clippy::cast_possible_truncation", - "path": "src/application/read.rs" - }, - { - "count": 1, - "fingerprint": "a46e69225d9ed64fdb4fc51c623c367cc0c5a1fe1d45f0d95874afd2278bf356", - "item": "crate::o2_tests::o2_batch_publishes_one_owner_only_after_authentication_and_admission", - "lint": "clippy::cast_possible_truncation", - "path": "src/application/read.rs" - }, { "count": 1, "fingerprint": "19faeb7207c3e2acf0289a7024d8e6c58a999d895294c83ba774d6ca7da28d40", @@ -246,41 +141,6 @@ "lint": "clippy::cast_possible_truncation", "path": "src/crypto/decrypt/tests.rs" }, - { - "count": 1, - "fingerprint": "287f037923e94ad9602fa8936d7d3907ad9f5766f44826900d2cbbce2c323d30", - "item": "crate::a_bounded_cleanup_drains_residue_without_touching_the_live_generation", - "lint": "clippy::cast_possible_truncation", - "path": "src/dst/tests/consumer_generations.rs" - }, - { - "count": 1, - "fingerprint": "7d7179a86e3fc221ff7892272b362fdbb9b4fdd0b2c64b343f0a043cf94a5c19", - "item": "crate::a_bounded_cleanup_drains_residue_without_touching_the_live_generation", - "lint": "clippy::cast_possible_truncation", - "path": "src/dst/tests/consumer_generations.rs" - }, - { - "count": 1, - "fingerprint": "9c302163b5ac0595c88cf4781f878f9b6a19c2f66f407371aba23db42885c6be", - "item": "crate::a_bounded_cleanup_drains_residue_without_touching_the_live_generation", - "lint": "clippy::cast_possible_truncation", - "path": "src/dst/tests/consumer_generations.rs" - }, - { - "count": 1, - "fingerprint": "a09cfaa70cac37e0689661547b045c69e00ff0f527f728ed3c1726eddf15d439", - "item": "crate::drain_filtered", - "lint": "clippy::cast_possible_truncation", - "path": "src/dst/tests/fixture_storage.rs" - }, - { - "count": 1, - "fingerprint": "9284baf0ba6fae64e2b6d3168c3aa2d9cb5fef0a5c0735d7a8179c1ae8c50844", - "item": "crate::ring_ordering_paging_and_duplicates_at_offset_level", - "lint": "clippy::cast_possible_truncation", - "path": "src/dst/tests/reads_ring.rs" - }, { "count": 1, "fingerprint": "00d2626d124accbbd7a0db013c4e9b0416d8023a3eaa01e5f9ddc9928458ca43", @@ -323,27 +183,6 @@ "lint": "clippy::cast_possible_truncation", "path": "src/fleet/repository.rs" }, - { - "count": 1, - "fingerprint": "5af623bc62c0ccc1820a8f347ac915b3aca7e21cb2a40a61cdd46b0f61ff4867", - "item": "crate::raw_page", - "lint": "clippy::cast_possible_truncation", - "path": "src/history/postings_validation_tests.rs" - }, - { - "count": 1, - "fingerprint": "d5be370059abb30c56ae98081eb68c137b9ff42e49bf9e04c6dde993dfdf51b8", - "item": "crate::debug_load", - "lint": "clippy::cast_possible_truncation", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "16d4bd61ffc5b2b6345f6ef44318516da4f02fe7d1f9aa9e8ae9d14c522dd1f6", - "item": "crate::decode_char", - "lint": "clippy::cast_possible_truncation", - "path": "src/offsets.rs" - }, { "count": 1, "fingerprint": "b9c4dae2f6f8f9a15e07cedb0173130ecb2ac25bf3b7c17858430da758e4c98a", @@ -365,20 +204,6 @@ "lint": "clippy::cast_possible_truncation", "path": "src/product.rs" }, - { - "count": 1, - "fingerprint": "b900c089908cc6049a860cb71fca75c926382dffdeeadccf7dee050cd40e8cb3", - "item": "crate::CatalogCursor::encode", - "lint": "clippy::cast_possible_truncation", - "path": "src/product_cursor.rs" - }, - { - "count": 1, - "fingerprint": "854ed2b01aff96913794d23e8c6a480c2b3b900d70b52d6ce400051af02158f7", - "item": "crate::ScanCursor::encode", - "lint": "clippy::cast_possible_truncation", - "path": "src/product_cursor.rs" - }, { "count": 1, "fingerprint": "a2b9a18d18b6ccd3e1b5e20712a504f8f17e0fdd0767eef179ed8c2f5b9cd7c0", @@ -386,97 +211,6 @@ "lint": "clippy::cast_possible_truncation", "path": "src/registry.rs" }, - { - "count": 1, - "fingerprint": "9e489bf9c63f903996f5b53ecd6642d31bd17e94bd37af89ecb868015d63a846", - "item": "crate::::now", - "lint": "clippy::cast_possible_truncation", - "path": "src/runtime.rs" - }, - { - "count": 1, - "fingerprint": "043c5b1b0ed2607c4361ee53907fda91073cc4aae91b714732a9191d7ca520c8", - "item": "crate::ManualClock::advance", - "lint": "clippy::cast_possible_truncation", - "path": "src/runtime.rs" - }, - { - "count": 1, - "fingerprint": "c4bc68ccc02a08088a6b3aa54ec76539b649f03f03a2be166e28b999dcc96351", - "item": "crate::MonotonicNow::millis", - "lint": "clippy::cast_possible_truncation", - "path": "src/runtime.rs" - }, - { - "count": 1, - "fingerprint": "7801c4f0eb99e050a6ee03c0ba53d2e916006cd4b99c8f409cf9624daf0dcf85", - "item": "crate::tests::segment_order_cannot_erase_a_hot_key_or_change_decisions", - "lint": "clippy::cast_possible_truncation", - "path": "src/scaler3.rs" - }, - { - "count": 1, - "fingerprint": "90d71b08a4ec0e9c9cf53d4401ee70aa94259e74cdef52f841689d649feab830", - "item": "crate::ShardEngine::dispatch_durable", - "lint": "clippy::cast_possible_truncation", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "e5d39a98d5209b9e4fe84309482c317a39635f061c35c9e1acfef5e320d435bb", - "item": "crate::ShardEngine::evict_idle_handles", - "lint": "clippy::cast_possible_truncation", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "d47ddd6b292e97490cb615cfd86f15cf4fcc9466fd134e614a202989108c9648", - "item": "crate::ShardEngine::oldest_inflight_ms", - "lint": "clippy::cast_possible_truncation", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "6d863140412ae742f095635c89a2319153a0694eb5d4dd44a66e980bf1807369", - "item": "crate::ShardEngine::start", - "lint": "clippy::cast_possible_truncation", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "7be417c854276171774dfdb94e04f8c8d541a5c9a7e33da702197d25bd30de12", - "item": "crate::ShardEngine::start", - "lint": "clippy::cast_possible_truncation", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "7e34f98cadc235c69685d33090aba2044c678f90f01df63e3ffd478eee72dc83", - "item": "crate::ShardEngine::start", - "lint": "clippy::cast_possible_truncation", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "dac54e8ba2b6aa467c819cb03d272647049560bd6159485e0cb59303f548247b", - "item": "crate::ShardEngine::try_command", - "lint": "clippy::cast_possible_truncation", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "823492eec4556d231abb8563f1ac80c966b79465c5ee0dd929503ce9b9c31879", - "item": "crate::encode_tail", - "lint": "clippy::cast_possible_truncation", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "9d7bc954d19628ff4eff348289484b1f9795475339437977f3888ac7045c0715", - "item": "crate::now_ms", - "lint": "clippy::cast_possible_truncation", - "path": "src/shard.rs" - }, { "count": 1, "fingerprint": "a1b11359be9f9a47686bfd28b795e61f1c7daf09aee06de5bb1760cdf7ba3c7a", @@ -589,13 +323,6 @@ "lint": "clippy::cast_sign_loss", "path": "src/fleet.rs" }, - { - "count": 1, - "fingerprint": "4059af753fe3c118d6d67633e67b56814f4f88db59c04f2d9b5a3a9635ba17dd", - "item": "crate::interval_cursor", - "lint": "clippy::cast_sign_loss", - "path": "src/http.rs" - }, { "count": 1, "fingerprint": "51f5a77b30e0e611766ffda797785bf4e16a951bd7f1d20bdc4c831eb076e5ce", @@ -617,34 +344,6 @@ "lint": "clippy::cast_sign_loss", "path": "src/registry.rs" }, - { - "count": 1, - "fingerprint": "fea8c1bd8760349f3d46d15d1edc1a7c9f5a3ce594269bca37dd8bb681695497", - "item": "crate::ShardEngine::evict_idle_handles", - "lint": "clippy::cast_sign_loss", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "11b0fc2ec277f6495d0d0e6cfe8e0783679d5a84953acd6f506a9cfb4a001461", - "item": "crate::ShardEngine::stream_handle", - "lint": "clippy::cast_sign_loss", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "ceb70c587bc9c86416462b89a25aff5a70c9b615aa379f630918d8b5eaabc3a3", - "item": "crate::ShardEngine::stream_handle", - "lint": "clippy::cast_sign_loss", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "626cfae34af44e4c67f08b4950dcb78de65699d7ba2c3aa153addd06f4737aa2", - "item": "crate::ShardMaintenance::no_progress_secs", - "lint": "clippy::cast_sign_loss", - "path": "src/shard.rs" - }, { "count": 1, "fingerprint": "fe36a1db93dc6a5f3e0aea5454055752255497d41b9d0baea72d942ba60c0611", @@ -687,34 +386,6 @@ "lint": "clippy::disallowed_methods", "path": "src/bootstrap/runtime_handoff.rs" }, - { - "count": 1, - "fingerprint": "c3c8e6f10636569f7060d6fb5a83ad511cafbbe936bcd93bd0054a9c3721ca05", - "item": "crate::reset_refuses_while_in_flight", - "lint": "clippy::disallowed_methods", - "path": "src/dst/trace_store_tests/streams.rs" - }, - { - "count": 1, - "fingerprint": "467ecb0e93130ae35e1b6f44dcb300042a7f8aa3c8ba97139d917f1c1477258d", - "item": "crate::router", - "lint": "clippy::disallowed_methods", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "528812b0b8559c905190c66769db7f7881731e04274edb41d3ff5f02053cc3eb", - "item": "crate::serve_h1", - "lint": "clippy::disallowed_methods", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "363a60fc119bb47f10bce7c4759afe3477bfd115ef0ced4e31b16e2513282769", - "item": "crate::main", - "lint": "clippy::disallowed_methods", - "path": "src/main.rs" - }, { "count": 1, "fingerprint": "a4b24ddc151fb02ad8eabfe6eac9e73cde3ec8bdbd1ad791fe279b189c0673b8", @@ -768,652 +439,169 @@ "count": 1, "fingerprint": "daeb065d8b240050dd2a5c8b3982bd8fc6d6b0ed97b395068693949c86dacbbb", "item": "crate::serve", - "lint": "clippy::disallowed_methods", - "path": "src/sse/session.rs" - }, - { - "count": 1, - "fingerprint": "077dcb0658838b0eae07fae1248464feb53eb4915ab8e665afe5540f99f3be58", - "item": "crate::TaskSupervisor::launch_shutdown", - "lint": "clippy::disallowed_methods", - "path": "src/tasks/shutdown.rs" - }, - { - "count": 1, - "fingerprint": "3daf3c339406341074978c72f890391f92eecea5aaaee0cc01a9682afcff1762", - "item": "crate::TouchJournal::start", - "lint": "clippy::disallowed_methods", - "path": "src/touch.rs" - }, - { - "count": 1, - "fingerprint": "1d034ec3d0e5fb08a999d4f13e4ecce20c136c35c7c22a9d8b5048c8adcd2ac9", - "item": "crate::main", - "lint": "clippy::excessive_nesting", - "path": "examples/readertest.rs" - }, - { - "count": 1, - "fingerprint": "1aa80d18a19ab8c44adad6867582390fd403d7e578c6c980d86a41215fc4d6a6", - "item": "crate::AppendService::execute_prepared", - "lint": "clippy::excessive_nesting", - "path": "src/application/append.rs" - }, - { - "count": 1, - "fingerprint": "9708041ffc3bdd8971e0399d56602883716278f2888d663cd71044290811f940", - "item": "crate::AppendService::execute_prepared", - "lint": "clippy::excessive_nesting", - "path": "src/application/append.rs" - }, - { - "count": 1, - "fingerprint": "200593dd56bd84f86d6bd2381cf60e3c90850d223ea418380f1386f95ee8c91c", - "item": "crate::parse_content", - "lint": "clippy::excessive_nesting", - "path": "src/application/append/content.rs" - }, - { - "count": 1, - "fingerprint": "5011db966fad7d0ac54f630116d544dc3a26b27905f43c6715aae5de6e1a5524", - "item": "crate::parse_content", - "lint": "clippy::excessive_nesting", - "path": "src/application/append/content.rs" - }, - { - "count": 1, - "fingerprint": "8159ae18367a0e05d25064c67936f9202fc2bfeceeeee55c3d2577d3acc3d87c", - "item": "crate::parse_content", - "lint": "clippy::excessive_nesting", - "path": "src/application/append/content.rs" - }, - { - "count": 1, - "fingerprint": "9a6cef3126c11228971fa4ca9a8c17ad862015d39ccf4ae330d2ddb960fa277c", - "item": "crate::parse_content", - "lint": "clippy::excessive_nesting", - "path": "src/application/append/content.rs" - }, - { - "count": 1, - "fingerprint": "4e1a3f179a244f81df2b9047242dda35a2955194fb9d9a2890da450bd1fe9b35", - "item": "crate::dlq_and_settle", - "lint": "clippy::excessive_nesting", - "path": "src/application/consumer/delivery.rs" - }, - { - "count": 1, - "fingerprint": "40534a041f5b422f47767b3bb700b718265f762e51dde78a4a0f98a24b7816d7", - "item": "crate::pull", - "lint": "clippy::excessive_nesting", - "path": "src/application/consumer/delivery.rs" - }, - { - "count": 1, - "fingerprint": "9f202dfb5f87c9c73eb680fa96b61b41237fbfe9d9b326b733805e33f52e6d35", - "item": "crate::pull", - "lint": "clippy::excessive_nesting", - "path": "src/application/consumer/delivery.rs" - }, - { - "count": 1, - "fingerprint": "ef4325435bbee056e68c6efe90654ffd71a5fcd935fee2eefea19f106399dcd2", - "item": "crate::pull", - "lint": "clippy::excessive_nesting", - "path": "src/application/consumer/delivery.rs" - }, - { - "count": 1, - "fingerprint": "42ebb9c72561e888b59478a720e62e9546de1060541143151da6eb0b7285b98e", - "item": "crate::tests::r05_cancelled_ttl_attempt_releases_only_its_owned_slot", - "lint": "clippy::excessive_nesting", - "path": "src/application/creation.rs" - }, - { - "count": 1, - "fingerprint": "25d0f8111c690996070f43095a86bf7bafb1a92223936708c5044d225d02c98c", - "item": "crate::delete_lifecycle", - "lint": "clippy::excessive_nesting", - "path": "src/application/creation/deletion.rs" - }, - { - "count": 1, - "fingerprint": "30f0c95408939467c14ca3ebbb543ed194ed31339dd5e24377cb7e974fafd400", - "item": "crate::delete_lifecycle", - "lint": "clippy::excessive_nesting", - "path": "src/application/creation/deletion.rs" - }, - { - "count": 1, - "fingerprint": "350abd10e6ecc8bc3cebc3d28cf789f3a58e611cb76e0fad483ecd00daa0de65", - "item": "crate::delete_lifecycle", - "lint": "clippy::excessive_nesting", - "path": "src/application/creation/deletion.rs" - }, - { - "count": 1, - "fingerprint": "3c82ef4fa6edd14deb7e92e6e135a13763ecb50283c2ff0b61014b01adf4b79c", - "item": "crate::delete_lifecycle", - "lint": "clippy::excessive_nesting", - "path": "src/application/creation/deletion.rs" - }, - { - "count": 1, - "fingerprint": "5ae95c68a36189a6a97270a7d0b38556b11a7698362a79682ebcaea19619852b", - "item": "crate::delete_lifecycle", - "lint": "clippy::excessive_nesting", - "path": "src/application/creation/deletion.rs" - }, - { - "count": 1, - "fingerprint": "f85b889c8716747ed7035b9afcca76089da7c5e7a2cc7050fd7ea3784579470d", - "item": "crate::delete_lifecycle", - "lint": "clippy::excessive_nesting", - "path": "src/application/creation/deletion.rs" - }, - { - "count": 1, - "fingerprint": "fd3c924d424859c4b5dd84f87bcfcbd4e9d770521fa8405ec8bcf07efef2e380", - "item": "crate::delete_lifecycle", - "lint": "clippy::excessive_nesting", - "path": "src/application/creation/deletion.rs" - }, - { - "count": 1, - "fingerprint": "00cb7e1681732ced8a5729d8a36bcfc4880ae70c60e13787aac0dee004851212", - "item": "crate::validate_boundary", - "lint": "clippy::excessive_nesting", - "path": "src/application/creation/fork.rs" - }, - { - "count": 1, - "fingerprint": "9261bca38e050f6bc31edb34d7eac39535119dc56391181972edd1ae220b9d41", - "item": "crate::publish", - "lint": "clippy::excessive_nesting", - "path": "src/application/creation/initialization.rs" - }, - { - "count": 1, - "fingerprint": "dbd216ac9137bf7a166271b93955bd5a65bff4a51bfd26ed592587c48b6b1393", - "item": "crate::CreationService::create_product", - "lint": "clippy::excessive_nesting", - "path": "src/application/creation/product.rs" - }, - { - "count": 1, - "fingerprint": "2152575a7b7844c0789cb5916bec1dc8286ff3e879ed34a90925fbda45e9d5d4", - "item": "crate::execute_segment", - "lint": "clippy::excessive_nesting", - "path": "src/application/read.rs" - }, - { - "count": 1, - "fingerprint": "b2ed7a64ac4e12752e50ea7f6086069b9ce54b39ea7e5c59eb75ec09c219d325", - "item": "crate::fork_chain_of", - "lint": "clippy::excessive_nesting", - "path": "src/application/read.rs" - }, - { - "count": 1, - "fingerprint": "1283f4769ff60ff780684ab18786940d14d286f9c38f4a5358460e212b6602d5", - "item": "crate::PlainBatch::append_selected", - "lint": "clippy::excessive_nesting", - "path": "src/application/read_batch.rs" - }, - { - "count": 1, - "fingerprint": "6f4579e4eaffb0de154901d2ed0630b9b0f5771608d9a231864aec2c39822c5d", - "item": "crate::PlainBatch::append_selected", - "lint": "clippy::excessive_nesting", - "path": "src/application/read_batch.rs" - }, - { - "count": 1, - "fingerprint": "bac5133a4e6124c4c76294dab221641d1794067f018bf6ef8e32f208cb810d7e", - "item": "crate::PlainBatch::append_selected", - "lint": "clippy::excessive_nesting", - "path": "src/application/read_batch.rs" - }, - { - "count": 1, - "fingerprint": "dcbc2ce425da5e94f5c95a1675826f38834007addec44856567ebf0ca3b35ba8", - "item": "crate::PlainBatch::append_selected", - "lint": "clippy::excessive_nesting", - "path": "src/application/read_batch.rs" - }, - { - "count": 1, - "fingerprint": "7c5a2db9c9f40a9c66d251f218ffc8a3eb4c4251db8a32f919bb2d2f3c8ddf42", - "item": "crate::decode_frames_into", - "lint": "clippy::excessive_nesting", - "path": "src/application/read_decode.rs" - }, - { - "count": 1, - "fingerprint": "e6db68f213ea417c121609c8c1d3436b61244e5ad04a6b1fedf722205e875d11", - "item": "crate::decode_frames_into", - "lint": "clippy::excessive_nesting", - "path": "src/application/read_decode.rs" - }, - { - "count": 1, - "fingerprint": "11ebf48002f0bd185b30c0846e03215817952e638fd4dab4e6b8f8abe10a8761", - "item": "crate::ReadService::execute_read", - "lint": "clippy::excessive_nesting", - "path": "src/application/read_request.rs" - }, - { - "count": 1, - "fingerprint": "5f94e07b1f88452a7d5f66cc25f142ae234997d0ec4e76d91eea8e063d84f5f7", - "item": "crate::ReadService::execute_read", - "lint": "clippy::excessive_nesting", - "path": "src/application/read_request.rs" - }, - { - "count": 1, - "fingerprint": "801c98a16e59df733387de266fb8bddc9e3eef56045ed6cca11f167c8f221ee4", - "item": "crate::ReadService::execute_read", - "lint": "clippy::excessive_nesting", - "path": "src/application/read_request.rs" - }, - { - "count": 1, - "fingerprint": "aee72b6c9eebf7b3a09b1302260cf78aca541449d543fd9b50077f0d98d45eeb", - "item": "crate::ReadService::execute_read", - "lint": "clippy::excessive_nesting", - "path": "src/application/read_request.rs" - }, - { - "count": 1, - "fingerprint": "72618f7a12c31f2645d31d9b442018e2d913c176acb1fcf8409344e5726b1815", - "item": "crate::records::::visit_seq", - "lint": "clippy::excessive_nesting", - "path": "src/application/read_wire.rs" - }, - { - "count": 1, - "fingerprint": "befec59aa11f6b538b8d3172a45d97785fe9611a62711ec01e3dc74c4841ac00", - "item": "crate::RequestWork::run", - "lint": "clippy::excessive_nesting", - "path": "src/application/request_work.rs" - }, - { - "count": 1, - "fingerprint": "4a5cbe55fc4a512bfe2bbecf5e8ac4c79b6c64b9b1647c56fd3a5b7c2f10d2ff", - "item": "crate::Ticket::wait", - "lint": "clippy::excessive_nesting", - "path": "src/application/request_work.rs" - }, - { - "count": 1, - "fingerprint": "7c8d260b0b1720495fd47fd9a739569d0cd61496f669c49020928ec9228ab033", - "item": "crate::resume_incarnation", - "lint": "clippy::excessive_nesting", - "path": "src/application/topology.rs" - }, - { - "count": 1, - "fingerprint": "3cc16d7cd21fe23ec23e7994f70555a46e6793e78a1256dd8e74553442c5a4af", - "item": "crate::drain_once", - "lint": "clippy::excessive_nesting", - "path": "src/billing.rs" - }, - { - "count": 1, - "fingerprint": "b67a4fff62e09d5ccd1dc88896892fd9c90384cfffad928e2ccd97f2c1233da4", - "item": "crate::drain_once", - "lint": "clippy::excessive_nesting", - "path": "src/billing.rs" - }, - { - "count": 1, - "fingerprint": "b8619f089e9a898e9a4935e4d91028bd602c18d3ac91d140343ed9d5762cdf74", - "item": "crate::drain_once", - "lint": "clippy::excessive_nesting", - "path": "src/billing.rs" - }, - { - "count": 1, - "fingerprint": "ceebc667343eb1d7af7d4e60f7436504a48488f58d43cf61d47ace40bab61865", - "item": "crate::drain_once", - "lint": "clippy::excessive_nesting", - "path": "src/billing.rs" - }, - { - "count": 1, - "fingerprint": "1eb43c11928ed8346116410b8fef89bbc6048766f282c81da654ee8d618119a1", - "item": "crate::tombstone_walk", - "lint": "clippy::excessive_nesting", - "path": "src/billing.rs" - }, - { - "count": 1, - "fingerprint": "525bc1ec3f373286062971b854fa22533ec2dc1a1378958dbf85e28b9c7846d9", - "item": "crate::tombstone_walk", - "lint": "clippy::excessive_nesting", - "path": "src/billing.rs" - }, - { - "count": 1, - "fingerprint": "7965655162764ba230f8f0558403f35666082f5472436173428657015f74d14f", - "item": "crate::tombstone_walk", - "lint": "clippy::excessive_nesting", - "path": "src/billing.rs" - }, - { - "count": 1, - "fingerprint": "bfc5b26ccb9cda109577e2c4ccc524f1ee3beb235ab112bcc26b0e4d19c21bd6", - "item": "crate::tombstone_walk", - "lint": "clippy::excessive_nesting", - "path": "src/billing.rs" - }, - { - "count": 1, - "fingerprint": "2f62db7585b4d3ccaa95e66fe7ad581dc1180577d52b456a221b29fc087f4ef2", - "item": "crate::main", - "lint": "clippy::excessive_nesting", - "path": "src/bin/livebench.rs" - }, - { - "count": 1, - "fingerprint": "4239b5b2ef451cfc3c075064486fc3ff459ba62405925418cd8db6d37813a5b1", - "item": "crate::main", - "lint": "clippy::excessive_nesting", - "path": "src/bin/livebench.rs" - }, - { - "count": 1, - "fingerprint": "abcf4ae5d0e9c8f9414eea67a7bde2f1048d3213507670cfd6824992b36090b8", - "item": "crate::main", - "lint": "clippy::excessive_nesting", - "path": "src/bin/livebench.rs" - }, - { - "count": 1, - "fingerprint": "cae7a8d75308315a2440fec7618150f7d79054ba9c20e850ffbef47adaeed2e8", - "item": "crate::main", - "lint": "clippy::excessive_nesting", - "path": "src/bin/livebench.rs" - }, - { - "count": 1, - "fingerprint": "1eac21836af3d62faaf86c992f6e6a774c3f293cc7dd274d2683179da33988cd", - "item": "crate::run", - "lint": "clippy::excessive_nesting", - "path": "src/bootstrap.rs" - }, - { - "count": 1, - "fingerprint": "7fe6a1e41ab4be24f2266a6b2738614cdd5a7e8ee622f2a37e48df551518cad7", - "item": "crate::run", - "lint": "clippy::excessive_nesting", - "path": "src/bootstrap.rs" - }, - { - "count": 1, - "fingerprint": "b0a969acd3a47342907192890b2674b9ea3dd2dd50b7a2bbcbd3f6ab65185ffa", - "item": "crate::run", - "lint": "clippy::excessive_nesting", - "path": "src/bootstrap.rs" - }, - { - "count": 1, - "fingerprint": "ec7117bdc45729391aca40eb28900ebca02f9ad02d9cf6611c112ae8def5a273", - "item": "crate::::drop", - "lint": "clippy::excessive_nesting", - "path": "src/bootstrap/runtime_handoff.rs" - }, - { - "count": 1, - "fingerprint": "20915c85f18212ea79ef304324e79b7418de39d6017b019bbfb88a14d18fbbc4", - "item": "crate::::delete_stream", - "lint": "clippy::excessive_nesting", - "path": "src/dst/fault_store.rs" - }, - { - "count": 1, - "fingerprint": "a3f50add507862112bcb0572ef759a1844b9691c0949142659919d6098c0b6fd", - "item": "crate::::delete_stream", - "lint": "clippy::excessive_nesting", - "path": "src/dst/fault_store.rs" - }, - { - "count": 1, - "fingerprint": "02fb0b5040299908eb75e672ed0057ed59824416ce3d63df2349931000fbab03", - "item": "crate::::list", - "lint": "clippy::excessive_nesting", - "path": "src/dst/fault_store.rs" - }, - { - "count": 1, - "fingerprint": "484a3e984d3f8323567c87f5234c69963717ccbc43dd5ba8dcd80ac3028110f3", - "item": "crate::readiness_endpoint_refuses_each_permanent_critical_exit", - "lint": "clippy::excessive_nesting", - "path": "src/dst/review_readiness.rs" - }, - { - "count": 1, - "fingerprint": "38b4b5b4f365c240f983831949ac1c0b721c31c6ba3b9ed095b8683383e97eb4", - "item": "crate::r16_unauthorized_watch_shapes_are_independent_of_existence", - "lint": "clippy::excessive_nesting", - "path": "src/dst/review_security.rs" - }, - { - "count": 1, - "fingerprint": "beac18e52a4e5e4bcbfabf624dc1bc9185118a356cc1c76368cbc5dd440a8ae4", - "item": "crate::r16_unauthorized_watch_shapes_are_independent_of_existence", - "lint": "clippy::excessive_nesting", - "path": "src/dst/review_security.rs" - }, - { - "count": 1, - "fingerprint": "fe2069e7763d98d2b2a1d3b02013973bf1432956a9970e240895fede3f9dbc3c", - "item": "crate::r16_unauthorized_watch_shapes_are_independent_of_existence", - "lint": "clippy::excessive_nesting", - "path": "src/dst/review_security.rs" - }, - { - "count": 1, - "fingerprint": "7944f4056ffd5311351a49104fd999ff60f2fa54e8d3d8e8b11f33e61e7e6402", - "item": "crate::OpLog::audit", - "lint": "clippy::excessive_nesting", - "path": "src/dst/runtime.rs" - }, - { - "count": 1, - "fingerprint": "b11118ab102192ad1cc42f532b7ec00d82c7a340ed61051c1ac104a9d71f7a93", - "item": "crate::OpLog::audit", - "lint": "clippy::excessive_nesting", - "path": "src/dst/runtime.rs" - }, - { - "count": 1, - "fingerprint": "fb62bbd1021e932cf5fdc140a5f4db1b2c06ad36db64f17be41310a1754a59a2", - "item": "crate::Workload::append_to", - "lint": "clippy::excessive_nesting", - "path": "src/dst/runtime.rs" - }, - { - "count": 1, - "fingerprint": "580d2ad6ac21a732ec42174ec819dcd149063e8819b25f4bdc043cf320e2f48d", - "item": "crate::product_consumer_drains_lineage_across_split", - "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/consumer_product.rs" - }, - { - "count": 1, - "fingerprint": "01f29285e5b5e3906d6dc5cb23aebac8c693299e54bf334a73e89abde40a1d51", - "item": "crate::rig_opener", - "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/fixture_http.rs" + "lint": "clippy::disallowed_methods", + "path": "src/sse/session.rs" }, { "count": 1, - "fingerprint": "24d6a9f7d08260ec8d41b585b5cd32e156e5a9b0b117cc840c45911732880158", - "item": "crate::r09_fleet_cancels_entered_documents_without_partial_authority_or_lost_retry", + "fingerprint": "1aa80d18a19ab8c44adad6867582390fd403d7e578c6c980d86a41215fc4d6a6", + "item": "crate::AppendService::execute_prepared", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/fleet_controller.rs" + "path": "src/application/append.rs" }, { "count": 1, - "fingerprint": "ba04939f0f75a7c37688a56805d79f9171f2eeb312d37e9d334617c86631c78f", - "item": "crate::r09_fleet_cancels_entered_documents_without_partial_authority_or_lost_retry", + "fingerprint": "9708041ffc3bdd8971e0399d56602883716278f2888d663cd71044290811f940", + "item": "crate::AppendService::execute_prepared", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/fleet_controller.rs" + "path": "src/application/append.rs" }, { "count": 1, - "fingerprint": "c849f9dbe87bd3cd71d409d13273ebb815eb5be62a0fd48a4a57d61ac54342eb", - "item": "crate::r05_unknown_child_state_preserves_its_source_reference", + "fingerprint": "200593dd56bd84f86d6bd2381cf60e3c90850d223ea418380f1386f95ee8c91c", + "item": "crate::parse_content", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/fork_lifecycle.rs" + "path": "src/application/append/content.rs" }, { "count": 1, - "fingerprint": "fc1101b26da17357fcbc421fcb84beeb56f04c7b14262fcc48739ac08ffb6971", - "item": "crate::r05_unknown_child_state_preserves_its_source_reference", + "fingerprint": "5011db966fad7d0ac54f630116d544dc3a26b27905f43c6715aae5de6e1a5524", + "item": "crate::parse_content", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/fork_lifecycle.rs" + "path": "src/application/append/content.rs" }, { "count": 1, - "fingerprint": "4e09b4b11bc905358797d7b4881dda9492eb422131e163dfbb0e63084914db0d", - "item": "crate::an_initialization_cannot_be_resumed_with_another_key", - "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/lifecycle_creation.rs" - }, - { - "count": 2, - "fingerprint": "47c874007589f3c3294157c7f1e65f8f794f8b1dee4b73ec2a990dca0a212396", - "item": "crate::livefeed_remote_sealed_predecessor_streams_through_owner", + "fingerprint": "8159ae18367a0e05d25064c67936f9202fc2bfeceeeee55c3d2577d3acc3d87c", + "item": "crate::parse_content", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/livefeed_history.rs" + "path": "src/application/append/content.rs" }, { "count": 1, - "fingerprint": "dedb3df47790ea5d018d365d1788da658fe89b965b07e76ffc4053f669c2b300", - "item": "crate::livefeed_split_shared_subscribers_swap_once_deliver_twice", + "fingerprint": "9a6cef3126c11228971fa4ca9a8c17ad862015d39ccf4ae330d2ddb960fa277c", + "item": "crate::parse_content", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/livefeed_swap.rs" + "path": "src/application/append/content.rs" }, { "count": 1, - "fingerprint": "28a8ee77e7a3c036337c0a3463d49b0711893258a54d3e617c9ce7bc075ed02d", - "item": "crate::cut_resume_never_skips_a_durable_record", + "fingerprint": "1283f4769ff60ff780684ab18786940d14d286f9c38f4a5358460e212b6602d5", + "item": "crate::PlainBatch::append_selected", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/persistence_faults.rs" + "path": "src/application/read_batch.rs" }, { "count": 1, - "fingerprint": "2c37182cb22d080ea24dbcab995f749bdc692d610818cb41241001b317702308", - "item": "crate::cut_resume_never_skips_a_durable_record", + "fingerprint": "6f4579e4eaffb0de154901d2ed0630b9b0f5771608d9a231864aec2c39822c5d", + "item": "crate::PlainBatch::append_selected", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/persistence_faults.rs" + "path": "src/application/read_batch.rs" }, { "count": 1, - "fingerprint": "49560d6a75a831b67a5d2b7472d23c2cfecbe157d48b31d7306356b374cee6b9", - "item": "crate::the_first_advance_seals_the_history_layout::wait_absorbed", + "fingerprint": "bac5133a4e6124c4c76294dab221641d1794067f018bf6ef8e32f208cb810d7e", + "item": "crate::PlainBatch::append_selected", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/reads_history.rs" + "path": "src/application/read_batch.rs" }, { "count": 1, - "fingerprint": "7809e9cb9c94055a5bca6d983583ee40841106a34d92a33b70bc067b4fe9cebd", - "item": "crate::the_first_advance_seals_the_history_layout::wait_absorbed", + "fingerprint": "dcbc2ce425da5e94f5c95a1675826f38834007addec44856567ebf0ca3b35ba8", + "item": "crate::PlainBatch::append_selected", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/reads_history.rs" + "path": "src/application/read_batch.rs" }, { "count": 1, - "fingerprint": "f705df536f1c133fec22b72a67d74ae24a7012bed3b97c525efb16351dfa64fd", - "item": "crate::a_duplicate_absorbed_op_does_not_advance_the_trim", + "fingerprint": "7c5a2db9c9f40a9c66d251f218ffc8a3eb4c4251db8a32f919bb2d2f3c8ddf42", + "item": "crate::decode_frames_into", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/reads_ring.rs" + "path": "src/application/read_decode.rs" }, { "count": 1, - "fingerprint": "e13069f5d295aa1a0bc9ba761037dd5419e672cc1e003a2833d20a9462ee432f", - "item": "crate::r09a_cancelled_topology_job_leaves_exact_debt_for_a_fresh_read_owner", + "fingerprint": "e6db68f213ea417c121609c8c1d3436b61244e5ad04a6b1fedf722205e875d11", + "item": "crate::decode_frames_into", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/request_topology_debt.rs" + "path": "src/application/read_decode.rs" }, { "count": 1, - "fingerprint": "47dd963a38cd246519b3c94c97f538c3251ece297e312681e5b57f72c0f476a7", - "item": "crate::r17a_each_required_engine_exit_changes_real_health_and_readyz", + "fingerprint": "11ebf48002f0bd185b30c0846e03215817952e638fd4dab4e6b8f8abe10a8761", + "item": "crate::ReadService::execute_read", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/runtime_engine_lifecycle.rs" + "path": "src/application/read_request.rs" }, { "count": 1, - "fingerprint": "160515be4a62535d57f518177f2ba2aa31a9ada7a4f1724fea9e71aad7a1df37", - "item": "crate::open_gate_escalates_holdoff_for_engines_that_die_young", + "fingerprint": "5f94e07b1f88452a7d5f66cc25f142ae234997d0ec4e76d91eea8e063d84f5f7", + "item": "crate::ReadService::execute_read", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/runtime_open_gate.rs" + "path": "src/application/read_request.rs" }, { "count": 1, - "fingerprint": "f93d8e4dcb13e18325d41a73785f005b0db03929d72ccdf9ef2d3b62d239fd12", - "item": "crate::tombstone_walk_fairness_under_occupied_budget", + "fingerprint": "801c98a16e59df733387de266fb8bddc9e3eef56045ed6cca11f167c8f221ee4", + "item": "crate::ReadService::execute_read", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/runtime_sweep.rs" + "path": "src/application/read_request.rs" }, { "count": 1, - "fingerprint": "1ba944c8796d64e85591514448ffd5eb882b1de1506de50d55f20404327ed3a0", - "item": "crate::noisy_neighbor_cannot_degrade_a_compliant_project", + "fingerprint": "aee72b6c9eebf7b3a09b1302260cf78aca541449d543fd9b50077f0d98d45eeb", + "item": "crate::ReadService::execute_read", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/security_isolation.rs" + "path": "src/application/read_request.rs" }, { "count": 1, - "fingerprint": "e21dadb6bdf009384ba30b2a458eef4ae3203860fb2585de44b2a37c141a4e96", - "item": "crate::noisy_neighbor_cannot_degrade_a_compliant_project", + "fingerprint": "72618f7a12c31f2645d31d9b442018e2d913c176acb1fcf8409344e5726b1815", + "item": "crate::records::::visit_seq", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/security_isolation.rs" + "path": "src/application/read_wire.rs" }, { "count": 1, - "fingerprint": "cceace2aa58346ed40165ffab88a9c66f603b7d13e76d5932d8d63e151b1ccec", - "item": "crate::product_sse_controls_carry_signed_cursors", + "fingerprint": "befec59aa11f6b538b8d3172a45d97785fe9611a62711ec01e3dc74c4841ac00", + "item": "crate::RequestWork::run", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/sse_delivery.rs" + "path": "src/application/request_work.rs" }, { "count": 1, - "fingerprint": "f2c96a740bf36f56cb4d1daef714716078255447ff01f767c09a7fb971bfc15f", - "item": "crate::sse_follows_lineage_across_split", + "fingerprint": "4a5cbe55fc4a512bfe2bbecf5e8ac4c79b6c64b9b1647c56fd3a5b7c2f10d2ff", + "item": "crate::Ticket::wait", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/sse_delivery.rs" + "path": "src/application/request_work.rs" }, { "count": 1, - "fingerprint": "5233d9b140eedafdf1a6d5ef39edf3e0e77aead9dbca56c8355fbc7b95604acf", - "item": "crate::::delete_stream", + "fingerprint": "1eac21836af3d62faaf86c992f6e6a774c3f293cc7dd274d2683179da33988cd", + "item": "crate::run", "lint": "clippy::excessive_nesting", - "path": "src/dst/trace_store.rs" + "path": "src/bootstrap.rs" }, { "count": 1, - "fingerprint": "a7f3ede7bc2c16bbde8eca36a575c5562508da5abf0782f71dac4dea29e25851", - "item": "crate::::delete_stream", + "fingerprint": "7fe6a1e41ab4be24f2266a6b2738614cdd5a7e8ee622f2a37e48df551518cad7", + "item": "crate::run", "lint": "clippy::excessive_nesting", - "path": "src/dst/trace_store.rs" + "path": "src/bootstrap.rs" }, { "count": 1, - "fingerprint": "be5566b4de849f072132e9527e11b919150e7e2214eb569fe25e20bf069980ab", - "item": "crate::concurrent_begins_with_reverse_finishes_resolve_every_event_exactly_once", + "fingerprint": "b0a969acd3a47342907192890b2674b9ea3dd2dd50b7a2bbcbd3f6ab65185ffa", + "item": "crate::run", "lint": "clippy::excessive_nesting", - "path": "src/dst/trace_store_tests/concurrency.rs" + "path": "src/bootstrap.rs" }, { "count": 1, - "fingerprint": "17502ef4ad24ab8eff377569c3983dfeb9d0f0c5928c5d090838b9db49e906fc", - "item": "crate::::delete_stream", + "fingerprint": "ec7117bdc45729391aca40eb28900ebca02f9ad02d9cf6611c112ae8def5a273", + "item": "crate::::drop", "lint": "clippy::excessive_nesting", - "path": "src/dst/trace_store_tests/mod.rs" + "path": "src/bootstrap/runtime_handoff.rs" }, { "count": 1, @@ -1576,83 +764,6 @@ "lint": "clippy::excessive_nesting", "path": "src/fleet/repository.rs" }, - { - "count": 2, - "fingerprint": "353c4adbd7a84fd0ee4d793ecf5004cea4e4def0c78fee65c123890742e0e22b", - "item": "crate::raw_page", - "lint": "clippy::excessive_nesting", - "path": "src/history/postings_validation_tests.rs" - }, - { - "count": 1, - "fingerprint": "8943707662c6a381a961be34fe8a2c04f6585d385985d76b8d9be4a48d752496", - "item": "crate::raw_page", - "lint": "clippy::excessive_nesting", - "path": "src/history/postings_validation_tests.rs" - }, - { - "count": 1, - "fingerprint": "2855a1d3e51e88876253da4f8ba9f26cf2ee5b2cc3ad2e777c624c12cb081153", - "item": "crate::Absorber::gather_due", - "lint": "clippy::excessive_nesting", - "path": "src/history/worker.rs" - }, - { - "count": 1, - "fingerprint": "4760b6f6157e0b1d432988b788d8adeb347837b9b292dee165c1a6cdaf9195e2", - "item": "crate::Absorber::gather_due", - "lint": "clippy::excessive_nesting", - "path": "src/history/worker.rs" - }, - { - "count": 1, - "fingerprint": "8a8eaa70b4ae377f730cf0227b9e6920fc09472b9b3ea808132597d6cb3ea2b7", - "item": "crate::Absorber::gather_due", - "lint": "clippy::excessive_nesting", - "path": "src/history/worker.rs" - }, - { - "count": 1, - "fingerprint": "af1057e5fc7df11aaaa5f2ca8eb50174498749ae1f1d2a01f831a84b5bad9c9c", - "item": "crate::Absorber::gather_due", - "lint": "clippy::excessive_nesting", - "path": "src/history/worker.rs" - }, - { - "count": 1, - "fingerprint": "ed9cecb327df14c2c913d96e97d8ad89b5839f3c74db66a939da84a8748dde91", - "item": "crate::Absorber::gather_due", - "lint": "clippy::excessive_nesting", - "path": "src/history/worker.rs" - }, - { - "count": 1, - "fingerprint": "03fd5ad47796621bb1fad1fc50f1afa04a61bf97e56df584548eff1a83123caf", - "item": "crate::append_typed", - "lint": "clippy::excessive_nesting", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "c16effd6b3a25113a54e7aa093387baba1119d0f514ae932d54bd969ec0d2262", - "item": "crate::Lint < 'a >::check_signature", - "lint": "clippy::excessive_nesting", - "path": "src/mt_lint.rs" - }, - { - "count": 1, - "fingerprint": "ca558a37425e30fbdb804eaac607efc6ef5633ba19965106ab64d517dc755fff", - "item": "crate::Lint < 'a >::check_signature", - "lint": "clippy::excessive_nesting", - "path": "src/mt_lint.rs" - }, - { - "count": 1, - "fingerprint": "62e4970a5e4f5eda75b45c3fd034e451a2be59428eb6dc41b07e3484f46d5137", - "item": "crate::multitenancy_identity_lint::walk", - "lint": "clippy::excessive_nesting", - "path": "src/mt_lint.rs" - }, { "count": 1, "fingerprint": "0b719f20a83a38b88ce0da46cea55093a68027d2f0ce6623e13ec224e0172d92", @@ -1807,13 +918,6 @@ "lint": "clippy::excessive_nesting", "path": "src/product.rs" }, - { - "count": 1, - "fingerprint": "41aa761eb93bf5bc439ab385082f2353246ab1b5817b589cf07fe25936b83574", - "item": "crate::QuotaRegistry::admit", - "lint": "clippy::excessive_nesting", - "path": "src/quota.rs" - }, { "count": 1, "fingerprint": "194d60ed469b75f7246e155f672469339b422294f18914fe017600f43959d0ee", @@ -1884,132 +988,6 @@ "lint": "clippy::excessive_nesting", "path": "src/registry.rs" }, - { - "count": 1, - "fingerprint": "922d5806a61e4942d1df2829ab59f4f25f480a7ca55c4455ef6312ace8638fd9", - "item": "crate::::sleep", - "lint": "clippy::excessive_nesting", - "path": "src/runtime.rs" - }, - { - "count": 1, - "fingerprint": "6a3920d33a903650e2bb4c9d61d60dad13588da55952c78a4ef194d580fcc5b7", - "item": "crate::tests::r10_telemetry_cache_progress_and_database_lifetimes_are_runtime_owned", - "lint": "clippy::excessive_nesting", - "path": "src/runtime/telemetry.rs" - }, - { - "count": 1, - "fingerprint": "f56ac2edf2fd4344f049479cd96fada5edff21ed2a2a09c227db8b3a2b95f767", - "item": "crate::State::forget_previous_incarnation", - "lint": "clippy::excessive_nesting", - "path": "src/scaler3.rs" - }, - { - "count": 1, - "fingerprint": "630ee19906cd5e125941d1079dd7af6a82e0ef78f10a35c55f4825d7f87e0709", - "item": "crate::evaluate_state", - "lint": "clippy::excessive_nesting", - "path": "src/scaler3.rs" - }, - { - "count": 1, - "fingerprint": "708c0e28416e32bac3d3263265aa780e38c67bdf8cee5d74d18258cd16d7dc7a", - "item": "crate::ShardEngine::acker_loop", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "1e5144d8c0b3fbaea9b7b3665a13c9d7d927f4fd95e95258b08e82b194031f76", - "item": "crate::ShardEngine::committer_loop", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "21aa4ff9636a9f96e66334cbfecbe4f52004f01dd477af2eddafacd0ed08caa1", - "item": "crate::ShardEngine::committer_loop", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "2836daadda0123287b0e935176377db2f8855ae4889c2ca78c880c3856a3ec68", - "item": "crate::ShardEngine::committer_loop", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "2e6611bbf1780df70598a45f6a8106d08658a7d10f0c9ae727ee6790808d92b9", - "item": "crate::ShardEngine::committer_loop", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "704c252fdc940c1d658394725079220f82866c9ca8a484346ba4b7ab0e412767", - "item": "crate::ShardEngine::committer_loop", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "79391a0bb4c3e7a4e7f6127506366ae0ee6fd657ab29979e0658ebae427540cf", - "item": "crate::ShardEngine::committer_loop", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "b902280d2b965477543d6ca00da8bf8fc2851ff71fdfd349de403e8d0aa680ee", - "item": "crate::ShardEngine::committer_loop", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "11f73870f291f3e5d335afcf1f030cf28508450645ba29d98410a895aea787c6", - "item": "crate::ShardEngine::dispatch_durable", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "12b5ac4c17c5c72eb894e8942ebf9e7f0f6ba162d7cc1d6f242f530b3e522b42", - "item": "crate::ShardEngine::start", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "a0d39a3daff644f749ed846aad761e6e28878e7924ce0086613d8581e3be387c", - "item": "crate::ShardEngine::start", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "d1303f871e9e5dbb0f85fa845ed156088cee45e313877d9c92a557fe737333a7", - "item": "crate::ShardEngine::start", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "deddb2b8a61c8da75b62470a790aa00837b72e108a82f8373f5ebae0d9f02ab1", - "item": "crate::ShardEngine::start", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "f5fd5a1fc0e6479a7ec2ce8a9c5f407e1ac3b93e9addfe5f5901b19b389b7642", - "item": "crate::ShardEngine::start", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, { "count": 1, "fingerprint": "06d29137bf6e07d6ea97cd83eb4399613c6bd89261314a51f104757f2fa00b13", @@ -2647,83 +1625,6 @@ "lint": "clippy::excessive_nesting", "path": "src/sse/source.rs" }, - { - "count": 1, - "fingerprint": "13b437276e982f3894e983e01f345242c6c64c112cc803461289e2e5cd1de24e", - "item": "crate::TaskSupervisor::launch_shutdown", - "lint": "clippy::excessive_nesting", - "path": "src/tasks/shutdown.rs" - }, - { - "count": 1, - "fingerprint": "4a5975fa9ea7f64af10fd4d14dcc3c943340b61b8af8af976e90f6ddf470d14c", - "item": "crate::encode_prefix", - "lint": "clippy::excessive_nesting", - "path": "src/telemetry_batch.rs" - }, - { - "count": 1, - "fingerprint": "cf2d4b10046cb61f96849b301cecb817e73fd85fbbdb245672281abd219282aa", - "item": "crate::TouchJournal::start", - "lint": "clippy::excessive_nesting", - "path": "src/touch.rs" - }, - { - "count": 1, - "fingerprint": "20de1f0b3e58a074307b546329b9d4d2016b9e3096ec7fe706ce296a94ca3eeb", - "item": "crate::dlq_and_settle", - "lint": "clippy::expect_used", - "path": "src/application/consumer/delivery.rs" - }, - { - "count": 1, - "fingerprint": "44afff99d1565b8d7b2ed92e7462ceeb566de7406c6b40a222be52709179f081", - "item": "crate::relay_queue_cursor", - "lint": "clippy::expect_used", - "path": "src/application/consumer_remote.rs" - }, - { - "count": 1, - "fingerprint": "b4886b6b928cfc707944b06ef4a2af7a587347beda2fd9f5868f1aa1b6dbadab", - "item": "crate::relay_sweep_segment", - "lint": "clippy::expect_used", - "path": "src/application/consumer_remote.rs" - }, - { - "count": 1, - "fingerprint": "77c7c5dcc68868ef977c9f613eb03268f9f78d53910c39f2e7637ad3a59f0e5e", - "item": "crate::json_entries", - "lint": "clippy::expect_used", - "path": "src/application/creation.rs" - }, - { - "count": 1, - "fingerprint": "89b8ed38656716b2b492981f0be58883b33af405feabff434d78c5f2b9e53bf2", - "item": "crate::json_entries", - "lint": "clippy::expect_used", - "path": "src/application/creation.rs" - }, - { - "count": 1, - "fingerprint": "e717a00beba453e59d6b13536a1b7174ebd58c4ecdd25afc2c139b6e7f1e464d", - "item": "crate::stamp_fork_reference", - "lint": "clippy::expect_used", - "path": "src/application/creation/anchor.rs" - }, - { - "count": 1, - "fingerprint": "d6ea231d3a69fe169353a15ad6f1f0ab948014b41d5246ae7acd76a629eb5bf6", - "item": "crate::delete_lifecycle", - "lint": "clippy::expect_used", - "path": "src/application/creation/deletion.rs" - }, - { - "count": 1, - "fingerprint": "d6b0356f48129c9473db129f483e5683ab5a24a6a5d4c03169a88f1849c6e937", - "item": "crate::decide_claim", - "lint": "clippy::expect_used", - "path": "src/application/lifecycle/claims.rs" - }, { "count": 1, "fingerprint": "f64df6f2bc5a9d405a454945afe3c5bbd50e569c7e16d7000edbc3c77bf417e1", @@ -2736,35 +1637,7 @@ "fingerprint": "aa8b735cd8248a86cd421200db12ca540512778d8a783efa5f6692d1b0d15adf", "item": "crate::scan_page_once", "lint": "clippy::expect_used", - "path": "src/application/read_remote.rs" - }, - { - "count": 1, - "fingerprint": "350a8df21f66d6ec939ca1073f4340bfd87bebb9ca0b8f9bb748157b290498a9", - "item": "crate::resume_incarnation", - "lint": "clippy::expect_used", - "path": "src/application/topology.rs" - }, - { - "count": 1, - "fingerprint": "6a3a8bf77c6a257cad8bd26381b57f40a7c711c0ac37fb282d7b3cfcaccf272b", - "item": "crate::resume_incarnation", - "lint": "clippy::expect_used", - "path": "src/application/topology.rs" - }, - { - "count": 1, - "fingerprint": "f63dbc656498275beffa3c416eebdd2d65dff345d1e865ea87c39fc54c39a2bd", - "item": "crate::resume_merge", - "lint": "clippy::expect_used", - "path": "src/application/topology.rs" - }, - { - "count": 1, - "fingerprint": "add7a6c6099dc69f69f31022e843efa9b3b5bc319e4719a078413b2832f066a1", - "item": "crate::PendingAudit < 'a >::take", - "lint": "clippy::expect_used", - "path": "src/audit.rs" + "path": "src/application/read_remote.rs" }, { "count": 1, @@ -2787,27 +1660,6 @@ "lint": "clippy::expect_used", "path": "src/bootstrap/runtime_handoff.rs" }, - { - "count": 1, - "fingerprint": "23fe18d6bb468f82a2161e564ba0a9407164c015daadd31ea51a63d87ba6f605", - "item": "crate::DeploymentIdentity::raw_adapter_sref", - "lint": "clippy::expect_used", - "path": "src/deployment.rs" - }, - { - "count": 1, - "fingerprint": "42eeb6c95de8528603672d7cf38b8c88e9e9386bcbeb5ea38ae21702ef707233", - "item": "crate::mac16", - "lint": "clippy::expect_used", - "path": "src/product_cursor.rs" - }, - { - "count": 1, - "fingerprint": "d2c08919e550724cb8980cc2f388bf5af1b0918d6bc9495b52baf5e6dc1d68fa", - "item": "crate::mac_key", - "lint": "clippy::expect_used", - "path": "src/product_cursor.rs" - }, { "count": 1, "fingerprint": "71c94b87ea313746b3655e25606c249376b24edc6bbc4662d58a76e102cf5b85", @@ -2871,13 +1723,6 @@ "lint": "clippy::expect_used", "path": "src/tenant.rs" }, - { - "count": 1, - "fingerprint": "bf50dd3ce823a8bcbf08445c192db0440927ea2581360724743b3d9111cce397", - "item": "crate::idle_engine_store_traffic_is_bounded_by_the_poll_cadence", - "lint": "clippy::field_reassign_with_default", - "path": "src/dst/tests/runtime_open_gate.rs" - }, { "count": 1, "fingerprint": "e5211d90a1e337352430a9f0a55c4d657343a918e50c030c0ef6f0cadbf85870", @@ -2892,20 +1737,6 @@ "lint": "clippy::fn_params_excessive_bools", "path": "src/application/append/contract.rs" }, - { - "count": 1, - "fingerprint": "e8a14ab85d4f54761243199b7d4e22951df2562856ae53c7e9d23533048cd7db", - "item": "crate::LeaseRig::publish", - "lint": "clippy::fn_params_excessive_bools", - "path": "src/dst/tests/security_freshness.rs" - }, - { - "count": 1, - "fingerprint": "d812a79721e290156794d6e0d93b78e97749718f34f1ac9a1ba59173f34a96fd", - "item": "crate::TraceStore::with_options", - "lint": "clippy::fn_params_excessive_bools", - "path": "src/dst/trace_store.rs" - }, { "count": 1, "fingerprint": "2d7ffb6b7490d20b6b2bb0a7ed903bbfac4cee03b702a300bec63ad9b758c48f", @@ -2962,27 +1793,6 @@ "lint": "clippy::large_enum_variant", "path": "src/registry.rs" }, - { - "count": 1, - "fingerprint": "b4efcf96fd6b8f0dbd9be6da8640f901104980815d040866cae2828fbd06227f", - "item": "crate::CommitOp", - "lint": "clippy::large_enum_variant", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "1d68c795d411a2826189e4c607b033e51c5b95c5c0088ae683e59c0cb7a99fc5", - "item": "crate::spawn_refresher", - "lint": "clippy::let_underscore_must_use", - "path": "src/auth_feed.rs" - }, - { - "count": 1, - "fingerprint": "d5d453a0badc787ef4a63eab31c3ac29282921eb4df51015af220492473c1d6e", - "item": "crate::tests::refresh_once_publishes_from_files_and_survives_a_broken_one", - "lint": "clippy::let_underscore_must_use", - "path": "src/auth_feed.rs" - }, { "count": 1, "fingerprint": "cdb928566335511055c455f14f4e266a294a14a8c65be524eecbc9b07fb1af5b", @@ -2990,90 +1800,6 @@ "lint": "clippy::let_underscore_must_use", "path": "src/bootstrap/runtime_handoff.rs" }, - { - "count": 1, - "fingerprint": "01acc1eb1c1eb39eda1a83e4ba94a3e93e31213318e7adb900942590c9393324", - "item": "crate::FaultState::gate", - "lint": "clippy::let_underscore_must_use", - "path": "src/dst/fault_store.rs" - }, - { - "count": 1, - "fingerprint": "88f47529d21b6f01cbb3f4f038cc84ed7d52ef820898a220fc9dfbfd9a667e8e", - "item": "crate::expiry_closes_the_storage_gauge", - "lint": "clippy::let_underscore_must_use", - "path": "src/dst/tests/billing_maintenance.rs" - }, - { - "count": 1, - "fingerprint": "b45de03533ae5f12677be0a22fab17b1783ce02b2fdc66cf2f590097e3e9ef8b", - "item": "crate::faults_actually_fire", - "lint": "clippy::let_underscore_must_use", - "path": "src/dst/tests/fault_substrate.rs" - }, - { - "count": 1, - "fingerprint": "9dbb40087926a1e51d1a41aa872956dee1d6e1985e2cae529432a15e038d25f9", - "item": "crate::lost_response_counter_tracks_applied_behaviour_only", - "lint": "clippy::let_underscore_must_use", - "path": "src/dst/tests/fault_substrate.rs" - }, - { - "count": 1, - "fingerprint": "370d271bfbb095ae2412b1956cc870859f6b93d84dbf3075d5597330e377a1a3", - "item": "crate::http_rig_build", - "lint": "clippy::let_underscore_must_use", - "path": "src/dst/tests/fixture_http.rs" - }, - { - "count": 1, - "fingerprint": "c873b19fe6d8b5010de14f5b9a916eacdffe33f54308e7a46d442e829718eece", - "item": "crate::HeldDocument::enter", - "lint": "clippy::let_underscore_must_use", - "path": "src/dst/tests/fleet_controller.rs" - }, - { - "count": 1, - "fingerprint": "1315068f273a06efe4703faf6a527bd960801c350dee43e9eec4f44db035f562", - "item": "crate::fork_cascade_hard_delete_releases_the_stream_slot", - "lint": "clippy::let_underscore_must_use", - "path": "src/dst/tests/quota_enforcement.rs" - }, - { - "count": 1, - "fingerprint": "563fc7af72d23dad003733fdbc28b5926bf19c7bc5113ed08d3c0e45a6cf8760", - "item": "crate::a_hung_open_is_deadlined_and_its_late_engine_reaped", - "lint": "clippy::let_underscore_must_use", - "path": "src/dst/tests/runtime_open_gate.rs" - }, - { - "count": 1, - "fingerprint": "19133a040966a0c16c5e512d6243a28683d97c2712e0e00226a1e6c3488b535b", - "item": "crate::naive_get_or_open", - "lint": "clippy::let_underscore_must_use", - "path": "src/dst/tests/runtime_open_gate.rs" - }, - { - "count": 1, - "fingerprint": "6d50d40ac8ce2e9451fc55e721fd33109694eab33cd0c98a2d4faa256e78c2fb", - "item": "crate::reopen_storm_reproduces_the_eu_central_wedge", - "lint": "clippy::let_underscore_must_use", - "path": "src/dst/tests/runtime_open_gate.rs" - }, - { - "count": 1, - "fingerprint": "b635928dcb8e9632df7d4f118b1c5182888d6b769533c304035885c939845aee", - "item": "crate::drain_billing_clean", - "lint": "clippy::let_underscore_must_use", - "path": "src/dst/tests/runtime_sweep.rs" - }, - { - "count": 1, - "fingerprint": "aa27a3793517915419675661f5b33642fa11119b0cc7711d3c24743dae37327c", - "item": "crate::reset_racing_with_begin_cannot_orphan_an_operation", - "lint": "clippy::let_underscore_must_use", - "path": "src/dst/trace_store_tests/concurrency.rs" - }, { "count": 1, "fingerprint": "074ade8238bf36c30a7b368691990756cc43f3fcd2e4a718701b6c189a19ee7f", @@ -3081,55 +1807,6 @@ "lint": "clippy::let_underscore_must_use", "path": "src/fleet.rs" }, - { - "count": 1, - "fingerprint": "1ec581eaae0ffbc70f357d7dbdec2fc40ab13894c1892399eba6f8609acb5d15", - "item": "crate::active_absorber_cancel", - "lint": "clippy::let_underscore_must_use", - "path": "src/history/controller_tests.rs" - }, - { - "count": 1, - "fingerprint": "61152cc28d95328fc84f8c9316d0964497d26902d37d91410de277226d20f378", - "item": "crate::active_absorber_cancel", - "lint": "clippy::let_underscore_must_use", - "path": "src/history/controller_tests.rs" - }, - { - "count": 1, - "fingerprint": "d963f9293297f7309ece0814abaae351b55f6aae12735f766725924f1b82f344", - "item": "crate::serve_h1", - "lint": "clippy::let_underscore_must_use", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "f175900fa78c925ccbd91df2b45c5eb8650d00712572c13e255e7b0cf2935910", - "item": "crate::serve_h1", - "lint": "clippy::let_underscore_must_use", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "c2c19b6c3f494f4885ecfd22b025222d3a45c00068e2a0a2c1d0766966e928c6", - "item": "crate::spawn_runtime_watchdog", - "lint": "clippy::let_underscore_must_use", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "85d4ca5f29ee24c72af2e72451bccf9d1c49b6a3d19ad29e366464837e5fe1e8", - "item": "crate::sse_response", - "lint": "clippy::let_underscore_must_use", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "97b97265d167d40652f1d7549adb8d9a14213cebe9775db187d912cec245c854", - "item": "crate::touch_ttl", - "lint": "clippy::let_underscore_must_use", - "path": "src/http.rs" - }, { "count": 1, "fingerprint": "2273e8cd46b371b2f6c93c9155c01e61cddc7125be3c430eeed775884d7af64f", @@ -3319,55 +1996,6 @@ "lint": "clippy::let_underscore_must_use", "path": "src/sse/source.rs" }, - { - "count": 1, - "fingerprint": "137834f6fe95fc546b5385452dd2c65d199c35b095702506622a978243b4e94e", - "item": "crate::TaskSupervisor::launch_shutdown", - "lint": "clippy::let_underscore_must_use", - "path": "src/tasks/shutdown.rs" - }, - { - "count": 1, - "fingerprint": "e813e58dc76b0d8dacc5ee1269019999cb3bd5359400c9333ccafdda3a8697bf", - "item": "crate::TaskSupervisor::launch_shutdown", - "lint": "clippy::let_underscore_must_use", - "path": "src/tasks/shutdown.rs" - }, - { - "count": 1, - "fingerprint": "b6f6f1d5231cb405cba03de4dd9fe3771c01c91561ab05062e53199c80b67f57", - "item": "crate::drive_shutdown", - "lint": "clippy::let_underscore_must_use", - "path": "src/tasks/shutdown.rs" - }, - { - "count": 1, - "fingerprint": "2c081f6b7b6c7a95b3d5200429c04bb2ef3891bd456f08c3b91223c74591d9f3", - "item": "crate::begin_sealing_for_close", - "lint": "clippy::match_same_arms", - "path": "src/application/lifecycle.rs" - }, - { - "count": 1, - "fingerprint": "ede11c01c2cce57665b90ad067af4f52ef23c6570d0799286c0ec6e2c45e5fc6", - "item": "crate::prepare_execution", - "lint": "clippy::match_same_arms", - "path": "src/application/lifecycle.rs" - }, - { - "count": 1, - "fingerprint": "136ef7ae296df02b2a77784e50d83e7c002bfe06711eae3173c3a5eac15bda79", - "item": "crate::final_err_disposition", - "lint": "clippy::match_same_arms", - "path": "src/application/lifecycle/claims.rs" - }, - { - "count": 1, - "fingerprint": "37ee8bcadbf20e419e2ef2f53503959ec976561d8125cdbc014d5be236660047", - "item": "crate::Workload::attempt_with_deadline", - "lint": "clippy::match_same_arms", - "path": "src/dst/runtime.rs" - }, { "count": 1, "fingerprint": "37ad9fc70d48095f983c2413ff24b72a396c2c624e7b09f0c8db44bd9d459f63", @@ -3382,27 +2010,6 @@ "lint": "clippy::match_same_arms", "path": "src/sse/session.rs" }, - { - "count": 1, - "fingerprint": "f59ccdfbec270a6aa037979049d7b83004be4e8d9687dd7b8ff41e531a055e13", - "item": "crate::delivery_messages", - "lint": "clippy::needless_pass_by_value", - "path": "src/application/consumer/delivery.rs" - }, - { - "count": 1, - "fingerprint": "e324a90671f2476662f4bbd7f2615af43fb6712f3c2a70f31c0f98535c66370a", - "item": "crate::TraceState::begin_operation", - "lint": "clippy::needless_pass_by_value", - "path": "src/dst/trace_store.rs" - }, - { - "count": 1, - "fingerprint": "f7a2a93715136528159aeddbbc6e1b44ca2ce5b150dfbef93d0027d3fe04043c", - "item": "crate::TraceState::begin_operation", - "lint": "clippy::needless_pass_by_value", - "path": "src/dst/trace_store.rs" - }, { "count": 1, "fingerprint": "eae5e7a122aca8fea003f07434179afc796c5deefe04bb2074f92f6776185fe3", @@ -3410,13 +2017,6 @@ "lint": "clippy::needless_pass_by_value", "path": "src/http/read.rs" }, - { - "count": 1, - "fingerprint": "5826a9e9a605f678ae967e60803368f8fa13d4a6bd4e7f8c0bd3fdc7d345ea96", - "item": "crate::RuntimeCaps::with", - "lint": "clippy::needless_pass_by_value", - "path": "src/runtime.rs" - }, { "count": 1, "fingerprint": "6ce788248f78d6875e88116f072d743e3c3a39023ea033fb6506a346554b2596", @@ -3482,94 +2082,6 @@ "metric": 6, "path": "src/application/append/close.rs" }, - { - "count": 1, - "fingerprint": "a004b85b47935b9f8c546e222edc941b08d4784438c1aed2d2755b99ee0b9c5a", - "item": "crate::ConsumerService::authorize", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/application/consumer.rs" - }, - { - "count": 1, - "fingerprint": "c8b385496a7807aef5914035668bdd01377b4a05f5c7e7a93327efaed2e7da4b", - "item": "crate::ConsumerService::sweep_local", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/application/consumer.rs" - }, - { - "count": 1, - "fingerprint": "1bd0e2bc2288549e5b89d45e9af7a2d38ff937974b05ac5dade623715872c625", - "item": "crate::delete", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/application/consumer/deletion.rs" - }, - { - "count": 1, - "fingerprint": "37e4bf3e42dd068c2f5512ee518e42ffe1048dad1f52b1f0aedc90a20c821eaa", - "item": "crate::foreign_segment_drained", - "lint": "clippy::too_many_arguments", - "metric": 7, - "path": "src/application/consumer/delivery.rs" - }, - { - "count": 1, - "fingerprint": "5d14e23eb255b375e0ebc226868542a3010e20ae174f95e5252c6aae52bfaf50", - "item": "crate::relay_queue_cursor", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/application/consumer_remote.rs" - }, - { - "count": 1, - "fingerprint": "c251d3416705b4538bf921d7ea669437310db46d1cd2b80ec16b2bae0af602a7", - "item": "crate::relay_sweep_segment", - "lint": "clippy::too_many_arguments", - "metric": 7, - "path": "src/application/consumer_remote.rs" - }, - { - "count": 1, - "fingerprint": "e5c5b995eea1c55603654eea93a399e9ebd26d09b3ec64ee683040fcd30cc0db", - "item": "crate::create_request_hash", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/application/creation.rs" - }, - { - "count": 1, - "fingerprint": "c34852f94b4bcefb8c68ef6a9101a3b477e52e7957f0cf6128adecf367e7e826", - "item": "crate::fresh_desc", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/application/creation.rs" - }, - { - "count": 1, - "fingerprint": "a3b4e0de159936b506a87bcb53a8a152b0da9fe9ece6bac69796ec68fd3032d4", - "item": "crate::seed", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/application/creation/initialization.rs" - }, - { - "count": 1, - "fingerprint": "d3d0264ce67de9341f1a28b304ed2be7d8238287e18bfc8640a9a9a6bd0a184d", - "item": "crate::ReadService::new", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/application/read.rs" - }, - { - "count": 1, - "fingerprint": "633e7fb955ab614ef74c7bf785b7643205da432351717f8bae73e651a48be2da", - "item": "crate::absorption_race", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/application/read.rs" - }, { "count": 1, "fingerprint": "f3753b732c6e33c16383d7a6e0abbcf37ead1486eb14debb4717d08ce09c6379", @@ -3610,14 +2122,6 @@ "metric": 7, "path": "src/application/read_scan.rs" }, - { - "count": 1, - "fingerprint": "74b37b2c10cb2b365cec70d2486b29b4bdad3a99a730d1e2170c7cf876734205", - "item": "crate::spawn_refresher", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/auth_feed.rs" - }, { "count": 1, "fingerprint": "d78673e2697852400b3478461536185bbbd433f88d3c03a5540bc44073fc36d1", @@ -3626,62 +2130,6 @@ "metric": 6, "path": "src/crypto/decrypt.rs" }, - { - "count": 1, - "fingerprint": "ce371c8a7f3ddb11e926091c9f2cc881492b5e945391e7dd663d82f58ae84aad", - "item": "crate::rig_opener", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/dst/tests/fixture_http.rs" - }, - { - "count": 1, - "fingerprint": "b68e3b0324edff5c87f77d331094194dac5d1b63fa01d0c7c2584a8918ea3d69", - "item": "crate::TraceState::begin_operation", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/dst/trace_store.rs" - }, - { - "count": 1, - "fingerprint": "d4b387794821cd2deaf5f4ca72f65c10a957163bad7c47326ce3491ba7f7460c", - "item": "crate::TraceState::observe", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/dst/trace_store.rs" - }, - { - "count": 1, - "fingerprint": "d91f803c88dc8b85411a4e19588804f57e1008b361be7f5246671d7d35e81991", - "item": "crate::append", - "lint": "clippy::too_many_arguments", - "metric": 7, - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "aee9a869815ed9cc170600c98c68286c14dba9c0b1a78ba74e3b3cecb827dfc1", - "item": "crate::append_typed", - "lint": "clippy::too_many_arguments", - "metric": 7, - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "ec5f2c3682ac92fe533acf9d70f8f4e68bdec398c2f20537d0e791110bb63439", - "item": "crate::stream_entry", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "8b41feb23e23789f0fb59a560c5b3036de8dd164e2d4c8abb42fae0f2ae6ce83", - "item": "crate::stream_entry_inner", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/http.rs" - }, { "count": 1, "fingerprint": "209ee98571e181413577a7463904025dcc74de5c44bbee5c9a7003af66df911b", @@ -3754,14 +2202,6 @@ "metric": 7, "path": "src/product.rs" }, - { - "count": 1, - "fingerprint": "68829ee93b496db0d6c936a103ec07e54c3184c0ca0a86e925d6399af138d64b", - "item": "crate::QuotaRegistry::admit_append", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/quota.rs" - }, { "count": 1, "fingerprint": "1c8e09a8608e3cec2e627b5a07348e803c3817db03602ce159ae69944f203682", @@ -3818,134 +2258,6 @@ "metric": 110, "path": "src/application/append/close.rs" }, - { - "count": 1, - "fingerprint": "eb9d5827b97abad3e0eecebc477d7999bdd1d8b2bcc6971401d60f868945c795", - "item": "crate::put", - "lint": "clippy::too_many_lines", - "metric": 143, - "path": "src/application/consumer.rs" - }, - { - "count": 1, - "fingerprint": "1c6913ca428c333ece9624cbccda5a9292d396656b0555350676dfc6b0bcbbfc", - "item": "crate::delete", - "lint": "clippy::too_many_lines", - "metric": 102, - "path": "src/application/consumer/deletion.rs" - }, - { - "count": 1, - "fingerprint": "68c3bbc636e54eb0d7a0b3046b27ba577775c395b0459146a40526a24538b0cb", - "item": "crate::resume_deletion", - "lint": "clippy::too_many_lines", - "metric": 108, - "path": "src/application/consumer/deletion.rs" - }, - { - "count": 1, - "fingerprint": "b02eeaa06ec37e4467a96fc72aeeab3ec46c2ecd6a56fa6a5bcef0293a22d1cd", - "item": "crate::dlq_and_settle", - "lint": "clippy::too_many_lines", - "metric": 117, - "path": "src/application/consumer/delivery.rs" - }, - { - "count": 1, - "fingerprint": "eff63a2b95e15d539627c196b8898f6818f6839e32a01634a269f0b325d75de7", - "item": "crate::pull", - "lint": "clippy::too_many_lines", - "metric": 176, - "path": "src/application/consumer/delivery.rs" - }, - { - "count": 1, - "fingerprint": "ab52472a99cb01a7e0cd3de1de4eb79d1eacb8b64dae9e0a31242cc7880e866b", - "item": "crate::settle", - "lint": "clippy::too_many_lines", - "metric": 169, - "path": "src/application/consumer/delivery.rs" - }, - { - "count": 1, - "fingerprint": "50b05bc1d369ffae99037c8e2c349c80aaf4faab5d9b90920d3425b83f476bb5", - "item": "crate::install", - "lint": "clippy::too_many_lines", - "metric": 133, - "path": "src/application/creation/anchor.rs" - }, - { - "count": 1, - "fingerprint": "fa83d718a1c91c2a37610d3f40cc61e45ee106ef5dff6386f84f5d31634d3d57", - "item": "crate::resolve", - "lint": "clippy::too_many_lines", - "metric": 133, - "path": "src/application/creation/claim.rs" - }, - { - "count": 1, - "fingerprint": "c89b878a58fc7d64767230e53a479b9cf1fdb06003587aa0fa72cb610e16e079", - "item": "crate::delete_lifecycle", - "lint": "clippy::too_many_lines", - "metric": 120, - "path": "src/application/creation/deletion.rs" - }, - { - "count": 1, - "fingerprint": "9db6f5b359c24116ab99b69948a73662f8fcf683641e2dba09724364eadfea29", - "item": "crate::release_fork_ref", - "lint": "clippy::too_many_lines", - "metric": 108, - "path": "src/application/creation/deletion.rs" - }, - { - "count": 1, - "fingerprint": "1dac42c2def9beea11c272d9d65832db0638480e73b5ee8251b9a709ac859587", - "item": "crate::prepare", - "lint": "clippy::too_many_lines", - "metric": 124, - "path": "src/application/creation/fork.rs" - }, - { - "count": 1, - "fingerprint": "40b27f4264bc1f246e8ab117e877350614161c92de1552ba9f8500835720186d", - "item": "crate::validate_boundary", - "lint": "clippy::too_many_lines", - "metric": 110, - "path": "src/application/creation/fork.rs" - }, - { - "count": 1, - "fingerprint": "daeb36d3e3a8cc7674ea6e88b0ead58f9655b44576f270ff4e29b2903df33678", - "item": "crate::seed", - "lint": "clippy::too_many_lines", - "metric": 135, - "path": "src/application/creation/initialization.rs" - }, - { - "count": 1, - "fingerprint": "6d05999b63302ffaf9b27bc05561ad0b8d53ad922a918f1c2baa9c4ce37a9085", - "item": "crate::CreationService::create_product", - "lint": "clippy::too_many_lines", - "metric": 117, - "path": "src/application/creation/product.rs" - }, - { - "count": 1, - "fingerprint": "80c2fab589cc4b4bbae6c48312d3d72379194aa5681188357aa625561bc03190", - "item": "crate::execute_segment", - "lint": "clippy::too_many_lines", - "metric": 143, - "path": "src/application/read.rs" - }, - { - "count": 1, - "fingerprint": "356b6413e1a23f83718ecfe5cbb250a77811980fc145f8ac12fc71c175f4619b", - "item": "crate::Fp::site", - "lint": "clippy::too_many_lines", - "metric": 101, - "path": "src/failpoints.rs" - }, { "count": 1, "fingerprint": "12a18c2763841ff3cfdc9ff1429be22eb1557191d507e7d805aae69c3b8ab3aa", @@ -3962,54 +2274,6 @@ "metric": 123, "path": "src/fleet/repository/document_tests.rs" }, - { - "count": 1, - "fingerprint": "64ca907aa6f5007d541a9618d0c501e1924d6308d617e5562b56ff0fab1d68b1", - "item": "crate::active_absorber_cancel", - "lint": "clippy::too_many_lines", - "metric": 179, - "path": "src/history/controller_tests.rs" - }, - { - "count": 1, - "fingerprint": "c73584523522a3762b0bcdd1dfd03bdea4d1afce1bb1c36bb3fd847421c42a62", - "item": "crate::append_typed", - "lint": "clippy::too_many_lines", - "metric": 113, - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "0506dc0452c49b1a75fee271fb31bff55d2857207bd91263fe8d5bc1fdf2ba5b", - "item": "crate::create_stream", - "lint": "clippy::too_many_lines", - "metric": 134, - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "1a436b82ad75d7cc71b80b8e367b9c8d234bfa177f37413110f5d09d0b70c35b", - "item": "crate::debug_load", - "lint": "clippy::too_many_lines", - "metric": 168, - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "6d5b648bba28903b0a7527ee45f4e15007df9bf5e6964e650e32c26a588f2ee0", - "item": "crate::router", - "lint": "clippy::too_many_lines", - "metric": 241, - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "de0b28e5c9bebf450e97415553cd1ffde84f0bdb3af844b5db13e3299bff3c11", - "item": "crate::stream_entry_inner", - "lint": "clippy::too_many_lines", - "metric": 110, - "path": "src/http.rs" - }, { "count": 1, "fingerprint": "bd24c3550d04b1b71ea06978774f17a053727aecbe8096bb293c1663e7f41866", @@ -4186,27 +2450,6 @@ "metric": 128, "path": "src/sse/source.rs" }, - { - "count": 1, - "fingerprint": "dcb603471750f1dc05803d2425a4d7fd7dc30846681e686f97de24e2347e9a6b", - "item": "crate::reg::M", - "lint": "clippy::type_complexity", - "path": "src/failpoints.rs" - }, - { - "count": 1, - "fingerprint": "954fe0bf97703429fbbb66fe42a4d63ccdad7d0f630fff9765de39c4fc0ca96f", - "item": "crate::ShardEngine::consumer_fences", - "lint": "clippy::type_complexity", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "0195cf8cda38ccdc613c4ab40185bf5336716c6a06b785479bd5f337f7267bd5", - "item": "crate::StreamState::producers", - "lint": "clippy::type_complexity", - "path": "src/shard.rs" - }, { "count": 1, "fingerprint": "37b78d3e5d23f300900d23cd91e78b2ab0f3f41a1392b98fce0d8fd9231dc44d", @@ -4221,13 +2464,6 @@ "lint": "clippy::type_complexity", "path": "src/sse/source.rs" }, - { - "count": 1, - "fingerprint": "4f84b1f903baebf6f998640334f0b737e373d4c1c9e09b84f54a8614ce03e189", - "item": "crate::livefeed_remote_sealed_predecessor_streams_through_owner", - "lint": "clippy::unnecessary_to_owned", - "path": "src/dst/tests/livefeed_history.rs" - }, { "count": 1, "fingerprint": "f3fd81128a33528e5268d68bb42f43a116a7166d7780ad3948147a3e984b6ca4", @@ -4235,13 +2471,6 @@ "lint": "clippy::unnecessary_wraps", "path": "src/registry.rs" }, - { - "count": 1, - "fingerprint": "774188d62e2c1dfab6c5ff389c7639b157671e13df6de05c1134d17ca665ec21", - "item": "crate::mix", - "lint": "clippy::unusual_byte_groupings", - "path": "src/dst/fault_store.rs" - }, { "count": 1, "fingerprint": "ff7731d0845c383fbf80de4bd214d4197d2e99952e8a1d74d8aeda228bb22727", @@ -4256,41 +2485,6 @@ "lint": "clippy::unwrap_used", "path": "src/application/append/contract.rs" }, - { - "count": 1, - "fingerprint": "e0390ed8d951a6dce9f7f6ee0777469c41c75af09930b2e22cf955c848755b9f", - "item": "crate::ConsumerService::queue_position", - "lint": "clippy::unwrap_used", - "path": "src/application/consumer.rs" - }, - { - "count": 1, - "fingerprint": "16ab9594855c427f4a65dfe38ea3629bd53a6ee4391a6dd8362f320c722b0551", - "item": "crate::validate_boundary", - "lint": "clippy::unwrap_used", - "path": "src/application/creation/fork.rs" - }, - { - "count": 1, - "fingerprint": "34a919c9b9e5cf280c9bf56bd2747b29062a42d307d5809f4cd67691660b3b6b", - "item": "crate::seed", - "lint": "clippy::unwrap_used", - "path": "src/application/creation/initialization.rs" - }, - { - "count": 1, - "fingerprint": "64ffd9e77598203d0f3ca8a1fff6754fe9c94d177853345b9d1a9f76c754ffbe", - "item": "crate::execute_segment", - "lint": "clippy::unwrap_used", - "path": "src/application/read.rs" - }, - { - "count": 1, - "fingerprint": "67efc16f663ea2fb945a6db2e5f6759e664f104e222bf9fdecc630b8fcbadb51", - "item": "crate::read_stitched", - "lint": "clippy::unwrap_used", - "path": "src/application/read.rs" - }, { "count": 1, "fingerprint": "f2214df93dd43613446ec659a2de14e255cf22a69cb8c3a7f2a067986c2b570f", @@ -4298,41 +2492,6 @@ "lint": "clippy::unwrap_used", "path": "src/application/read_scan.rs" }, - { - "count": 1, - "fingerprint": "6014b1aa6add876df5db2da816491f9050257ec26f0e50d0c4fe0687ad9ef730", - "item": "crate:: as Drop>::drop", - "lint": "clippy::unwrap_used", - "path": "src/audit.rs" - }, - { - "count": 1, - "fingerprint": "9375a6112a76aabe637ef8b03563c63dd562d03156db08619f4980b6acad2452", - "item": "crate::PendingAudit < 'a >::take", - "lint": "clippy::unwrap_used", - "path": "src/audit.rs" - }, - { - "count": 1, - "fingerprint": "dc39e1a52100a6faeac2f8acd2d170bdae29f475b95273a40e6893ccc15330b9", - "item": "crate::observe_denial", - "lint": "clippy::unwrap_used", - "path": "src/audit.rs" - }, - { - "count": 1, - "fingerprint": "cc28b723168aad66f2e97760c083e4524a0958416041699da43b583b9249713a", - "item": "crate::latency", - "lint": "clippy::unwrap_used", - "path": "src/bin/verify.rs" - }, - { - "count": 1, - "fingerprint": "fded73500a08aae4e9eeda1645dfc83b6064d6dd544c5c25b969b3d496d5a0e9", - "item": "crate::latency", - "lint": "clippy::unwrap_used", - "path": "src/bin/verify.rs" - }, { "count": 1, "fingerprint": "730010c152b1433ddceb819a81576c406ec6290c180b78d381ba4d18eaefd040", @@ -4354,48 +2513,6 @@ "lint": "clippy::unwrap_used", "path": "src/fleet.rs" }, - { - "count": 1, - "fingerprint": "4cf780f4e1cc935f33696f5f0a6283d0ae302c87f4fea11186d6929c637b6658", - "item": "crate::create_stream", - "lint": "clippy::unwrap_used", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "acf0f3b5ba967777dcaf84e940e2e3464ed08e8261912008e50f347ce12ba711", - "item": "crate::debug_timings", - "lint": "clippy::unwrap_used", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "48f234ed051e9205103d9edb7163facd4e3b664160e4c6f31b537fa01defcc6f", - "item": "crate::product_preflight", - "lint": "clippy::unwrap_used", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "898263ca7b8fdb17b82ce0c3f89aa35043e24d9dfa7a8689a6796971923fb3f9", - "item": "crate::render_append", - "lint": "clippy::unwrap_used", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "c5380cec73ff228fb1af3d354620226b45c89f43c608dc4f310b67e6f4dbbc98", - "item": "crate::render_append", - "lint": "clippy::unwrap_used", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "ed4d5397f56294f3fe334622e6b1fefd7377b52949d1e89110247b85cb52ef8c", - "item": "crate::stream_entry_inner", - "lint": "clippy::unwrap_used", - "path": "src/http.rs" - }, { "count": 1, "fingerprint": "d201efd4aca1686ba03567dafaa11b393689eb3470a4ed5b8a2e5c86c08d9043", @@ -4732,69 +2849,6 @@ "lint": "clippy::unwrap_used", "path": "src/sse/source.rs" }, - { - "count": 1, - "fingerprint": "20c3acc01822fdb78e771b898502ed53a4206d8bb8db2b34fc65d4d87163276d", - "item": "crate::TaskSupervisor::incomplete_shutdown_failure", - "lint": "clippy::unwrap_used", - "path": "src/tasks/shutdown.rs" - }, - { - "count": 1, - "fingerprint": "30d712b2122b4fdd8fa362a2b13f07760ec21ed80f928b8815a3876baf9b970e", - "item": "crate::TaskSupervisor::launch_shutdown", - "lint": "clippy::unwrap_used", - "path": "src/tasks/shutdown.rs" - }, - { - "count": 1, - "fingerprint": "60a71a130702a263dcad0e099f43d7e96f5776f921eb44db9d1dca33fc9f6a6b", - "item": "crate::TaskSupervisor::launch_shutdown", - "lint": "clippy::unwrap_used", - "path": "src/tasks/shutdown.rs" - }, - { - "count": 1, - "fingerprint": "b5bdd9f0c8a87be648b57157e2b40459ec06e20daa6719790c0abd11fd068ab0", - "item": "crate::TaskSupervisor::launch_shutdown", - "lint": "clippy::unwrap_used", - "path": "src/tasks/shutdown.rs" - }, - { - "count": 1, - "fingerprint": "ab5f6ab54d91cc0ea9ec9ab1ac608bb6bdf6857e84d599ebcc8c4a9374924207", - "item": "crate::TaskSupervisor::observe_shutdown", - "lint": "clippy::unwrap_used", - "path": "src/tasks/shutdown.rs" - }, - { - "count": 1, - "fingerprint": "b4c250e6670d01ae4792c586b20aef709d7b0665efc273d220a4caa8fd6b9cb3", - "item": "crate::TouchJournal::flush_bucket", - "lint": "clippy::unwrap_used", - "path": "src/touch.rs" - }, - { - "count": 1, - "fingerprint": "a7fae912a54e5fc1a2fd6fe904321b47d2a27fc4b93605dc0fd42722faea1edb", - "item": "crate::TouchJournal::ingest", - "lint": "clippy::unwrap_used", - "path": "src/touch.rs" - }, - { - "count": 1, - "fingerprint": "2c355b4eacb4c6bb50690d1dac2e09669bbed828167f3c16ff07a2a00c2024c9", - "item": "crate::TouchRegistry::close_shard", - "lint": "clippy::unwrap_used", - "path": "src/touch.rs" - }, - { - "count": 1, - "fingerprint": "79bf708a68180b65b78fb4b5de7c69048961f330cf30f057b3f782cac8932941", - "item": "crate::TouchRegistry::journal", - "lint": "clippy::unwrap_used", - "path": "src/touch.rs" - }, { "count": 1, "fingerprint": "2047871277f8d0a05956c4e1cb344f06202a24b6f24cdfa44c02003dd37efc98", @@ -4830,13 +2884,6 @@ "lint": "unreachable_pub", "path": "src/application/read_keys.rs" }, - { - "count": 1, - "fingerprint": "4e88cb6514e617e1c971f3f310f8fa373479b64549b29331bfbbc294b88569cb", - "item": "crate::spawn_refresher", - "lint": "unreachable_pub", - "path": "src/auth_feed.rs" - }, { "count": 1, "fingerprint": "86b45b21b38060107772bcbbe6d6d8321bc97e6f55ace1e028bc4c9933dde421", @@ -4844,20 +2891,6 @@ "lint": "unreachable_pub", "path": "src/bootstrap.rs" }, - { - "count": 1, - "fingerprint": "6ca31a8ab2daa6134a18669c50ca283247b46bcd9efc9a73d74cbc16d2f0fa5e", - "item": "crate::TraceStore::with_options", - "lint": "unreachable_pub", - "path": "src/dst/trace_store.rs" - }, - { - "count": 1, - "fingerprint": "9554e7d8e300567e64cd59df2571adaccca65e294d297e0dc3ae8116a5af864a", - "item": "crate::Fp::site", - "lint": "unreachable_pub", - "path": "src/failpoints.rs" - }, { "count": 1, "fingerprint": "ffa2489531b69a28379bccc8278747181e096c43162692ea2da4e8c3a1d1cf9c", @@ -4872,13 +2905,6 @@ "lint": "unreachable_pub", "path": "src/fleet.rs" }, - { - "count": 1, - "fingerprint": "d91fa00511a45a2bbe81098aaedd53117257c5fdaf21b07c035c38750757e1a4", - "item": "crate::router", - "lint": "unreachable_pub", - "path": "src/http.rs" - }, { "count": 1, "fingerprint": "29c0649b53152c989e6cce54f8ff7429712f981515f1a7f8a0bb7cf0f81b25b7", @@ -4907,13 +2933,6 @@ "lint": "unreachable_pub", "path": "src/product.rs" }, - { - "count": 1, - "fingerprint": "6487b3fbddd2c3343d03313756888a3276394c4cfb7c47863403ff72fd1df099", - "item": "crate::QuotaRegistry::admit_append", - "lint": "unreachable_pub", - "path": "src/quota.rs" - }, { "count": 1, "fingerprint": "f6269145e7da12ea84288ac84f204a1635a1bc7f8391b9117d01097252cfd7d8", @@ -4942,48 +2961,6 @@ "lint": "unreachable_pub", "path": "src/registry.rs" }, - { - "count": 1, - "fingerprint": "267171222ab33983f7c4565129274bd6a6b36290c6126ea4b8a6d5f816e484ef", - "item": "crate::RuntimeCaps::with", - "lint": "unreachable_pub", - "path": "src/runtime.rs" - }, - { - "count": 1, - "fingerprint": "4a034c08934265d15e51ea98686e48bde353a689522b69fa1ac6c093effa7883", - "item": "crate::CommitOp", - "lint": "unreachable_pub", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "d3d4ae837809f9d2db83c3b0610dbea13f28ed48e7611faa7cd32c9756ea4854", - "item": "crate::ShardEngine::count_consumer_state_rows", - "lint": "unreachable_pub", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "6e8ac2ee338eadf94f66a8a87766358e5aa71e2485d28c70c5d054fbd51190cc", - "item": "crate::ShardEngine::durable_absorbed", - "lint": "unreachable_pub", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "0b12a5822732bd67b0233d1a172da4e4a6b9a4c483390848392588e6d8096a10", - "item": "crate::ShardEngine::durable_consumer_fence", - "lint": "unreachable_pub", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "23e2a6936a2ef97a5eb1771227eedfd87c961c80bea98623b596fc1be2fc3f5b", - "item": "crate::ShardEngine::submit_billing_close", - "lint": "unreachable_pub", - "path": "src/shard.rs" - }, { "count": 1, "fingerprint": "2bc421be6e2d658991637dd800b64a9bde9c63bd6e753c9d4336b145d5d1add3", diff --git a/docs/quality/diagnostic-allowances.json b/docs/quality/diagnostic-allowances.json index ffa6609a..f9c8ab1d 100644 --- a/docs/quality/diagnostic-allowances.json +++ b/docs/quality/diagnostic-allowances.json @@ -1,90 +1,6 @@ { "schema": 1, "warnings": [ - { - "count": 1, - "fingerprint": "71a6fbd0e075f7bca826a065d8b76e484b4875a6f093f84e54435b13dc420bab", - "item": "crate::dlq_and_settle", - "lint": "clippy::allow_attributes_without_reason", - "path": "src/application/consumer/delivery.rs" - }, - { - "count": 1, - "fingerprint": "c9df997dfba8fe967a2e7dc756fd00658525c64c2b5b7caba402e69cc0ac2ff9", - "item": "crate::ReadPlan < 'a >::segment", - "lint": "clippy::allow_attributes_without_reason", - "path": "src/application/read.rs" - }, - { - "count": 1, - "fingerprint": "0008921133ad15a463a765a126faabe1a8b26edcb252db05337ec92b202fd46f", - "item": "crate::TEST_ASSERT_KEYED_DENSE", - "lint": "clippy::allow_attributes_without_reason", - "path": "src/application/read.rs" - }, - { - "count": 1, - "fingerprint": "ee99fdfcbd2ac9a98b1979169a16a76f4ddcb71a8a4f48a67f79d4abd0e24319", - "item": "crate::read_merged", - "lint": "clippy::allow_attributes_without_reason", - "path": "src/application/read.rs" - }, - { - "count": 1, - "fingerprint": "38c5fba0dcbe08fe844b3044cbbff4ee685a26765d0b1fb9948d13fd624f5190", - "item": "crate::read_stitched", - "lint": "clippy::allow_attributes_without_reason", - "path": "src/application/read.rs" - }, - { - "count": 1, - "fingerprint": "d1ab2ef2c5d52cc346cc433c770edfd4dc2a508ec0ec7c27d5aef2937602fdad", - "item": "crate::WALK_CLOSE_SUBMITS_SNAPSHOT", - "lint": "clippy::allow_attributes_without_reason", - "path": "src/dst/tests/runtime_sweep.rs" - }, - { - "count": 1, - "fingerprint": "4726a4571dfdb78495ced8de54fa2f3b16bb3d76083e46a6132cbeb4fa571ab5", - "item": "crate::TraceState::event", - "lint": "clippy::allow_attributes_without_reason", - "path": "src/dst/trace_store.rs" - }, - { - "count": 1, - "fingerprint": "4536c5ad357fab836314c87fe78d95b9c23d9f545289e7ee7c0e600f6393a5d2", - "item": "crate::read", - "lint": "clippy::allow_attributes_without_reason", - "path": "src/history/canonical_span.rs" - }, - { - "count": 1, - "fingerprint": "926990bf4070f815519da4ea817cf8f1c3746bcd938d366e01d2064f42874d2a", - "item": "crate::ReadParams::sig", - "lint": "clippy::allow_attributes_without_reason", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "331c39030639a764b0dfe71b8cee3e572de2dcfc8789ec04e0a196da4b8f6d9e", - "item": "crate::raise_nofile", - "lint": "clippy::allow_attributes_without_reason", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "745a7d140082bc43b8fac9bfbaf67d1c7c2c8d9d9a51d5811503f6669e5c5a1f", - "item": "crate::sse_response", - "lint": "clippy::allow_attributes_without_reason", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "3fc6f535aafafccf0492bd8dd860c3326140c64c8104e0d87824ee811be9aba4", - "item": "crate", - "lint": "clippy::allow_attributes_without_reason", - "path": "src/project_policy.rs" - }, { "count": 1, "fingerprint": "9f75b52bc2315c18f5b5f127af17ec6b4cadc2938ee7e2e9d1b38fd6c521946a", @@ -183,27 +99,6 @@ "lint": "clippy::arithmetic_side_effects", "path": "src/postings/validated/tests.rs" }, - { - "count": 1, - "fingerprint": "c6ca46333280941cc3d9e0533fb04c013cfbc0e35fcd776a233242943a9b421d", - "item": "crate::validate_boundary", - "lint": "clippy::cast_possible_truncation", - "path": "src/application/creation/fork.rs" - }, - { - "count": 1, - "fingerprint": "6976bf455d3ff810be747836b93b0a893da0aeb7a7cb1af430f022d5901c937d", - "item": "crate::o2_tests::o2_batch_publishes_one_owner_only_after_authentication_and_admission", - "lint": "clippy::cast_possible_truncation", - "path": "src/application/read.rs" - }, - { - "count": 1, - "fingerprint": "a46e69225d9ed64fdb4fc51c623c367cc0c5a1fe1d45f0d95874afd2278bf356", - "item": "crate::o2_tests::o2_batch_publishes_one_owner_only_after_authentication_and_admission", - "lint": "clippy::cast_possible_truncation", - "path": "src/application/read.rs" - }, { "count": 1, "fingerprint": "19faeb7207c3e2acf0289a7024d8e6c58a999d895294c83ba774d6ca7da28d40", @@ -246,41 +141,6 @@ "lint": "clippy::cast_possible_truncation", "path": "src/crypto/decrypt/tests.rs" }, - { - "count": 1, - "fingerprint": "287f037923e94ad9602fa8936d7d3907ad9f5766f44826900d2cbbce2c323d30", - "item": "crate::a_bounded_cleanup_drains_residue_without_touching_the_live_generation", - "lint": "clippy::cast_possible_truncation", - "path": "src/dst/tests/consumer_generations.rs" - }, - { - "count": 1, - "fingerprint": "7d7179a86e3fc221ff7892272b362fdbb9b4fdd0b2c64b343f0a043cf94a5c19", - "item": "crate::a_bounded_cleanup_drains_residue_without_touching_the_live_generation", - "lint": "clippy::cast_possible_truncation", - "path": "src/dst/tests/consumer_generations.rs" - }, - { - "count": 1, - "fingerprint": "9c302163b5ac0595c88cf4781f878f9b6a19c2f66f407371aba23db42885c6be", - "item": "crate::a_bounded_cleanup_drains_residue_without_touching_the_live_generation", - "lint": "clippy::cast_possible_truncation", - "path": "src/dst/tests/consumer_generations.rs" - }, - { - "count": 1, - "fingerprint": "a09cfaa70cac37e0689661547b045c69e00ff0f527f728ed3c1726eddf15d439", - "item": "crate::drain_filtered", - "lint": "clippy::cast_possible_truncation", - "path": "src/dst/tests/fixture_storage.rs" - }, - { - "count": 1, - "fingerprint": "9284baf0ba6fae64e2b6d3168c3aa2d9cb5fef0a5c0735d7a8179c1ae8c50844", - "item": "crate::ring_ordering_paging_and_duplicates_at_offset_level", - "lint": "clippy::cast_possible_truncation", - "path": "src/dst/tests/reads_ring.rs" - }, { "count": 1, "fingerprint": "63864b20e596bb147a34d1b2931d80d476e1cbc92780108f0365c72434f53e67", @@ -330,27 +190,6 @@ "lint": "clippy::cast_possible_truncation", "path": "src/fleet/repository.rs" }, - { - "count": 1, - "fingerprint": "5af623bc62c0ccc1820a8f347ac915b3aca7e21cb2a40a61cdd46b0f61ff4867", - "item": "crate::raw_page", - "lint": "clippy::cast_possible_truncation", - "path": "src/history/postings_validation_tests.rs" - }, - { - "count": 1, - "fingerprint": "d5be370059abb30c56ae98081eb68c137b9ff42e49bf9e04c6dde993dfdf51b8", - "item": "crate::debug_load", - "lint": "clippy::cast_possible_truncation", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "16d4bd61ffc5b2b6345f6ef44318516da4f02fe7d1f9aa9e8ae9d14c522dd1f6", - "item": "crate::decode_char", - "lint": "clippy::cast_possible_truncation", - "path": "src/offsets.rs" - }, { "count": 1, "fingerprint": "b9c4dae2f6f8f9a15e07cedb0173130ecb2ac25bf3b7c17858430da758e4c98a", @@ -372,20 +211,6 @@ "lint": "clippy::cast_possible_truncation", "path": "src/product.rs" }, - { - "count": 1, - "fingerprint": "b900c089908cc6049a860cb71fca75c926382dffdeeadccf7dee050cd40e8cb3", - "item": "crate::CatalogCursor::encode", - "lint": "clippy::cast_possible_truncation", - "path": "src/product_cursor.rs" - }, - { - "count": 1, - "fingerprint": "854ed2b01aff96913794d23e8c6a480c2b3b900d70b52d6ce400051af02158f7", - "item": "crate::ScanCursor::encode", - "lint": "clippy::cast_possible_truncation", - "path": "src/product_cursor.rs" - }, { "count": 1, "fingerprint": "a2b9a18d18b6ccd3e1b5e20712a504f8f17e0fdd0767eef179ed8c2f5b9cd7c0", @@ -393,97 +218,6 @@ "lint": "clippy::cast_possible_truncation", "path": "src/registry.rs" }, - { - "count": 1, - "fingerprint": "9e489bf9c63f903996f5b53ecd6642d31bd17e94bd37af89ecb868015d63a846", - "item": "crate::::now", - "lint": "clippy::cast_possible_truncation", - "path": "src/runtime.rs" - }, - { - "count": 1, - "fingerprint": "043c5b1b0ed2607c4361ee53907fda91073cc4aae91b714732a9191d7ca520c8", - "item": "crate::ManualClock::advance", - "lint": "clippy::cast_possible_truncation", - "path": "src/runtime.rs" - }, - { - "count": 1, - "fingerprint": "c4bc68ccc02a08088a6b3aa54ec76539b649f03f03a2be166e28b999dcc96351", - "item": "crate::MonotonicNow::millis", - "lint": "clippy::cast_possible_truncation", - "path": "src/runtime.rs" - }, - { - "count": 1, - "fingerprint": "7801c4f0eb99e050a6ee03c0ba53d2e916006cd4b99c8f409cf9624daf0dcf85", - "item": "crate::tests::segment_order_cannot_erase_a_hot_key_or_change_decisions", - "lint": "clippy::cast_possible_truncation", - "path": "src/scaler3.rs" - }, - { - "count": 1, - "fingerprint": "90d71b08a4ec0e9c9cf53d4401ee70aa94259e74cdef52f841689d649feab830", - "item": "crate::ShardEngine::dispatch_durable", - "lint": "clippy::cast_possible_truncation", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "e5d39a98d5209b9e4fe84309482c317a39635f061c35c9e1acfef5e320d435bb", - "item": "crate::ShardEngine::evict_idle_handles", - "lint": "clippy::cast_possible_truncation", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "d47ddd6b292e97490cb615cfd86f15cf4fcc9466fd134e614a202989108c9648", - "item": "crate::ShardEngine::oldest_inflight_ms", - "lint": "clippy::cast_possible_truncation", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "6d863140412ae742f095635c89a2319153a0694eb5d4dd44a66e980bf1807369", - "item": "crate::ShardEngine::start", - "lint": "clippy::cast_possible_truncation", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "7be417c854276171774dfdb94e04f8c8d541a5c9a7e33da702197d25bd30de12", - "item": "crate::ShardEngine::start", - "lint": "clippy::cast_possible_truncation", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "7e34f98cadc235c69685d33090aba2044c678f90f01df63e3ffd478eee72dc83", - "item": "crate::ShardEngine::start", - "lint": "clippy::cast_possible_truncation", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "dac54e8ba2b6aa467c819cb03d272647049560bd6159485e0cb59303f548247b", - "item": "crate::ShardEngine::try_command", - "lint": "clippy::cast_possible_truncation", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "823492eec4556d231abb8563f1ac80c966b79465c5ee0dd929503ce9b9c31879", - "item": "crate::encode_tail", - "lint": "clippy::cast_possible_truncation", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "9d7bc954d19628ff4eff348289484b1f9795475339437977f3888ac7045c0715", - "item": "crate::now_ms", - "lint": "clippy::cast_possible_truncation", - "path": "src/shard.rs" - }, { "count": 1, "fingerprint": "a1b11359be9f9a47686bfd28b795e61f1c7daf09aee06de5bb1760cdf7ba3c7a", @@ -596,13 +330,6 @@ "lint": "clippy::cast_sign_loss", "path": "src/fleet.rs" }, - { - "count": 1, - "fingerprint": "4059af753fe3c118d6d67633e67b56814f4f88db59c04f2d9b5a3a9635ba17dd", - "item": "crate::interval_cursor", - "lint": "clippy::cast_sign_loss", - "path": "src/http.rs" - }, { "count": 1, "fingerprint": "51f5a77b30e0e611766ffda797785bf4e16a951bd7f1d20bdc4c831eb076e5ce", @@ -624,34 +351,6 @@ "lint": "clippy::cast_sign_loss", "path": "src/registry.rs" }, - { - "count": 1, - "fingerprint": "fea8c1bd8760349f3d46d15d1edc1a7c9f5a3ce594269bca37dd8bb681695497", - "item": "crate::ShardEngine::evict_idle_handles", - "lint": "clippy::cast_sign_loss", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "11b0fc2ec277f6495d0d0e6cfe8e0783679d5a84953acd6f506a9cfb4a001461", - "item": "crate::ShardEngine::stream_handle", - "lint": "clippy::cast_sign_loss", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "ceb70c587bc9c86416462b89a25aff5a70c9b615aa379f630918d8b5eaabc3a3", - "item": "crate::ShardEngine::stream_handle", - "lint": "clippy::cast_sign_loss", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "626cfae34af44e4c67f08b4950dcb78de65699d7ba2c3aa153addd06f4737aa2", - "item": "crate::ShardMaintenance::no_progress_secs", - "lint": "clippy::cast_sign_loss", - "path": "src/shard.rs" - }, { "count": 1, "fingerprint": "fe36a1db93dc6a5f3e0aea5454055752255497d41b9d0baea72d942ba60c0611", @@ -687,34 +386,6 @@ "lint": "clippy::disallowed_methods", "path": "src/bootstrap/runtime_handoff.rs" }, - { - "count": 1, - "fingerprint": "c3c8e6f10636569f7060d6fb5a83ad511cafbbe936bcd93bd0054a9c3721ca05", - "item": "crate::reset_refuses_while_in_flight", - "lint": "clippy::disallowed_methods", - "path": "src/dst/trace_store_tests/streams.rs" - }, - { - "count": 1, - "fingerprint": "467ecb0e93130ae35e1b6f44dcb300042a7f8aa3c8ba97139d917f1c1477258d", - "item": "crate::router", - "lint": "clippy::disallowed_methods", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "528812b0b8559c905190c66769db7f7881731e04274edb41d3ff5f02053cc3eb", - "item": "crate::serve_h1", - "lint": "clippy::disallowed_methods", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "363a60fc119bb47f10bce7c4759afe3477bfd115ef0ced4e31b16e2513282769", - "item": "crate::main", - "lint": "clippy::disallowed_methods", - "path": "src/main.rs" - }, { "count": 1, "fingerprint": "a4b24ddc151fb02ad8eabfe6eac9e73cde3ec8bdbd1ad791fe279b189c0673b8", @@ -768,652 +439,169 @@ "count": 1, "fingerprint": "daeb065d8b240050dd2a5c8b3982bd8fc6d6b0ed97b395068693949c86dacbbb", "item": "crate::serve", - "lint": "clippy::disallowed_methods", - "path": "src/sse/session.rs" - }, - { - "count": 1, - "fingerprint": "077dcb0658838b0eae07fae1248464feb53eb4915ab8e665afe5540f99f3be58", - "item": "crate::TaskSupervisor::launch_shutdown", - "lint": "clippy::disallowed_methods", - "path": "src/tasks/shutdown.rs" - }, - { - "count": 1, - "fingerprint": "3daf3c339406341074978c72f890391f92eecea5aaaee0cc01a9682afcff1762", - "item": "crate::TouchJournal::start", - "lint": "clippy::disallowed_methods", - "path": "src/touch.rs" - }, - { - "count": 1, - "fingerprint": "1d034ec3d0e5fb08a999d4f13e4ecce20c136c35c7c22a9d8b5048c8adcd2ac9", - "item": "crate::main", - "lint": "clippy::excessive_nesting", - "path": "examples/readertest.rs" - }, - { - "count": 1, - "fingerprint": "1aa80d18a19ab8c44adad6867582390fd403d7e578c6c980d86a41215fc4d6a6", - "item": "crate::AppendService::execute_prepared", - "lint": "clippy::excessive_nesting", - "path": "src/application/append.rs" - }, - { - "count": 1, - "fingerprint": "9708041ffc3bdd8971e0399d56602883716278f2888d663cd71044290811f940", - "item": "crate::AppendService::execute_prepared", - "lint": "clippy::excessive_nesting", - "path": "src/application/append.rs" - }, - { - "count": 1, - "fingerprint": "200593dd56bd84f86d6bd2381cf60e3c90850d223ea418380f1386f95ee8c91c", - "item": "crate::parse_content", - "lint": "clippy::excessive_nesting", - "path": "src/application/append/content.rs" - }, - { - "count": 1, - "fingerprint": "5011db966fad7d0ac54f630116d544dc3a26b27905f43c6715aae5de6e1a5524", - "item": "crate::parse_content", - "lint": "clippy::excessive_nesting", - "path": "src/application/append/content.rs" - }, - { - "count": 1, - "fingerprint": "8159ae18367a0e05d25064c67936f9202fc2bfeceeeee55c3d2577d3acc3d87c", - "item": "crate::parse_content", - "lint": "clippy::excessive_nesting", - "path": "src/application/append/content.rs" - }, - { - "count": 1, - "fingerprint": "9a6cef3126c11228971fa4ca9a8c17ad862015d39ccf4ae330d2ddb960fa277c", - "item": "crate::parse_content", - "lint": "clippy::excessive_nesting", - "path": "src/application/append/content.rs" - }, - { - "count": 1, - "fingerprint": "4e1a3f179a244f81df2b9047242dda35a2955194fb9d9a2890da450bd1fe9b35", - "item": "crate::dlq_and_settle", - "lint": "clippy::excessive_nesting", - "path": "src/application/consumer/delivery.rs" - }, - { - "count": 1, - "fingerprint": "40534a041f5b422f47767b3bb700b718265f762e51dde78a4a0f98a24b7816d7", - "item": "crate::pull", - "lint": "clippy::excessive_nesting", - "path": "src/application/consumer/delivery.rs" - }, - { - "count": 1, - "fingerprint": "9f202dfb5f87c9c73eb680fa96b61b41237fbfe9d9b326b733805e33f52e6d35", - "item": "crate::pull", - "lint": "clippy::excessive_nesting", - "path": "src/application/consumer/delivery.rs" - }, - { - "count": 1, - "fingerprint": "ef4325435bbee056e68c6efe90654ffd71a5fcd935fee2eefea19f106399dcd2", - "item": "crate::pull", - "lint": "clippy::excessive_nesting", - "path": "src/application/consumer/delivery.rs" - }, - { - "count": 1, - "fingerprint": "42ebb9c72561e888b59478a720e62e9546de1060541143151da6eb0b7285b98e", - "item": "crate::tests::r05_cancelled_ttl_attempt_releases_only_its_owned_slot", - "lint": "clippy::excessive_nesting", - "path": "src/application/creation.rs" - }, - { - "count": 1, - "fingerprint": "25d0f8111c690996070f43095a86bf7bafb1a92223936708c5044d225d02c98c", - "item": "crate::delete_lifecycle", - "lint": "clippy::excessive_nesting", - "path": "src/application/creation/deletion.rs" - }, - { - "count": 1, - "fingerprint": "30f0c95408939467c14ca3ebbb543ed194ed31339dd5e24377cb7e974fafd400", - "item": "crate::delete_lifecycle", - "lint": "clippy::excessive_nesting", - "path": "src/application/creation/deletion.rs" - }, - { - "count": 1, - "fingerprint": "350abd10e6ecc8bc3cebc3d28cf789f3a58e611cb76e0fad483ecd00daa0de65", - "item": "crate::delete_lifecycle", - "lint": "clippy::excessive_nesting", - "path": "src/application/creation/deletion.rs" - }, - { - "count": 1, - "fingerprint": "3c82ef4fa6edd14deb7e92e6e135a13763ecb50283c2ff0b61014b01adf4b79c", - "item": "crate::delete_lifecycle", - "lint": "clippy::excessive_nesting", - "path": "src/application/creation/deletion.rs" - }, - { - "count": 1, - "fingerprint": "5ae95c68a36189a6a97270a7d0b38556b11a7698362a79682ebcaea19619852b", - "item": "crate::delete_lifecycle", - "lint": "clippy::excessive_nesting", - "path": "src/application/creation/deletion.rs" - }, - { - "count": 1, - "fingerprint": "f85b889c8716747ed7035b9afcca76089da7c5e7a2cc7050fd7ea3784579470d", - "item": "crate::delete_lifecycle", - "lint": "clippy::excessive_nesting", - "path": "src/application/creation/deletion.rs" - }, - { - "count": 1, - "fingerprint": "fd3c924d424859c4b5dd84f87bcfcbd4e9d770521fa8405ec8bcf07efef2e380", - "item": "crate::delete_lifecycle", - "lint": "clippy::excessive_nesting", - "path": "src/application/creation/deletion.rs" - }, - { - "count": 1, - "fingerprint": "00cb7e1681732ced8a5729d8a36bcfc4880ae70c60e13787aac0dee004851212", - "item": "crate::validate_boundary", - "lint": "clippy::excessive_nesting", - "path": "src/application/creation/fork.rs" - }, - { - "count": 1, - "fingerprint": "9261bca38e050f6bc31edb34d7eac39535119dc56391181972edd1ae220b9d41", - "item": "crate::publish", - "lint": "clippy::excessive_nesting", - "path": "src/application/creation/initialization.rs" - }, - { - "count": 1, - "fingerprint": "dbd216ac9137bf7a166271b93955bd5a65bff4a51bfd26ed592587c48b6b1393", - "item": "crate::CreationService::create_product", - "lint": "clippy::excessive_nesting", - "path": "src/application/creation/product.rs" - }, - { - "count": 1, - "fingerprint": "2152575a7b7844c0789cb5916bec1dc8286ff3e879ed34a90925fbda45e9d5d4", - "item": "crate::execute_segment", - "lint": "clippy::excessive_nesting", - "path": "src/application/read.rs" - }, - { - "count": 1, - "fingerprint": "b2ed7a64ac4e12752e50ea7f6086069b9ce54b39ea7e5c59eb75ec09c219d325", - "item": "crate::fork_chain_of", - "lint": "clippy::excessive_nesting", - "path": "src/application/read.rs" - }, - { - "count": 1, - "fingerprint": "1283f4769ff60ff780684ab18786940d14d286f9c38f4a5358460e212b6602d5", - "item": "crate::PlainBatch::append_selected", - "lint": "clippy::excessive_nesting", - "path": "src/application/read_batch.rs" - }, - { - "count": 1, - "fingerprint": "6f4579e4eaffb0de154901d2ed0630b9b0f5771608d9a231864aec2c39822c5d", - "item": "crate::PlainBatch::append_selected", - "lint": "clippy::excessive_nesting", - "path": "src/application/read_batch.rs" - }, - { - "count": 1, - "fingerprint": "bac5133a4e6124c4c76294dab221641d1794067f018bf6ef8e32f208cb810d7e", - "item": "crate::PlainBatch::append_selected", - "lint": "clippy::excessive_nesting", - "path": "src/application/read_batch.rs" - }, - { - "count": 1, - "fingerprint": "dcbc2ce425da5e94f5c95a1675826f38834007addec44856567ebf0ca3b35ba8", - "item": "crate::PlainBatch::append_selected", - "lint": "clippy::excessive_nesting", - "path": "src/application/read_batch.rs" - }, - { - "count": 1, - "fingerprint": "7c5a2db9c9f40a9c66d251f218ffc8a3eb4c4251db8a32f919bb2d2f3c8ddf42", - "item": "crate::decode_frames_into", - "lint": "clippy::excessive_nesting", - "path": "src/application/read_decode.rs" - }, - { - "count": 1, - "fingerprint": "e6db68f213ea417c121609c8c1d3436b61244e5ad04a6b1fedf722205e875d11", - "item": "crate::decode_frames_into", - "lint": "clippy::excessive_nesting", - "path": "src/application/read_decode.rs" - }, - { - "count": 1, - "fingerprint": "11ebf48002f0bd185b30c0846e03215817952e638fd4dab4e6b8f8abe10a8761", - "item": "crate::ReadService::execute_read", - "lint": "clippy::excessive_nesting", - "path": "src/application/read_request.rs" - }, - { - "count": 1, - "fingerprint": "5f94e07b1f88452a7d5f66cc25f142ae234997d0ec4e76d91eea8e063d84f5f7", - "item": "crate::ReadService::execute_read", - "lint": "clippy::excessive_nesting", - "path": "src/application/read_request.rs" - }, - { - "count": 1, - "fingerprint": "801c98a16e59df733387de266fb8bddc9e3eef56045ed6cca11f167c8f221ee4", - "item": "crate::ReadService::execute_read", - "lint": "clippy::excessive_nesting", - "path": "src/application/read_request.rs" - }, - { - "count": 1, - "fingerprint": "aee72b6c9eebf7b3a09b1302260cf78aca541449d543fd9b50077f0d98d45eeb", - "item": "crate::ReadService::execute_read", - "lint": "clippy::excessive_nesting", - "path": "src/application/read_request.rs" - }, - { - "count": 1, - "fingerprint": "72618f7a12c31f2645d31d9b442018e2d913c176acb1fcf8409344e5726b1815", - "item": "crate::records::::visit_seq", - "lint": "clippy::excessive_nesting", - "path": "src/application/read_wire.rs" - }, - { - "count": 1, - "fingerprint": "befec59aa11f6b538b8d3172a45d97785fe9611a62711ec01e3dc74c4841ac00", - "item": "crate::RequestWork::run", - "lint": "clippy::excessive_nesting", - "path": "src/application/request_work.rs" - }, - { - "count": 1, - "fingerprint": "4a5cbe55fc4a512bfe2bbecf5e8ac4c79b6c64b9b1647c56fd3a5b7c2f10d2ff", - "item": "crate::Ticket::wait", - "lint": "clippy::excessive_nesting", - "path": "src/application/request_work.rs" - }, - { - "count": 1, - "fingerprint": "7c8d260b0b1720495fd47fd9a739569d0cd61496f669c49020928ec9228ab033", - "item": "crate::resume_incarnation", - "lint": "clippy::excessive_nesting", - "path": "src/application/topology.rs" - }, - { - "count": 1, - "fingerprint": "3cc16d7cd21fe23ec23e7994f70555a46e6793e78a1256dd8e74553442c5a4af", - "item": "crate::drain_once", - "lint": "clippy::excessive_nesting", - "path": "src/billing.rs" - }, - { - "count": 1, - "fingerprint": "b67a4fff62e09d5ccd1dc88896892fd9c90384cfffad928e2ccd97f2c1233da4", - "item": "crate::drain_once", - "lint": "clippy::excessive_nesting", - "path": "src/billing.rs" - }, - { - "count": 1, - "fingerprint": "b8619f089e9a898e9a4935e4d91028bd602c18d3ac91d140343ed9d5762cdf74", - "item": "crate::drain_once", - "lint": "clippy::excessive_nesting", - "path": "src/billing.rs" - }, - { - "count": 1, - "fingerprint": "ceebc667343eb1d7af7d4e60f7436504a48488f58d43cf61d47ace40bab61865", - "item": "crate::drain_once", - "lint": "clippy::excessive_nesting", - "path": "src/billing.rs" - }, - { - "count": 1, - "fingerprint": "1eb43c11928ed8346116410b8fef89bbc6048766f282c81da654ee8d618119a1", - "item": "crate::tombstone_walk", - "lint": "clippy::excessive_nesting", - "path": "src/billing.rs" - }, - { - "count": 1, - "fingerprint": "525bc1ec3f373286062971b854fa22533ec2dc1a1378958dbf85e28b9c7846d9", - "item": "crate::tombstone_walk", - "lint": "clippy::excessive_nesting", - "path": "src/billing.rs" - }, - { - "count": 1, - "fingerprint": "7965655162764ba230f8f0558403f35666082f5472436173428657015f74d14f", - "item": "crate::tombstone_walk", - "lint": "clippy::excessive_nesting", - "path": "src/billing.rs" - }, - { - "count": 1, - "fingerprint": "bfc5b26ccb9cda109577e2c4ccc524f1ee3beb235ab112bcc26b0e4d19c21bd6", - "item": "crate::tombstone_walk", - "lint": "clippy::excessive_nesting", - "path": "src/billing.rs" - }, - { - "count": 1, - "fingerprint": "2f62db7585b4d3ccaa95e66fe7ad581dc1180577d52b456a221b29fc087f4ef2", - "item": "crate::main", - "lint": "clippy::excessive_nesting", - "path": "src/bin/livebench.rs" - }, - { - "count": 1, - "fingerprint": "4239b5b2ef451cfc3c075064486fc3ff459ba62405925418cd8db6d37813a5b1", - "item": "crate::main", - "lint": "clippy::excessive_nesting", - "path": "src/bin/livebench.rs" - }, - { - "count": 1, - "fingerprint": "abcf4ae5d0e9c8f9414eea67a7bde2f1048d3213507670cfd6824992b36090b8", - "item": "crate::main", - "lint": "clippy::excessive_nesting", - "path": "src/bin/livebench.rs" - }, - { - "count": 1, - "fingerprint": "cae7a8d75308315a2440fec7618150f7d79054ba9c20e850ffbef47adaeed2e8", - "item": "crate::main", - "lint": "clippy::excessive_nesting", - "path": "src/bin/livebench.rs" - }, - { - "count": 1, - "fingerprint": "1eac21836af3d62faaf86c992f6e6a774c3f293cc7dd274d2683179da33988cd", - "item": "crate::run", - "lint": "clippy::excessive_nesting", - "path": "src/bootstrap.rs" - }, - { - "count": 1, - "fingerprint": "7fe6a1e41ab4be24f2266a6b2738614cdd5a7e8ee622f2a37e48df551518cad7", - "item": "crate::run", - "lint": "clippy::excessive_nesting", - "path": "src/bootstrap.rs" - }, - { - "count": 1, - "fingerprint": "b0a969acd3a47342907192890b2674b9ea3dd2dd50b7a2bbcbd3f6ab65185ffa", - "item": "crate::run", - "lint": "clippy::excessive_nesting", - "path": "src/bootstrap.rs" - }, - { - "count": 1, - "fingerprint": "ec7117bdc45729391aca40eb28900ebca02f9ad02d9cf6611c112ae8def5a273", - "item": "crate::::drop", - "lint": "clippy::excessive_nesting", - "path": "src/bootstrap/runtime_handoff.rs" - }, - { - "count": 1, - "fingerprint": "20915c85f18212ea79ef304324e79b7418de39d6017b019bbfb88a14d18fbbc4", - "item": "crate::::delete_stream", - "lint": "clippy::excessive_nesting", - "path": "src/dst/fault_store.rs" - }, - { - "count": 1, - "fingerprint": "a3f50add507862112bcb0572ef759a1844b9691c0949142659919d6098c0b6fd", - "item": "crate::::delete_stream", - "lint": "clippy::excessive_nesting", - "path": "src/dst/fault_store.rs" - }, - { - "count": 1, - "fingerprint": "02fb0b5040299908eb75e672ed0057ed59824416ce3d63df2349931000fbab03", - "item": "crate::::list", - "lint": "clippy::excessive_nesting", - "path": "src/dst/fault_store.rs" - }, - { - "count": 1, - "fingerprint": "484a3e984d3f8323567c87f5234c69963717ccbc43dd5ba8dcd80ac3028110f3", - "item": "crate::readiness_endpoint_refuses_each_permanent_critical_exit", - "lint": "clippy::excessive_nesting", - "path": "src/dst/review_readiness.rs" - }, - { - "count": 1, - "fingerprint": "38b4b5b4f365c240f983831949ac1c0b721c31c6ba3b9ed095b8683383e97eb4", - "item": "crate::r16_unauthorized_watch_shapes_are_independent_of_existence", - "lint": "clippy::excessive_nesting", - "path": "src/dst/review_security.rs" - }, - { - "count": 1, - "fingerprint": "beac18e52a4e5e4bcbfabf624dc1bc9185118a356cc1c76368cbc5dd440a8ae4", - "item": "crate::r16_unauthorized_watch_shapes_are_independent_of_existence", - "lint": "clippy::excessive_nesting", - "path": "src/dst/review_security.rs" - }, - { - "count": 1, - "fingerprint": "fe2069e7763d98d2b2a1d3b02013973bf1432956a9970e240895fede3f9dbc3c", - "item": "crate::r16_unauthorized_watch_shapes_are_independent_of_existence", - "lint": "clippy::excessive_nesting", - "path": "src/dst/review_security.rs" - }, - { - "count": 1, - "fingerprint": "7944f4056ffd5311351a49104fd999ff60f2fa54e8d3d8e8b11f33e61e7e6402", - "item": "crate::OpLog::audit", - "lint": "clippy::excessive_nesting", - "path": "src/dst/runtime.rs" - }, - { - "count": 1, - "fingerprint": "b11118ab102192ad1cc42f532b7ec00d82c7a340ed61051c1ac104a9d71f7a93", - "item": "crate::OpLog::audit", - "lint": "clippy::excessive_nesting", - "path": "src/dst/runtime.rs" - }, - { - "count": 1, - "fingerprint": "fb62bbd1021e932cf5fdc140a5f4db1b2c06ad36db64f17be41310a1754a59a2", - "item": "crate::Workload::append_to", - "lint": "clippy::excessive_nesting", - "path": "src/dst/runtime.rs" - }, - { - "count": 1, - "fingerprint": "580d2ad6ac21a732ec42174ec819dcd149063e8819b25f4bdc043cf320e2f48d", - "item": "crate::product_consumer_drains_lineage_across_split", - "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/consumer_product.rs" - }, - { - "count": 1, - "fingerprint": "01f29285e5b5e3906d6dc5cb23aebac8c693299e54bf334a73e89abde40a1d51", - "item": "crate::rig_opener", - "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/fixture_http.rs" + "lint": "clippy::disallowed_methods", + "path": "src/sse/session.rs" }, { "count": 1, - "fingerprint": "24d6a9f7d08260ec8d41b585b5cd32e156e5a9b0b117cc840c45911732880158", - "item": "crate::r09_fleet_cancels_entered_documents_without_partial_authority_or_lost_retry", + "fingerprint": "1aa80d18a19ab8c44adad6867582390fd403d7e578c6c980d86a41215fc4d6a6", + "item": "crate::AppendService::execute_prepared", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/fleet_controller.rs" + "path": "src/application/append.rs" }, { "count": 1, - "fingerprint": "ba04939f0f75a7c37688a56805d79f9171f2eeb312d37e9d334617c86631c78f", - "item": "crate::r09_fleet_cancels_entered_documents_without_partial_authority_or_lost_retry", + "fingerprint": "9708041ffc3bdd8971e0399d56602883716278f2888d663cd71044290811f940", + "item": "crate::AppendService::execute_prepared", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/fleet_controller.rs" + "path": "src/application/append.rs" }, { "count": 1, - "fingerprint": "c849f9dbe87bd3cd71d409d13273ebb815eb5be62a0fd48a4a57d61ac54342eb", - "item": "crate::r05_unknown_child_state_preserves_its_source_reference", + "fingerprint": "200593dd56bd84f86d6bd2381cf60e3c90850d223ea418380f1386f95ee8c91c", + "item": "crate::parse_content", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/fork_lifecycle.rs" + "path": "src/application/append/content.rs" }, { "count": 1, - "fingerprint": "fc1101b26da17357fcbc421fcb84beeb56f04c7b14262fcc48739ac08ffb6971", - "item": "crate::r05_unknown_child_state_preserves_its_source_reference", + "fingerprint": "5011db966fad7d0ac54f630116d544dc3a26b27905f43c6715aae5de6e1a5524", + "item": "crate::parse_content", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/fork_lifecycle.rs" + "path": "src/application/append/content.rs" }, { "count": 1, - "fingerprint": "4e09b4b11bc905358797d7b4881dda9492eb422131e163dfbb0e63084914db0d", - "item": "crate::an_initialization_cannot_be_resumed_with_another_key", - "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/lifecycle_creation.rs" - }, - { - "count": 2, - "fingerprint": "47c874007589f3c3294157c7f1e65f8f794f8b1dee4b73ec2a990dca0a212396", - "item": "crate::livefeed_remote_sealed_predecessor_streams_through_owner", + "fingerprint": "8159ae18367a0e05d25064c67936f9202fc2bfeceeeee55c3d2577d3acc3d87c", + "item": "crate::parse_content", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/livefeed_history.rs" + "path": "src/application/append/content.rs" }, { "count": 1, - "fingerprint": "dedb3df47790ea5d018d365d1788da658fe89b965b07e76ffc4053f669c2b300", - "item": "crate::livefeed_split_shared_subscribers_swap_once_deliver_twice", + "fingerprint": "9a6cef3126c11228971fa4ca9a8c17ad862015d39ccf4ae330d2ddb960fa277c", + "item": "crate::parse_content", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/livefeed_swap.rs" + "path": "src/application/append/content.rs" }, { "count": 1, - "fingerprint": "28a8ee77e7a3c036337c0a3463d49b0711893258a54d3e617c9ce7bc075ed02d", - "item": "crate::cut_resume_never_skips_a_durable_record", + "fingerprint": "1283f4769ff60ff780684ab18786940d14d286f9c38f4a5358460e212b6602d5", + "item": "crate::PlainBatch::append_selected", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/persistence_faults.rs" + "path": "src/application/read_batch.rs" }, { "count": 1, - "fingerprint": "2c37182cb22d080ea24dbcab995f749bdc692d610818cb41241001b317702308", - "item": "crate::cut_resume_never_skips_a_durable_record", + "fingerprint": "6f4579e4eaffb0de154901d2ed0630b9b0f5771608d9a231864aec2c39822c5d", + "item": "crate::PlainBatch::append_selected", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/persistence_faults.rs" + "path": "src/application/read_batch.rs" }, { "count": 1, - "fingerprint": "49560d6a75a831b67a5d2b7472d23c2cfecbe157d48b31d7306356b374cee6b9", - "item": "crate::the_first_advance_seals_the_history_layout::wait_absorbed", + "fingerprint": "bac5133a4e6124c4c76294dab221641d1794067f018bf6ef8e32f208cb810d7e", + "item": "crate::PlainBatch::append_selected", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/reads_history.rs" + "path": "src/application/read_batch.rs" }, { "count": 1, - "fingerprint": "7809e9cb9c94055a5bca6d983583ee40841106a34d92a33b70bc067b4fe9cebd", - "item": "crate::the_first_advance_seals_the_history_layout::wait_absorbed", + "fingerprint": "dcbc2ce425da5e94f5c95a1675826f38834007addec44856567ebf0ca3b35ba8", + "item": "crate::PlainBatch::append_selected", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/reads_history.rs" + "path": "src/application/read_batch.rs" }, { "count": 1, - "fingerprint": "f705df536f1c133fec22b72a67d74ae24a7012bed3b97c525efb16351dfa64fd", - "item": "crate::a_duplicate_absorbed_op_does_not_advance_the_trim", + "fingerprint": "7c5a2db9c9f40a9c66d251f218ffc8a3eb4c4251db8a32f919bb2d2f3c8ddf42", + "item": "crate::decode_frames_into", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/reads_ring.rs" + "path": "src/application/read_decode.rs" }, { "count": 1, - "fingerprint": "e13069f5d295aa1a0bc9ba761037dd5419e672cc1e003a2833d20a9462ee432f", - "item": "crate::r09a_cancelled_topology_job_leaves_exact_debt_for_a_fresh_read_owner", + "fingerprint": "e6db68f213ea417c121609c8c1d3436b61244e5ad04a6b1fedf722205e875d11", + "item": "crate::decode_frames_into", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/request_topology_debt.rs" + "path": "src/application/read_decode.rs" }, { "count": 1, - "fingerprint": "47dd963a38cd246519b3c94c97f538c3251ece297e312681e5b57f72c0f476a7", - "item": "crate::r17a_each_required_engine_exit_changes_real_health_and_readyz", + "fingerprint": "11ebf48002f0bd185b30c0846e03215817952e638fd4dab4e6b8f8abe10a8761", + "item": "crate::ReadService::execute_read", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/runtime_engine_lifecycle.rs" + "path": "src/application/read_request.rs" }, { "count": 1, - "fingerprint": "160515be4a62535d57f518177f2ba2aa31a9ada7a4f1724fea9e71aad7a1df37", - "item": "crate::open_gate_escalates_holdoff_for_engines_that_die_young", + "fingerprint": "5f94e07b1f88452a7d5f66cc25f142ae234997d0ec4e76d91eea8e063d84f5f7", + "item": "crate::ReadService::execute_read", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/runtime_open_gate.rs" + "path": "src/application/read_request.rs" }, { "count": 1, - "fingerprint": "f93d8e4dcb13e18325d41a73785f005b0db03929d72ccdf9ef2d3b62d239fd12", - "item": "crate::tombstone_walk_fairness_under_occupied_budget", + "fingerprint": "801c98a16e59df733387de266fb8bddc9e3eef56045ed6cca11f167c8f221ee4", + "item": "crate::ReadService::execute_read", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/runtime_sweep.rs" + "path": "src/application/read_request.rs" }, { "count": 1, - "fingerprint": "1ba944c8796d64e85591514448ffd5eb882b1de1506de50d55f20404327ed3a0", - "item": "crate::noisy_neighbor_cannot_degrade_a_compliant_project", + "fingerprint": "aee72b6c9eebf7b3a09b1302260cf78aca541449d543fd9b50077f0d98d45eeb", + "item": "crate::ReadService::execute_read", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/security_isolation.rs" + "path": "src/application/read_request.rs" }, { "count": 1, - "fingerprint": "e21dadb6bdf009384ba30b2a458eef4ae3203860fb2585de44b2a37c141a4e96", - "item": "crate::noisy_neighbor_cannot_degrade_a_compliant_project", + "fingerprint": "72618f7a12c31f2645d31d9b442018e2d913c176acb1fcf8409344e5726b1815", + "item": "crate::records::::visit_seq", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/security_isolation.rs" + "path": "src/application/read_wire.rs" }, { "count": 1, - "fingerprint": "cceace2aa58346ed40165ffab88a9c66f603b7d13e76d5932d8d63e151b1ccec", - "item": "crate::product_sse_controls_carry_signed_cursors", + "fingerprint": "befec59aa11f6b538b8d3172a45d97785fe9611a62711ec01e3dc74c4841ac00", + "item": "crate::RequestWork::run", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/sse_delivery.rs" + "path": "src/application/request_work.rs" }, { "count": 1, - "fingerprint": "f2c96a740bf36f56cb4d1daef714716078255447ff01f767c09a7fb971bfc15f", - "item": "crate::sse_follows_lineage_across_split", + "fingerprint": "4a5cbe55fc4a512bfe2bbecf5e8ac4c79b6c64b9b1647c56fd3a5b7c2f10d2ff", + "item": "crate::Ticket::wait", "lint": "clippy::excessive_nesting", - "path": "src/dst/tests/sse_delivery.rs" + "path": "src/application/request_work.rs" }, { "count": 1, - "fingerprint": "5233d9b140eedafdf1a6d5ef39edf3e0e77aead9dbca56c8355fbc7b95604acf", - "item": "crate::::delete_stream", + "fingerprint": "1eac21836af3d62faaf86c992f6e6a774c3f293cc7dd274d2683179da33988cd", + "item": "crate::run", "lint": "clippy::excessive_nesting", - "path": "src/dst/trace_store.rs" + "path": "src/bootstrap.rs" }, { "count": 1, - "fingerprint": "a7f3ede7bc2c16bbde8eca36a575c5562508da5abf0782f71dac4dea29e25851", - "item": "crate::::delete_stream", + "fingerprint": "7fe6a1e41ab4be24f2266a6b2738614cdd5a7e8ee622f2a37e48df551518cad7", + "item": "crate::run", "lint": "clippy::excessive_nesting", - "path": "src/dst/trace_store.rs" + "path": "src/bootstrap.rs" }, { "count": 1, - "fingerprint": "be5566b4de849f072132e9527e11b919150e7e2214eb569fe25e20bf069980ab", - "item": "crate::concurrent_begins_with_reverse_finishes_resolve_every_event_exactly_once", + "fingerprint": "b0a969acd3a47342907192890b2674b9ea3dd2dd50b7a2bbcbd3f6ab65185ffa", + "item": "crate::run", "lint": "clippy::excessive_nesting", - "path": "src/dst/trace_store_tests/concurrency.rs" + "path": "src/bootstrap.rs" }, { "count": 1, - "fingerprint": "17502ef4ad24ab8eff377569c3983dfeb9d0f0c5928c5d090838b9db49e906fc", - "item": "crate::::delete_stream", + "fingerprint": "ec7117bdc45729391aca40eb28900ebca02f9ad02d9cf6611c112ae8def5a273", + "item": "crate::::drop", "lint": "clippy::excessive_nesting", - "path": "src/dst/trace_store_tests/mod.rs" + "path": "src/bootstrap/runtime_handoff.rs" }, { "count": 1, @@ -1576,83 +764,6 @@ "lint": "clippy::excessive_nesting", "path": "src/fleet/repository.rs" }, - { - "count": 2, - "fingerprint": "353c4adbd7a84fd0ee4d793ecf5004cea4e4def0c78fee65c123890742e0e22b", - "item": "crate::raw_page", - "lint": "clippy::excessive_nesting", - "path": "src/history/postings_validation_tests.rs" - }, - { - "count": 1, - "fingerprint": "8943707662c6a381a961be34fe8a2c04f6585d385985d76b8d9be4a48d752496", - "item": "crate::raw_page", - "lint": "clippy::excessive_nesting", - "path": "src/history/postings_validation_tests.rs" - }, - { - "count": 1, - "fingerprint": "2855a1d3e51e88876253da4f8ba9f26cf2ee5b2cc3ad2e777c624c12cb081153", - "item": "crate::Absorber::gather_due", - "lint": "clippy::excessive_nesting", - "path": "src/history/worker.rs" - }, - { - "count": 1, - "fingerprint": "4760b6f6157e0b1d432988b788d8adeb347837b9b292dee165c1a6cdaf9195e2", - "item": "crate::Absorber::gather_due", - "lint": "clippy::excessive_nesting", - "path": "src/history/worker.rs" - }, - { - "count": 1, - "fingerprint": "8a8eaa70b4ae377f730cf0227b9e6920fc09472b9b3ea808132597d6cb3ea2b7", - "item": "crate::Absorber::gather_due", - "lint": "clippy::excessive_nesting", - "path": "src/history/worker.rs" - }, - { - "count": 1, - "fingerprint": "af1057e5fc7df11aaaa5f2ca8eb50174498749ae1f1d2a01f831a84b5bad9c9c", - "item": "crate::Absorber::gather_due", - "lint": "clippy::excessive_nesting", - "path": "src/history/worker.rs" - }, - { - "count": 1, - "fingerprint": "ed9cecb327df14c2c913d96e97d8ad89b5839f3c74db66a939da84a8748dde91", - "item": "crate::Absorber::gather_due", - "lint": "clippy::excessive_nesting", - "path": "src/history/worker.rs" - }, - { - "count": 1, - "fingerprint": "03fd5ad47796621bb1fad1fc50f1afa04a61bf97e56df584548eff1a83123caf", - "item": "crate::append_typed", - "lint": "clippy::excessive_nesting", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "c16effd6b3a25113a54e7aa093387baba1119d0f514ae932d54bd969ec0d2262", - "item": "crate::Lint < 'a >::check_signature", - "lint": "clippy::excessive_nesting", - "path": "src/mt_lint.rs" - }, - { - "count": 1, - "fingerprint": "ca558a37425e30fbdb804eaac607efc6ef5633ba19965106ab64d517dc755fff", - "item": "crate::Lint < 'a >::check_signature", - "lint": "clippy::excessive_nesting", - "path": "src/mt_lint.rs" - }, - { - "count": 1, - "fingerprint": "62e4970a5e4f5eda75b45c3fd034e451a2be59428eb6dc41b07e3484f46d5137", - "item": "crate::multitenancy_identity_lint::walk", - "lint": "clippy::excessive_nesting", - "path": "src/mt_lint.rs" - }, { "count": 1, "fingerprint": "0b719f20a83a38b88ce0da46cea55093a68027d2f0ce6623e13ec224e0172d92", @@ -1807,13 +918,6 @@ "lint": "clippy::excessive_nesting", "path": "src/product.rs" }, - { - "count": 1, - "fingerprint": "41aa761eb93bf5bc439ab385082f2353246ab1b5817b589cf07fe25936b83574", - "item": "crate::QuotaRegistry::admit", - "lint": "clippy::excessive_nesting", - "path": "src/quota.rs" - }, { "count": 1, "fingerprint": "194d60ed469b75f7246e155f672469339b422294f18914fe017600f43959d0ee", @@ -1884,132 +988,6 @@ "lint": "clippy::excessive_nesting", "path": "src/registry.rs" }, - { - "count": 1, - "fingerprint": "922d5806a61e4942d1df2829ab59f4f25f480a7ca55c4455ef6312ace8638fd9", - "item": "crate::::sleep", - "lint": "clippy::excessive_nesting", - "path": "src/runtime.rs" - }, - { - "count": 1, - "fingerprint": "6a3920d33a903650e2bb4c9d61d60dad13588da55952c78a4ef194d580fcc5b7", - "item": "crate::tests::r10_telemetry_cache_progress_and_database_lifetimes_are_runtime_owned", - "lint": "clippy::excessive_nesting", - "path": "src/runtime/telemetry.rs" - }, - { - "count": 1, - "fingerprint": "f56ac2edf2fd4344f049479cd96fada5edff21ed2a2a09c227db8b3a2b95f767", - "item": "crate::State::forget_previous_incarnation", - "lint": "clippy::excessive_nesting", - "path": "src/scaler3.rs" - }, - { - "count": 1, - "fingerprint": "630ee19906cd5e125941d1079dd7af6a82e0ef78f10a35c55f4825d7f87e0709", - "item": "crate::evaluate_state", - "lint": "clippy::excessive_nesting", - "path": "src/scaler3.rs" - }, - { - "count": 1, - "fingerprint": "708c0e28416e32bac3d3263265aa780e38c67bdf8cee5d74d18258cd16d7dc7a", - "item": "crate::ShardEngine::acker_loop", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "1e5144d8c0b3fbaea9b7b3665a13c9d7d927f4fd95e95258b08e82b194031f76", - "item": "crate::ShardEngine::committer_loop", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "21aa4ff9636a9f96e66334cbfecbe4f52004f01dd477af2eddafacd0ed08caa1", - "item": "crate::ShardEngine::committer_loop", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "2836daadda0123287b0e935176377db2f8855ae4889c2ca78c880c3856a3ec68", - "item": "crate::ShardEngine::committer_loop", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "2e6611bbf1780df70598a45f6a8106d08658a7d10f0c9ae727ee6790808d92b9", - "item": "crate::ShardEngine::committer_loop", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "704c252fdc940c1d658394725079220f82866c9ca8a484346ba4b7ab0e412767", - "item": "crate::ShardEngine::committer_loop", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "79391a0bb4c3e7a4e7f6127506366ae0ee6fd657ab29979e0658ebae427540cf", - "item": "crate::ShardEngine::committer_loop", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "b902280d2b965477543d6ca00da8bf8fc2851ff71fdfd349de403e8d0aa680ee", - "item": "crate::ShardEngine::committer_loop", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "11f73870f291f3e5d335afcf1f030cf28508450645ba29d98410a895aea787c6", - "item": "crate::ShardEngine::dispatch_durable", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "12b5ac4c17c5c72eb894e8942ebf9e7f0f6ba162d7cc1d6f242f530b3e522b42", - "item": "crate::ShardEngine::start", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "a0d39a3daff644f749ed846aad761e6e28878e7924ce0086613d8581e3be387c", - "item": "crate::ShardEngine::start", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "d1303f871e9e5dbb0f85fa845ed156088cee45e313877d9c92a557fe737333a7", - "item": "crate::ShardEngine::start", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "deddb2b8a61c8da75b62470a790aa00837b72e108a82f8373f5ebae0d9f02ab1", - "item": "crate::ShardEngine::start", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "f5fd5a1fc0e6479a7ec2ce8a9c5f407e1ac3b93e9addfe5f5901b19b389b7642", - "item": "crate::ShardEngine::start", - "lint": "clippy::excessive_nesting", - "path": "src/shard.rs" - }, { "count": 1, "fingerprint": "06d29137bf6e07d6ea97cd83eb4399613c6bd89261314a51f104757f2fa00b13", @@ -2647,83 +1625,6 @@ "lint": "clippy::excessive_nesting", "path": "src/sse/source.rs" }, - { - "count": 1, - "fingerprint": "13b437276e982f3894e983e01f345242c6c64c112cc803461289e2e5cd1de24e", - "item": "crate::TaskSupervisor::launch_shutdown", - "lint": "clippy::excessive_nesting", - "path": "src/tasks/shutdown.rs" - }, - { - "count": 1, - "fingerprint": "4a5975fa9ea7f64af10fd4d14dcc3c943340b61b8af8af976e90f6ddf470d14c", - "item": "crate::encode_prefix", - "lint": "clippy::excessive_nesting", - "path": "src/telemetry_batch.rs" - }, - { - "count": 1, - "fingerprint": "cf2d4b10046cb61f96849b301cecb817e73fd85fbbdb245672281abd219282aa", - "item": "crate::TouchJournal::start", - "lint": "clippy::excessive_nesting", - "path": "src/touch.rs" - }, - { - "count": 1, - "fingerprint": "20de1f0b3e58a074307b546329b9d4d2016b9e3096ec7fe706ce296a94ca3eeb", - "item": "crate::dlq_and_settle", - "lint": "clippy::expect_used", - "path": "src/application/consumer/delivery.rs" - }, - { - "count": 1, - "fingerprint": "44afff99d1565b8d7b2ed92e7462ceeb566de7406c6b40a222be52709179f081", - "item": "crate::relay_queue_cursor", - "lint": "clippy::expect_used", - "path": "src/application/consumer_remote.rs" - }, - { - "count": 1, - "fingerprint": "b4886b6b928cfc707944b06ef4a2af7a587347beda2fd9f5868f1aa1b6dbadab", - "item": "crate::relay_sweep_segment", - "lint": "clippy::expect_used", - "path": "src/application/consumer_remote.rs" - }, - { - "count": 1, - "fingerprint": "77c7c5dcc68868ef977c9f613eb03268f9f78d53910c39f2e7637ad3a59f0e5e", - "item": "crate::json_entries", - "lint": "clippy::expect_used", - "path": "src/application/creation.rs" - }, - { - "count": 1, - "fingerprint": "89b8ed38656716b2b492981f0be58883b33af405feabff434d78c5f2b9e53bf2", - "item": "crate::json_entries", - "lint": "clippy::expect_used", - "path": "src/application/creation.rs" - }, - { - "count": 1, - "fingerprint": "e717a00beba453e59d6b13536a1b7174ebd58c4ecdd25afc2c139b6e7f1e464d", - "item": "crate::stamp_fork_reference", - "lint": "clippy::expect_used", - "path": "src/application/creation/anchor.rs" - }, - { - "count": 1, - "fingerprint": "d6ea231d3a69fe169353a15ad6f1f0ab948014b41d5246ae7acd76a629eb5bf6", - "item": "crate::delete_lifecycle", - "lint": "clippy::expect_used", - "path": "src/application/creation/deletion.rs" - }, - { - "count": 1, - "fingerprint": "d6b0356f48129c9473db129f483e5683ab5a24a6a5d4c03169a88f1849c6e937", - "item": "crate::decide_claim", - "lint": "clippy::expect_used", - "path": "src/application/lifecycle/claims.rs" - }, { "count": 1, "fingerprint": "f64df6f2bc5a9d405a454945afe3c5bbd50e569c7e16d7000edbc3c77bf417e1", @@ -2736,35 +1637,7 @@ "fingerprint": "aa8b735cd8248a86cd421200db12ca540512778d8a783efa5f6692d1b0d15adf", "item": "crate::scan_page_once", "lint": "clippy::expect_used", - "path": "src/application/read_remote.rs" - }, - { - "count": 1, - "fingerprint": "350a8df21f66d6ec939ca1073f4340bfd87bebb9ca0b8f9bb748157b290498a9", - "item": "crate::resume_incarnation", - "lint": "clippy::expect_used", - "path": "src/application/topology.rs" - }, - { - "count": 1, - "fingerprint": "6a3a8bf77c6a257cad8bd26381b57f40a7c711c0ac37fb282d7b3cfcaccf272b", - "item": "crate::resume_incarnation", - "lint": "clippy::expect_used", - "path": "src/application/topology.rs" - }, - { - "count": 1, - "fingerprint": "f63dbc656498275beffa3c416eebdd2d65dff345d1e865ea87c39fc54c39a2bd", - "item": "crate::resume_merge", - "lint": "clippy::expect_used", - "path": "src/application/topology.rs" - }, - { - "count": 1, - "fingerprint": "add7a6c6099dc69f69f31022e843efa9b3b5bc319e4719a078413b2832f066a1", - "item": "crate::PendingAudit < 'a >::take", - "lint": "clippy::expect_used", - "path": "src/audit.rs" + "path": "src/application/read_remote.rs" }, { "count": 1, @@ -2787,27 +1660,6 @@ "lint": "clippy::expect_used", "path": "src/bootstrap/runtime_handoff.rs" }, - { - "count": 1, - "fingerprint": "23fe18d6bb468f82a2161e564ba0a9407164c015daadd31ea51a63d87ba6f605", - "item": "crate::DeploymentIdentity::raw_adapter_sref", - "lint": "clippy::expect_used", - "path": "src/deployment.rs" - }, - { - "count": 1, - "fingerprint": "42eeb6c95de8528603672d7cf38b8c88e9e9386bcbeb5ea38ae21702ef707233", - "item": "crate::mac16", - "lint": "clippy::expect_used", - "path": "src/product_cursor.rs" - }, - { - "count": 1, - "fingerprint": "d2c08919e550724cb8980cc2f388bf5af1b0918d6bc9495b52baf5e6dc1d68fa", - "item": "crate::mac_key", - "lint": "clippy::expect_used", - "path": "src/product_cursor.rs" - }, { "count": 1, "fingerprint": "71c94b87ea313746b3655e25606c249376b24edc6bbc4662d58a76e102cf5b85", @@ -2871,13 +1723,6 @@ "lint": "clippy::expect_used", "path": "src/tenant.rs" }, - { - "count": 1, - "fingerprint": "bf50dd3ce823a8bcbf08445c192db0440927ea2581360724743b3d9111cce397", - "item": "crate::idle_engine_store_traffic_is_bounded_by_the_poll_cadence", - "lint": "clippy::field_reassign_with_default", - "path": "src/dst/tests/runtime_open_gate.rs" - }, { "count": 1, "fingerprint": "e5211d90a1e337352430a9f0a55c4d657343a918e50c030c0ef6f0cadbf85870", @@ -2892,20 +1737,6 @@ "lint": "clippy::fn_params_excessive_bools", "path": "src/application/append/contract.rs" }, - { - "count": 1, - "fingerprint": "e8a14ab85d4f54761243199b7d4e22951df2562856ae53c7e9d23533048cd7db", - "item": "crate::LeaseRig::publish", - "lint": "clippy::fn_params_excessive_bools", - "path": "src/dst/tests/security_freshness.rs" - }, - { - "count": 1, - "fingerprint": "d812a79721e290156794d6e0d93b78e97749718f34f1ac9a1ba59173f34a96fd", - "item": "crate::TraceStore::with_options", - "lint": "clippy::fn_params_excessive_bools", - "path": "src/dst/trace_store.rs" - }, { "count": 1, "fingerprint": "2d7ffb6b7490d20b6b2bb0a7ed903bbfac4cee03b702a300bec63ad9b758c48f", @@ -2962,27 +1793,6 @@ "lint": "clippy::large_enum_variant", "path": "src/registry.rs" }, - { - "count": 1, - "fingerprint": "b4efcf96fd6b8f0dbd9be6da8640f901104980815d040866cae2828fbd06227f", - "item": "crate::CommitOp", - "lint": "clippy::large_enum_variant", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "1d68c795d411a2826189e4c607b033e51c5b95c5c0088ae683e59c0cb7a99fc5", - "item": "crate::spawn_refresher", - "lint": "clippy::let_underscore_must_use", - "path": "src/auth_feed.rs" - }, - { - "count": 1, - "fingerprint": "d5d453a0badc787ef4a63eab31c3ac29282921eb4df51015af220492473c1d6e", - "item": "crate::tests::refresh_once_publishes_from_files_and_survives_a_broken_one", - "lint": "clippy::let_underscore_must_use", - "path": "src/auth_feed.rs" - }, { "count": 1, "fingerprint": "cdb928566335511055c455f14f4e266a294a14a8c65be524eecbc9b07fb1af5b", @@ -2990,90 +1800,6 @@ "lint": "clippy::let_underscore_must_use", "path": "src/bootstrap/runtime_handoff.rs" }, - { - "count": 1, - "fingerprint": "01acc1eb1c1eb39eda1a83e4ba94a3e93e31213318e7adb900942590c9393324", - "item": "crate::FaultState::gate", - "lint": "clippy::let_underscore_must_use", - "path": "src/dst/fault_store.rs" - }, - { - "count": 1, - "fingerprint": "88f47529d21b6f01cbb3f4f038cc84ed7d52ef820898a220fc9dfbfd9a667e8e", - "item": "crate::expiry_closes_the_storage_gauge", - "lint": "clippy::let_underscore_must_use", - "path": "src/dst/tests/billing_maintenance.rs" - }, - { - "count": 1, - "fingerprint": "b45de03533ae5f12677be0a22fab17b1783ce02b2fdc66cf2f590097e3e9ef8b", - "item": "crate::faults_actually_fire", - "lint": "clippy::let_underscore_must_use", - "path": "src/dst/tests/fault_substrate.rs" - }, - { - "count": 1, - "fingerprint": "9dbb40087926a1e51d1a41aa872956dee1d6e1985e2cae529432a15e038d25f9", - "item": "crate::lost_response_counter_tracks_applied_behaviour_only", - "lint": "clippy::let_underscore_must_use", - "path": "src/dst/tests/fault_substrate.rs" - }, - { - "count": 1, - "fingerprint": "370d271bfbb095ae2412b1956cc870859f6b93d84dbf3075d5597330e377a1a3", - "item": "crate::http_rig_build", - "lint": "clippy::let_underscore_must_use", - "path": "src/dst/tests/fixture_http.rs" - }, - { - "count": 1, - "fingerprint": "c873b19fe6d8b5010de14f5b9a916eacdffe33f54308e7a46d442e829718eece", - "item": "crate::HeldDocument::enter", - "lint": "clippy::let_underscore_must_use", - "path": "src/dst/tests/fleet_controller.rs" - }, - { - "count": 1, - "fingerprint": "1315068f273a06efe4703faf6a527bd960801c350dee43e9eec4f44db035f562", - "item": "crate::fork_cascade_hard_delete_releases_the_stream_slot", - "lint": "clippy::let_underscore_must_use", - "path": "src/dst/tests/quota_enforcement.rs" - }, - { - "count": 1, - "fingerprint": "563fc7af72d23dad003733fdbc28b5926bf19c7bc5113ed08d3c0e45a6cf8760", - "item": "crate::a_hung_open_is_deadlined_and_its_late_engine_reaped", - "lint": "clippy::let_underscore_must_use", - "path": "src/dst/tests/runtime_open_gate.rs" - }, - { - "count": 1, - "fingerprint": "19133a040966a0c16c5e512d6243a28683d97c2712e0e00226a1e6c3488b535b", - "item": "crate::naive_get_or_open", - "lint": "clippy::let_underscore_must_use", - "path": "src/dst/tests/runtime_open_gate.rs" - }, - { - "count": 1, - "fingerprint": "6d50d40ac8ce2e9451fc55e721fd33109694eab33cd0c98a2d4faa256e78c2fb", - "item": "crate::reopen_storm_reproduces_the_eu_central_wedge", - "lint": "clippy::let_underscore_must_use", - "path": "src/dst/tests/runtime_open_gate.rs" - }, - { - "count": 1, - "fingerprint": "b635928dcb8e9632df7d4f118b1c5182888d6b769533c304035885c939845aee", - "item": "crate::drain_billing_clean", - "lint": "clippy::let_underscore_must_use", - "path": "src/dst/tests/runtime_sweep.rs" - }, - { - "count": 1, - "fingerprint": "aa27a3793517915419675661f5b33642fa11119b0cc7711d3c24743dae37327c", - "item": "crate::reset_racing_with_begin_cannot_orphan_an_operation", - "lint": "clippy::let_underscore_must_use", - "path": "src/dst/trace_store_tests/concurrency.rs" - }, { "count": 1, "fingerprint": "074ade8238bf36c30a7b368691990756cc43f3fcd2e4a718701b6c189a19ee7f", @@ -3081,55 +1807,6 @@ "lint": "clippy::let_underscore_must_use", "path": "src/fleet.rs" }, - { - "count": 1, - "fingerprint": "1ec581eaae0ffbc70f357d7dbdec2fc40ab13894c1892399eba6f8609acb5d15", - "item": "crate::active_absorber_cancel", - "lint": "clippy::let_underscore_must_use", - "path": "src/history/controller_tests.rs" - }, - { - "count": 1, - "fingerprint": "61152cc28d95328fc84f8c9316d0964497d26902d37d91410de277226d20f378", - "item": "crate::active_absorber_cancel", - "lint": "clippy::let_underscore_must_use", - "path": "src/history/controller_tests.rs" - }, - { - "count": 1, - "fingerprint": "d963f9293297f7309ece0814abaae351b55f6aae12735f766725924f1b82f344", - "item": "crate::serve_h1", - "lint": "clippy::let_underscore_must_use", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "f175900fa78c925ccbd91df2b45c5eb8650d00712572c13e255e7b0cf2935910", - "item": "crate::serve_h1", - "lint": "clippy::let_underscore_must_use", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "c2c19b6c3f494f4885ecfd22b025222d3a45c00068e2a0a2c1d0766966e928c6", - "item": "crate::spawn_runtime_watchdog", - "lint": "clippy::let_underscore_must_use", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "85d4ca5f29ee24c72af2e72451bccf9d1c49b6a3d19ad29e366464837e5fe1e8", - "item": "crate::sse_response", - "lint": "clippy::let_underscore_must_use", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "97b97265d167d40652f1d7549adb8d9a14213cebe9775db187d912cec245c854", - "item": "crate::touch_ttl", - "lint": "clippy::let_underscore_must_use", - "path": "src/http.rs" - }, { "count": 1, "fingerprint": "2273e8cd46b371b2f6c93c9155c01e61cddc7125be3c430eeed775884d7af64f", @@ -3319,55 +1996,6 @@ "lint": "clippy::let_underscore_must_use", "path": "src/sse/source.rs" }, - { - "count": 1, - "fingerprint": "137834f6fe95fc546b5385452dd2c65d199c35b095702506622a978243b4e94e", - "item": "crate::TaskSupervisor::launch_shutdown", - "lint": "clippy::let_underscore_must_use", - "path": "src/tasks/shutdown.rs" - }, - { - "count": 1, - "fingerprint": "e813e58dc76b0d8dacc5ee1269019999cb3bd5359400c9333ccafdda3a8697bf", - "item": "crate::TaskSupervisor::launch_shutdown", - "lint": "clippy::let_underscore_must_use", - "path": "src/tasks/shutdown.rs" - }, - { - "count": 1, - "fingerprint": "b6f6f1d5231cb405cba03de4dd9fe3771c01c91561ab05062e53199c80b67f57", - "item": "crate::drive_shutdown", - "lint": "clippy::let_underscore_must_use", - "path": "src/tasks/shutdown.rs" - }, - { - "count": 1, - "fingerprint": "2c081f6b7b6c7a95b3d5200429c04bb2ef3891bd456f08c3b91223c74591d9f3", - "item": "crate::begin_sealing_for_close", - "lint": "clippy::match_same_arms", - "path": "src/application/lifecycle.rs" - }, - { - "count": 1, - "fingerprint": "ede11c01c2cce57665b90ad067af4f52ef23c6570d0799286c0ec6e2c45e5fc6", - "item": "crate::prepare_execution", - "lint": "clippy::match_same_arms", - "path": "src/application/lifecycle.rs" - }, - { - "count": 1, - "fingerprint": "136ef7ae296df02b2a77784e50d83e7c002bfe06711eae3173c3a5eac15bda79", - "item": "crate::final_err_disposition", - "lint": "clippy::match_same_arms", - "path": "src/application/lifecycle/claims.rs" - }, - { - "count": 1, - "fingerprint": "37ee8bcadbf20e419e2ef2f53503959ec976561d8125cdbc014d5be236660047", - "item": "crate::Workload::attempt_with_deadline", - "lint": "clippy::match_same_arms", - "path": "src/dst/runtime.rs" - }, { "count": 1, "fingerprint": "37ad9fc70d48095f983c2413ff24b72a396c2c624e7b09f0c8db44bd9d459f63", @@ -3382,27 +2010,6 @@ "lint": "clippy::match_same_arms", "path": "src/sse/session.rs" }, - { - "count": 1, - "fingerprint": "f59ccdfbec270a6aa037979049d7b83004be4e8d9687dd7b8ff41e531a055e13", - "item": "crate::delivery_messages", - "lint": "clippy::needless_pass_by_value", - "path": "src/application/consumer/delivery.rs" - }, - { - "count": 1, - "fingerprint": "e324a90671f2476662f4bbd7f2615af43fb6712f3c2a70f31c0f98535c66370a", - "item": "crate::TraceState::begin_operation", - "lint": "clippy::needless_pass_by_value", - "path": "src/dst/trace_store.rs" - }, - { - "count": 1, - "fingerprint": "f7a2a93715136528159aeddbbc6e1b44ca2ce5b150dfbef93d0027d3fe04043c", - "item": "crate::TraceState::begin_operation", - "lint": "clippy::needless_pass_by_value", - "path": "src/dst/trace_store.rs" - }, { "count": 1, "fingerprint": "eae5e7a122aca8fea003f07434179afc796c5deefe04bb2074f92f6776185fe3", @@ -3410,13 +2017,6 @@ "lint": "clippy::needless_pass_by_value", "path": "src/http/read.rs" }, - { - "count": 1, - "fingerprint": "5826a9e9a605f678ae967e60803368f8fa13d4a6bd4e7f8c0bd3fdc7d345ea96", - "item": "crate::RuntimeCaps::with", - "lint": "clippy::needless_pass_by_value", - "path": "src/runtime.rs" - }, { "count": 1, "fingerprint": "6ce788248f78d6875e88116f072d743e3c3a39023ea033fb6506a346554b2596", @@ -3482,94 +2082,6 @@ "metric": 6, "path": "src/application/append/close.rs" }, - { - "count": 1, - "fingerprint": "a004b85b47935b9f8c546e222edc941b08d4784438c1aed2d2755b99ee0b9c5a", - "item": "crate::ConsumerService::authorize", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/application/consumer.rs" - }, - { - "count": 1, - "fingerprint": "c8b385496a7807aef5914035668bdd01377b4a05f5c7e7a93327efaed2e7da4b", - "item": "crate::ConsumerService::sweep_local", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/application/consumer.rs" - }, - { - "count": 1, - "fingerprint": "1bd0e2bc2288549e5b89d45e9af7a2d38ff937974b05ac5dade623715872c625", - "item": "crate::delete", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/application/consumer/deletion.rs" - }, - { - "count": 1, - "fingerprint": "37e4bf3e42dd068c2f5512ee518e42ffe1048dad1f52b1f0aedc90a20c821eaa", - "item": "crate::foreign_segment_drained", - "lint": "clippy::too_many_arguments", - "metric": 7, - "path": "src/application/consumer/delivery.rs" - }, - { - "count": 1, - "fingerprint": "5d14e23eb255b375e0ebc226868542a3010e20ae174f95e5252c6aae52bfaf50", - "item": "crate::relay_queue_cursor", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/application/consumer_remote.rs" - }, - { - "count": 1, - "fingerprint": "c251d3416705b4538bf921d7ea669437310db46d1cd2b80ec16b2bae0af602a7", - "item": "crate::relay_sweep_segment", - "lint": "clippy::too_many_arguments", - "metric": 7, - "path": "src/application/consumer_remote.rs" - }, - { - "count": 1, - "fingerprint": "e5c5b995eea1c55603654eea93a399e9ebd26d09b3ec64ee683040fcd30cc0db", - "item": "crate::create_request_hash", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/application/creation.rs" - }, - { - "count": 1, - "fingerprint": "c34852f94b4bcefb8c68ef6a9101a3b477e52e7957f0cf6128adecf367e7e826", - "item": "crate::fresh_desc", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/application/creation.rs" - }, - { - "count": 1, - "fingerprint": "a3b4e0de159936b506a87bcb53a8a152b0da9fe9ece6bac69796ec68fd3032d4", - "item": "crate::seed", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/application/creation/initialization.rs" - }, - { - "count": 1, - "fingerprint": "d3d0264ce67de9341f1a28b304ed2be7d8238287e18bfc8640a9a9a6bd0a184d", - "item": "crate::ReadService::new", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/application/read.rs" - }, - { - "count": 1, - "fingerprint": "633e7fb955ab614ef74c7bf785b7643205da432351717f8bae73e651a48be2da", - "item": "crate::absorption_race", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/application/read.rs" - }, { "count": 1, "fingerprint": "f3753b732c6e33c16383d7a6e0abbcf37ead1486eb14debb4717d08ce09c6379", @@ -3610,14 +2122,6 @@ "metric": 7, "path": "src/application/read_scan.rs" }, - { - "count": 1, - "fingerprint": "74b37b2c10cb2b365cec70d2486b29b4bdad3a99a730d1e2170c7cf876734205", - "item": "crate::spawn_refresher", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/auth_feed.rs" - }, { "count": 1, "fingerprint": "d78673e2697852400b3478461536185bbbd433f88d3c03a5540bc44073fc36d1", @@ -3626,62 +2130,6 @@ "metric": 6, "path": "src/crypto/decrypt.rs" }, - { - "count": 1, - "fingerprint": "ce371c8a7f3ddb11e926091c9f2cc881492b5e945391e7dd663d82f58ae84aad", - "item": "crate::rig_opener", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/dst/tests/fixture_http.rs" - }, - { - "count": 1, - "fingerprint": "b68e3b0324edff5c87f77d331094194dac5d1b63fa01d0c7c2584a8918ea3d69", - "item": "crate::TraceState::begin_operation", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/dst/trace_store.rs" - }, - { - "count": 1, - "fingerprint": "d4b387794821cd2deaf5f4ca72f65c10a957163bad7c47326ce3491ba7f7460c", - "item": "crate::TraceState::observe", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/dst/trace_store.rs" - }, - { - "count": 1, - "fingerprint": "d91f803c88dc8b85411a4e19588804f57e1008b361be7f5246671d7d35e81991", - "item": "crate::append", - "lint": "clippy::too_many_arguments", - "metric": 7, - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "aee9a869815ed9cc170600c98c68286c14dba9c0b1a78ba74e3b3cecb827dfc1", - "item": "crate::append_typed", - "lint": "clippy::too_many_arguments", - "metric": 7, - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "ec5f2c3682ac92fe533acf9d70f8f4e68bdec398c2f20537d0e791110bb63439", - "item": "crate::stream_entry", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "8b41feb23e23789f0fb59a560c5b3036de8dd164e2d4c8abb42fae0f2ae6ce83", - "item": "crate::stream_entry_inner", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/http.rs" - }, { "count": 1, "fingerprint": "209ee98571e181413577a7463904025dcc74de5c44bbee5c9a7003af66df911b", @@ -3754,14 +2202,6 @@ "metric": 7, "path": "src/product.rs" }, - { - "count": 1, - "fingerprint": "68829ee93b496db0d6c936a103ec07e54c3184c0ca0a86e925d6399af138d64b", - "item": "crate::QuotaRegistry::admit_append", - "lint": "clippy::too_many_arguments", - "metric": 6, - "path": "src/quota.rs" - }, { "count": 1, "fingerprint": "1c8e09a8608e3cec2e627b5a07348e803c3817db03602ce159ae69944f203682", @@ -3818,134 +2258,6 @@ "metric": 110, "path": "src/application/append/close.rs" }, - { - "count": 1, - "fingerprint": "eb9d5827b97abad3e0eecebc477d7999bdd1d8b2bcc6971401d60f868945c795", - "item": "crate::put", - "lint": "clippy::too_many_lines", - "metric": 143, - "path": "src/application/consumer.rs" - }, - { - "count": 1, - "fingerprint": "1c6913ca428c333ece9624cbccda5a9292d396656b0555350676dfc6b0bcbbfc", - "item": "crate::delete", - "lint": "clippy::too_many_lines", - "metric": 102, - "path": "src/application/consumer/deletion.rs" - }, - { - "count": 1, - "fingerprint": "68c3bbc636e54eb0d7a0b3046b27ba577775c395b0459146a40526a24538b0cb", - "item": "crate::resume_deletion", - "lint": "clippy::too_many_lines", - "metric": 108, - "path": "src/application/consumer/deletion.rs" - }, - { - "count": 1, - "fingerprint": "b02eeaa06ec37e4467a96fc72aeeab3ec46c2ecd6a56fa6a5bcef0293a22d1cd", - "item": "crate::dlq_and_settle", - "lint": "clippy::too_many_lines", - "metric": 117, - "path": "src/application/consumer/delivery.rs" - }, - { - "count": 1, - "fingerprint": "eff63a2b95e15d539627c196b8898f6818f6839e32a01634a269f0b325d75de7", - "item": "crate::pull", - "lint": "clippy::too_many_lines", - "metric": 176, - "path": "src/application/consumer/delivery.rs" - }, - { - "count": 1, - "fingerprint": "ab52472a99cb01a7e0cd3de1de4eb79d1eacb8b64dae9e0a31242cc7880e866b", - "item": "crate::settle", - "lint": "clippy::too_many_lines", - "metric": 169, - "path": "src/application/consumer/delivery.rs" - }, - { - "count": 1, - "fingerprint": "50b05bc1d369ffae99037c8e2c349c80aaf4faab5d9b90920d3425b83f476bb5", - "item": "crate::install", - "lint": "clippy::too_many_lines", - "metric": 133, - "path": "src/application/creation/anchor.rs" - }, - { - "count": 1, - "fingerprint": "fa83d718a1c91c2a37610d3f40cc61e45ee106ef5dff6386f84f5d31634d3d57", - "item": "crate::resolve", - "lint": "clippy::too_many_lines", - "metric": 133, - "path": "src/application/creation/claim.rs" - }, - { - "count": 1, - "fingerprint": "c89b878a58fc7d64767230e53a479b9cf1fdb06003587aa0fa72cb610e16e079", - "item": "crate::delete_lifecycle", - "lint": "clippy::too_many_lines", - "metric": 120, - "path": "src/application/creation/deletion.rs" - }, - { - "count": 1, - "fingerprint": "9db6f5b359c24116ab99b69948a73662f8fcf683641e2dba09724364eadfea29", - "item": "crate::release_fork_ref", - "lint": "clippy::too_many_lines", - "metric": 108, - "path": "src/application/creation/deletion.rs" - }, - { - "count": 1, - "fingerprint": "1dac42c2def9beea11c272d9d65832db0638480e73b5ee8251b9a709ac859587", - "item": "crate::prepare", - "lint": "clippy::too_many_lines", - "metric": 124, - "path": "src/application/creation/fork.rs" - }, - { - "count": 1, - "fingerprint": "40b27f4264bc1f246e8ab117e877350614161c92de1552ba9f8500835720186d", - "item": "crate::validate_boundary", - "lint": "clippy::too_many_lines", - "metric": 110, - "path": "src/application/creation/fork.rs" - }, - { - "count": 1, - "fingerprint": "daeb36d3e3a8cc7674ea6e88b0ead58f9655b44576f270ff4e29b2903df33678", - "item": "crate::seed", - "lint": "clippy::too_many_lines", - "metric": 135, - "path": "src/application/creation/initialization.rs" - }, - { - "count": 1, - "fingerprint": "6d05999b63302ffaf9b27bc05561ad0b8d53ad922a918f1c2baa9c4ce37a9085", - "item": "crate::CreationService::create_product", - "lint": "clippy::too_many_lines", - "metric": 117, - "path": "src/application/creation/product.rs" - }, - { - "count": 1, - "fingerprint": "80c2fab589cc4b4bbae6c48312d3d72379194aa5681188357aa625561bc03190", - "item": "crate::execute_segment", - "lint": "clippy::too_many_lines", - "metric": 143, - "path": "src/application/read.rs" - }, - { - "count": 1, - "fingerprint": "356b6413e1a23f83718ecfe5cbb250a77811980fc145f8ac12fc71c175f4619b", - "item": "crate::Fp::site", - "lint": "clippy::too_many_lines", - "metric": 101, - "path": "src/failpoints.rs" - }, { "count": 1, "fingerprint": "12a18c2763841ff3cfdc9ff1429be22eb1557191d507e7d805aae69c3b8ab3aa", @@ -3962,54 +2274,6 @@ "metric": 123, "path": "src/fleet/repository/document_tests.rs" }, - { - "count": 1, - "fingerprint": "64ca907aa6f5007d541a9618d0c501e1924d6308d617e5562b56ff0fab1d68b1", - "item": "crate::active_absorber_cancel", - "lint": "clippy::too_many_lines", - "metric": 179, - "path": "src/history/controller_tests.rs" - }, - { - "count": 1, - "fingerprint": "c73584523522a3762b0bcdd1dfd03bdea4d1afce1bb1c36bb3fd847421c42a62", - "item": "crate::append_typed", - "lint": "clippy::too_many_lines", - "metric": 113, - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "0506dc0452c49b1a75fee271fb31bff55d2857207bd91263fe8d5bc1fdf2ba5b", - "item": "crate::create_stream", - "lint": "clippy::too_many_lines", - "metric": 134, - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "1a436b82ad75d7cc71b80b8e367b9c8d234bfa177f37413110f5d09d0b70c35b", - "item": "crate::debug_load", - "lint": "clippy::too_many_lines", - "metric": 168, - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "6d5b648bba28903b0a7527ee45f4e15007df9bf5e6964e650e32c26a588f2ee0", - "item": "crate::router", - "lint": "clippy::too_many_lines", - "metric": 241, - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "de0b28e5c9bebf450e97415553cd1ffde84f0bdb3af844b5db13e3299bff3c11", - "item": "crate::stream_entry_inner", - "lint": "clippy::too_many_lines", - "metric": 110, - "path": "src/http.rs" - }, { "count": 1, "fingerprint": "bd24c3550d04b1b71ea06978774f17a053727aecbe8096bb293c1663e7f41866", @@ -4186,27 +2450,6 @@ "metric": 128, "path": "src/sse/source.rs" }, - { - "count": 1, - "fingerprint": "dcb603471750f1dc05803d2425a4d7fd7dc30846681e686f97de24e2347e9a6b", - "item": "crate::reg::M", - "lint": "clippy::type_complexity", - "path": "src/failpoints.rs" - }, - { - "count": 1, - "fingerprint": "954fe0bf97703429fbbb66fe42a4d63ccdad7d0f630fff9765de39c4fc0ca96f", - "item": "crate::ShardEngine::consumer_fences", - "lint": "clippy::type_complexity", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "0195cf8cda38ccdc613c4ab40185bf5336716c6a06b785479bd5f337f7267bd5", - "item": "crate::StreamState::producers", - "lint": "clippy::type_complexity", - "path": "src/shard.rs" - }, { "count": 1, "fingerprint": "37b78d3e5d23f300900d23cd91e78b2ab0f3f41a1392b98fce0d8fd9231dc44d", @@ -4221,13 +2464,6 @@ "lint": "clippy::type_complexity", "path": "src/sse/source.rs" }, - { - "count": 1, - "fingerprint": "4f84b1f903baebf6f998640334f0b737e373d4c1c9e09b84f54a8614ce03e189", - "item": "crate::livefeed_remote_sealed_predecessor_streams_through_owner", - "lint": "clippy::unnecessary_to_owned", - "path": "src/dst/tests/livefeed_history.rs" - }, { "count": 1, "fingerprint": "f3fd81128a33528e5268d68bb42f43a116a7166d7780ad3948147a3e984b6ca4", @@ -4235,13 +2471,6 @@ "lint": "clippy::unnecessary_wraps", "path": "src/registry.rs" }, - { - "count": 1, - "fingerprint": "774188d62e2c1dfab6c5ff389c7639b157671e13df6de05c1134d17ca665ec21", - "item": "crate::mix", - "lint": "clippy::unusual_byte_groupings", - "path": "src/dst/fault_store.rs" - }, { "count": 1, "fingerprint": "ff7731d0845c383fbf80de4bd214d4197d2e99952e8a1d74d8aeda228bb22727", @@ -4256,41 +2485,6 @@ "lint": "clippy::unwrap_used", "path": "src/application/append/contract.rs" }, - { - "count": 1, - "fingerprint": "e0390ed8d951a6dce9f7f6ee0777469c41c75af09930b2e22cf955c848755b9f", - "item": "crate::ConsumerService::queue_position", - "lint": "clippy::unwrap_used", - "path": "src/application/consumer.rs" - }, - { - "count": 1, - "fingerprint": "16ab9594855c427f4a65dfe38ea3629bd53a6ee4391a6dd8362f320c722b0551", - "item": "crate::validate_boundary", - "lint": "clippy::unwrap_used", - "path": "src/application/creation/fork.rs" - }, - { - "count": 1, - "fingerprint": "34a919c9b9e5cf280c9bf56bd2747b29062a42d307d5809f4cd67691660b3b6b", - "item": "crate::seed", - "lint": "clippy::unwrap_used", - "path": "src/application/creation/initialization.rs" - }, - { - "count": 1, - "fingerprint": "64ffd9e77598203d0f3ca8a1fff6754fe9c94d177853345b9d1a9f76c754ffbe", - "item": "crate::execute_segment", - "lint": "clippy::unwrap_used", - "path": "src/application/read.rs" - }, - { - "count": 1, - "fingerprint": "67efc16f663ea2fb945a6db2e5f6759e664f104e222bf9fdecc630b8fcbadb51", - "item": "crate::read_stitched", - "lint": "clippy::unwrap_used", - "path": "src/application/read.rs" - }, { "count": 1, "fingerprint": "f2214df93dd43613446ec659a2de14e255cf22a69cb8c3a7f2a067986c2b570f", @@ -4298,41 +2492,6 @@ "lint": "clippy::unwrap_used", "path": "src/application/read_scan.rs" }, - { - "count": 1, - "fingerprint": "6014b1aa6add876df5db2da816491f9050257ec26f0e50d0c4fe0687ad9ef730", - "item": "crate:: as Drop>::drop", - "lint": "clippy::unwrap_used", - "path": "src/audit.rs" - }, - { - "count": 1, - "fingerprint": "9375a6112a76aabe637ef8b03563c63dd562d03156db08619f4980b6acad2452", - "item": "crate::PendingAudit < 'a >::take", - "lint": "clippy::unwrap_used", - "path": "src/audit.rs" - }, - { - "count": 1, - "fingerprint": "dc39e1a52100a6faeac2f8acd2d170bdae29f475b95273a40e6893ccc15330b9", - "item": "crate::observe_denial", - "lint": "clippy::unwrap_used", - "path": "src/audit.rs" - }, - { - "count": 1, - "fingerprint": "cc28b723168aad66f2e97760c083e4524a0958416041699da43b583b9249713a", - "item": "crate::latency", - "lint": "clippy::unwrap_used", - "path": "src/bin/verify.rs" - }, - { - "count": 1, - "fingerprint": "fded73500a08aae4e9eeda1645dfc83b6064d6dd544c5c25b969b3d496d5a0e9", - "item": "crate::latency", - "lint": "clippy::unwrap_used", - "path": "src/bin/verify.rs" - }, { "count": 1, "fingerprint": "730010c152b1433ddceb819a81576c406ec6290c180b78d381ba4d18eaefd040", @@ -4354,48 +2513,6 @@ "lint": "clippy::unwrap_used", "path": "src/fleet.rs" }, - { - "count": 1, - "fingerprint": "4cf780f4e1cc935f33696f5f0a6283d0ae302c87f4fea11186d6929c637b6658", - "item": "crate::create_stream", - "lint": "clippy::unwrap_used", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "acf0f3b5ba967777dcaf84e940e2e3464ed08e8261912008e50f347ce12ba711", - "item": "crate::debug_timings", - "lint": "clippy::unwrap_used", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "48f234ed051e9205103d9edb7163facd4e3b664160e4c6f31b537fa01defcc6f", - "item": "crate::product_preflight", - "lint": "clippy::unwrap_used", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "898263ca7b8fdb17b82ce0c3f89aa35043e24d9dfa7a8689a6796971923fb3f9", - "item": "crate::render_append", - "lint": "clippy::unwrap_used", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "c5380cec73ff228fb1af3d354620226b45c89f43c608dc4f310b67e6f4dbbc98", - "item": "crate::render_append", - "lint": "clippy::unwrap_used", - "path": "src/http.rs" - }, - { - "count": 1, - "fingerprint": "ed4d5397f56294f3fe334622e6b1fefd7377b52949d1e89110247b85cb52ef8c", - "item": "crate::stream_entry_inner", - "lint": "clippy::unwrap_used", - "path": "src/http.rs" - }, { "count": 1, "fingerprint": "d201efd4aca1686ba03567dafaa11b393689eb3470a4ed5b8a2e5c86c08d9043", @@ -4732,69 +2849,6 @@ "lint": "clippy::unwrap_used", "path": "src/sse/source.rs" }, - { - "count": 1, - "fingerprint": "20c3acc01822fdb78e771b898502ed53a4206d8bb8db2b34fc65d4d87163276d", - "item": "crate::TaskSupervisor::incomplete_shutdown_failure", - "lint": "clippy::unwrap_used", - "path": "src/tasks/shutdown.rs" - }, - { - "count": 1, - "fingerprint": "30d712b2122b4fdd8fa362a2b13f07760ec21ed80f928b8815a3876baf9b970e", - "item": "crate::TaskSupervisor::launch_shutdown", - "lint": "clippy::unwrap_used", - "path": "src/tasks/shutdown.rs" - }, - { - "count": 1, - "fingerprint": "60a71a130702a263dcad0e099f43d7e96f5776f921eb44db9d1dca33fc9f6a6b", - "item": "crate::TaskSupervisor::launch_shutdown", - "lint": "clippy::unwrap_used", - "path": "src/tasks/shutdown.rs" - }, - { - "count": 1, - "fingerprint": "b5bdd9f0c8a87be648b57157e2b40459ec06e20daa6719790c0abd11fd068ab0", - "item": "crate::TaskSupervisor::launch_shutdown", - "lint": "clippy::unwrap_used", - "path": "src/tasks/shutdown.rs" - }, - { - "count": 1, - "fingerprint": "ab5f6ab54d91cc0ea9ec9ab1ac608bb6bdf6857e84d599ebcc8c4a9374924207", - "item": "crate::TaskSupervisor::observe_shutdown", - "lint": "clippy::unwrap_used", - "path": "src/tasks/shutdown.rs" - }, - { - "count": 1, - "fingerprint": "b4c250e6670d01ae4792c586b20aef709d7b0665efc273d220a4caa8fd6b9cb3", - "item": "crate::TouchJournal::flush_bucket", - "lint": "clippy::unwrap_used", - "path": "src/touch.rs" - }, - { - "count": 1, - "fingerprint": "a7fae912a54e5fc1a2fd6fe904321b47d2a27fc4b93605dc0fd42722faea1edb", - "item": "crate::TouchJournal::ingest", - "lint": "clippy::unwrap_used", - "path": "src/touch.rs" - }, - { - "count": 1, - "fingerprint": "2c355b4eacb4c6bb50690d1dac2e09669bbed828167f3c16ff07a2a00c2024c9", - "item": "crate::TouchRegistry::close_shard", - "lint": "clippy::unwrap_used", - "path": "src/touch.rs" - }, - { - "count": 1, - "fingerprint": "79bf708a68180b65b78fb4b5de7c69048961f330cf30f057b3f782cac8932941", - "item": "crate::TouchRegistry::journal", - "lint": "clippy::unwrap_used", - "path": "src/touch.rs" - }, { "count": 1, "fingerprint": "2047871277f8d0a05956c4e1cb344f06202a24b6f24cdfa44c02003dd37efc98", @@ -4830,13 +2884,6 @@ "lint": "unreachable_pub", "path": "src/application/read_keys.rs" }, - { - "count": 1, - "fingerprint": "4e88cb6514e617e1c971f3f310f8fa373479b64549b29331bfbbc294b88569cb", - "item": "crate::spawn_refresher", - "lint": "unreachable_pub", - "path": "src/auth_feed.rs" - }, { "count": 1, "fingerprint": "86b45b21b38060107772bcbbe6d6d8321bc97e6f55ace1e028bc4c9933dde421", @@ -4844,20 +2891,6 @@ "lint": "unreachable_pub", "path": "src/bootstrap.rs" }, - { - "count": 1, - "fingerprint": "6ca31a8ab2daa6134a18669c50ca283247b46bcd9efc9a73d74cbc16d2f0fa5e", - "item": "crate::TraceStore::with_options", - "lint": "unreachable_pub", - "path": "src/dst/trace_store.rs" - }, - { - "count": 1, - "fingerprint": "9554e7d8e300567e64cd59df2571adaccca65e294d297e0dc3ae8116a5af864a", - "item": "crate::Fp::site", - "lint": "unreachable_pub", - "path": "src/failpoints.rs" - }, { "count": 1, "fingerprint": "ffa2489531b69a28379bccc8278747181e096c43162692ea2da4e8c3a1d1cf9c", @@ -4872,13 +2905,6 @@ "lint": "unreachable_pub", "path": "src/fleet.rs" }, - { - "count": 1, - "fingerprint": "d91fa00511a45a2bbe81098aaedd53117257c5fdaf21b07c035c38750757e1a4", - "item": "crate::router", - "lint": "unreachable_pub", - "path": "src/http.rs" - }, { "count": 1, "fingerprint": "29c0649b53152c989e6cce54f8ff7429712f981515f1a7f8a0bb7cf0f81b25b7", @@ -4907,13 +2933,6 @@ "lint": "unreachable_pub", "path": "src/product.rs" }, - { - "count": 1, - "fingerprint": "6487b3fbddd2c3343d03313756888a3276394c4cfb7c47863403ff72fd1df099", - "item": "crate::QuotaRegistry::admit_append", - "lint": "unreachable_pub", - "path": "src/quota.rs" - }, { "count": 1, "fingerprint": "f6269145e7da12ea84288ac84f204a1635a1bc7f8391b9117d01097252cfd7d8", @@ -4942,48 +2961,6 @@ "lint": "unreachable_pub", "path": "src/registry.rs" }, - { - "count": 1, - "fingerprint": "267171222ab33983f7c4565129274bd6a6b36290c6126ea4b8a6d5f816e484ef", - "item": "crate::RuntimeCaps::with", - "lint": "unreachable_pub", - "path": "src/runtime.rs" - }, - { - "count": 1, - "fingerprint": "4a034c08934265d15e51ea98686e48bde353a689522b69fa1ac6c093effa7883", - "item": "crate::CommitOp", - "lint": "unreachable_pub", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "d3d4ae837809f9d2db83c3b0610dbea13f28ed48e7611faa7cd32c9756ea4854", - "item": "crate::ShardEngine::count_consumer_state_rows", - "lint": "unreachable_pub", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "6e8ac2ee338eadf94f66a8a87766358e5aa71e2485d28c70c5d054fbd51190cc", - "item": "crate::ShardEngine::durable_absorbed", - "lint": "unreachable_pub", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "0b12a5822732bd67b0233d1a172da4e4a6b9a4c483390848392588e6d8096a10", - "item": "crate::ShardEngine::durable_consumer_fence", - "lint": "unreachable_pub", - "path": "src/shard.rs" - }, - { - "count": 1, - "fingerprint": "23e2a6936a2ef97a5eb1771227eedfd87c961c80bea98623b596fc1be2fc3f5b", - "item": "crate::ShardEngine::submit_billing_close", - "lint": "unreachable_pub", - "path": "src/shard.rs" - }, { "count": 1, "fingerprint": "2bc421be6e2d658991637dd800b64a9bde9c63bd6e753c9d4336b145d5d1add3", diff --git a/docs/quality/owners.json b/docs/quality/owners.json index a9f80e5f..24ad7eaa 100644 --- a/docs/quality/owners.json +++ b/docs/quality/owners.json @@ -1815,6 +1815,126 @@ "path": "src/postings.rs", "reason": "Postings codec and span planner tests; compile beside the same private codec in the server, fuzz and invariant harness crates so the owner stays within the file-size limit; no copied codec or public test API.", "syntax": "path = \"postings/tests.rs\"" + }, + { + "category": "effect", + "count": 1, + "owner": "crate::TouchJournal::start", + "path": "src/touch.rs", + "reason": "Per-stream touch flusher started under the journal map lock and ended by the journal's own close; no supervisor is reachable at creation and the task owns nothing beyond its journal.", + "syntax": "tokio::spawn" + }, + { + "category": "effect", + "count": 1, + "owner": "crate::TaskSupervisor::launch_shutdown", + "path": "src/tasks/shutdown.rs", + "reason": "The one shutdown driver: it joins the supervised set and publishes the report every observer waits on, so it cannot itself be supervised.", + "syntax": "tokio::spawn" + }, + { + "category": "effect", + "count": 1, + "owner": "crate::main", + "path": "src/main.rs", + "reason": "Process entry reads the Tokio worker floor once before the runtime exists; no service configuration or credentials are inferred.", + "syntax": "std::env::var" + }, + { + "category": "global", + "count": 1, + "owner": "crate::reg::M", + "path": "src/failpoints.rs", + "reason": "The DST failpoint registry: one process-wide lazily initialised map keyed by point and stream name, armed and read only by the DST program; a per-runtime copy would let a parked point outlive the runtime that armed it.", + "syntax": "std :: sync :: OnceLock < Registry >" + }, + { + "category": "effect", + "count": 1, + "owner": "crate::reset_refuses_while_in_flight", + "path": "src/dst/trace_store_tests/streams.rs", + "reason": "Trace-store regression leaks one abandoned list stream on purpose so its lifetime guard never runs and reset must refuse; nothing else escapes the test.", + "syntax": "std::mem::forget" + }, + { + "category": "unresolved-glob", + "count": 1, + "owner": "crate", + "path": "src/http/test_support.rs", + "reason": "HTTP fixture adapters import their enclosing production owner; the compiler resolves the parent exports and the adapters only forward scenario calls.", + "syntax": "compiler-resolved import; syntax cannot infer exports" + }, + { + "category": "unresolved-glob", + "count": 1, + "owner": "crate", + "path": "src/shard/test_support.rs", + "reason": "Shard test helpers import their enclosing production owner; the compiler resolves the parent exports and the helpers only encode fixtures and arm scan faults.", + "syntax": "compiler-resolved import; syntax cannot infer exports" + }, + { + "category": "global", + "count": 1, + "owner": "crate::dirty_scan_faults::M", + "path": "src/shard/test_support.rs", + "reason": "Test-only fault injection for the durable dirty-index scan, keyed by shard prefix so concurrent tests cannot poison each other; nothing outside cfg(test) reads it.", + "syntax": "std :: sync :: OnceLock < Mutex < HashMap < String , u32 > > >" + }, + { + "category": "global", + "count": 1, + "owner": "crate::BILLING_CLOCK_OVERRIDE", + "path": "src/billing/test_clock.rs", + "reason": "Test-only billing clock override the month-sensitive tests inject; nothing outside cfg(test) reads it.", + "syntax": "std :: sync :: atomic :: AtomicI64" + }, + { + "category": "global", + "count": 1, + "owner": "crate::billing_clock_lock::L", + "path": "src/billing/test_clock.rs", + "reason": "Test-only lock serialising the month-sensitive tests around the injected clock; nothing outside cfg(test) reads it.", + "syntax": "std :: sync :: OnceLock < tokio :: sync :: RwLock < () > >" + }, + { + "category": "effect", + "count": 1, + "owner": "crate::serve_h1", + "path": "src/http.rs", + "reason": "Each accepted HTTP/1 connection is served by a task the listener's own JoinSet owns and joins at shutdown.", + "syntax": "tokio::task::JoinSet::spawn" + }, + { + "category": "effect", + "count": 1, + "owner": "crate::router", + "path": "src/http.rs", + "reason": "The debug abort route spawns one bare task that sleeps briefly and aborts the process; nothing outlives it.", + "syntax": "tokio::spawn" + }, + { + "category": "by-path-module", + "count": 1, + "owner": "crate::test_support", + "path": "src/http.rs", + "reason": "HTTP fixture adapters; declared by path like the surface's read adapter so the file name says what it holds; no copied surface or public test API.", + "syntax": "path = \"http/test_support.rs\"" + }, + { + "category": "by-path-module", + "count": 1, + "owner": "crate::tests", + "path": "src/http.rs", + "reason": "HTTP surface unit tests; declared by path like the surface's read adapter; no copied surface or public test API.", + "syntax": "path = \"http/tests.rs\"" + }, + { + "category": "unresolved-glob", + "count": 1, + "owner": "crate", + "path": "src/http/tests.rs", + "reason": "HTTP surface test module imports its enclosing production owner; the compiler resolves the parent exports and the fixtures pin the interval cursor.", + "syntax": "compiler-resolved import; syntax cannot infer exports" } ] } diff --git a/docs/quality/source-allowances.json b/docs/quality/source-allowances.json index 936f6d92..560e7655 100644 --- a/docs/quality/source-allowances.json +++ b/docs/quality/source-allowances.json @@ -1554,62 +1554,6 @@ "path": "bench/awsbench/src/main.rs", "syntax": "allow (unreachable_code)" }, - { - "category": "exception", - "count": 1, - "owner": "crate::dlq_and_settle", - "path": "src/application/consumer/delivery.rs", - "syntax": "allow (clippy :: too_many_arguments)" - }, - { - "category": "exception", - "count": 1, - "owner": "crate::ReadPlan < 'a >::segment", - "path": "src/application/read.rs", - "syntax": "allow (clippy :: too_many_arguments)" - }, - { - "category": "exception", - "count": 1, - "owner": "crate::TEST_ASSERT_KEYED_DENSE", - "path": "src/application/read.rs", - "syntax": "allow (clippy :: too_many_arguments)" - }, - { - "category": "exception", - "count": 1, - "owner": "crate::read_merged", - "path": "src/application/read.rs", - "syntax": "allow (clippy :: too_many_arguments)" - }, - { - "category": "exception", - "count": 1, - "owner": "crate::read_stitched", - "path": "src/application/read.rs", - "syntax": "allow (clippy :: too_many_arguments)" - }, - { - "category": "exception", - "count": 1, - "owner": "crate::WALK_CLOSE_SUBMITS_SNAPSHOT", - "path": "src/dst/tests/runtime_sweep.rs", - "syntax": "allow (non_snake_case)" - }, - { - "category": "exception", - "count": 1, - "owner": "crate::TraceState::event", - "path": "src/dst/trace_store.rs", - "syntax": "allow (clippy :: too_many_arguments)" - }, - { - "category": "exception", - "count": 1, - "owner": "crate::read", - "path": "src/history/canonical_span.rs", - "syntax": "allow (clippy :: too_many_arguments)" - }, { "category": "exception", "count": 1, @@ -1624,27 +1568,6 @@ "path": "src/http.rs", "syntax": "allow (clippy :: result_large_err , reason = \"transport boundary returns Axum wire response directly; application errors stay compact\")" }, - { - "category": "exception", - "count": 1, - "owner": "crate::ReadParams::sig", - "path": "src/http.rs", - "syntax": "allow (dead_code)" - }, - { - "category": "exception", - "count": 1, - "owner": "crate::raise_nofile", - "path": "src/http.rs", - "syntax": "allow (clippy :: too_many_arguments)" - }, - { - "category": "exception", - "count": 1, - "owner": "crate::sse_response", - "path": "src/http.rs", - "syntax": "allow (clippy :: too_many_arguments)" - }, { "category": "exception", "count": 1, @@ -1729,13 +1652,6 @@ "path": "src/product.rs", "syntax": "allow (clippy :: result_large_err , reason = \"transport boundary returns Axum wire response directly; application errors stay compact\")" }, - { - "category": "exception", - "count": 1, - "owner": "crate", - "path": "src/project_policy.rs", - "syntax": "allow (dead_code)" - }, { "category": "exception", "count": 1, @@ -1890,13 +1806,6 @@ "path": "src/billing.rs", "syntax": "std :: sync :: atomic :: AtomicU64" }, - { - "category": "global", - "count": 1, - "owner": "crate::BILLING_CLOCK_OVERRIDE", - "path": "src/billing.rs", - "syntax": "std :: sync :: atomic :: AtomicI64" - }, { "category": "global", "count": 1, @@ -1925,13 +1834,6 @@ "path": "src/billing.rs", "syntax": "std :: sync :: atomic :: AtomicU64" }, - { - "category": "global", - "count": 1, - "owner": "crate::billing_clock_lock::L", - "path": "src/billing.rs", - "syntax": "std :: sync :: OnceLock < tokio :: sync :: RwLock < () > >" - }, { "category": "global", "count": 1, @@ -1988,13 +1890,6 @@ "path": "src/failpoints.rs", "syntax": "std :: sync :: OnceLock < tokio :: sync :: Notify >" }, - { - "category": "global", - "count": 1, - "owner": "crate::reg::M", - "path": "src/failpoints.rs", - "syntax": "std :: sync :: OnceLock < Mutex < HashMap < (Fp , String) , FpState > > >" - }, { "category": "global", "count": 1, @@ -2247,13 +2142,6 @@ "path": "src/shard.rs", "syntax": "std :: sync :: OnceLock < Mutex < HashMap < String , () > > >" }, - { - "category": "global", - "count": 1, - "owner": "crate::dirty_scan_faults::M", - "path": "src/shard.rs", - "syntax": "std :: sync :: OnceLock < Mutex < HashMap < String , u32 > > >" - }, { "category": "global", "count": 1, @@ -3864,13 +3752,6 @@ "path": "src/history/postings_validation_tests.rs", "syntax": "compiler-resolved import; syntax cannot infer exports" }, - { - "category": "unresolved-glob", - "count": 1, - "owner": "crate::tests", - "path": "src/http.rs", - "syntax": "compiler-resolved import; syntax cannot infer exports" - }, { "category": "unresolved-glob", "count": 1, diff --git a/docs/refactor/test-inventory.json b/docs/refactor/test-inventory.json index f55f8539..9298ee46 100644 --- a/docs/refactor/test-inventory.json +++ b/docs/refactor/test-inventory.json @@ -2160,7 +2160,7 @@ "attributes": [ "#[tokio::test(flavor = \"current_thread\", start_paused = true)]" ], - "function_sha256": "ebd8cf2db4bf1a26a03716d8da99e98671cb514d9f8298a69702f50987631166", + "function_sha256": "c19966727f38f37212c94748fdbc1737679222c79fa8a2810079c4740890a7c9", "mechanisms": [ "STORE_LATENCY" ], @@ -2811,7 +2811,7 @@ "attributes": [ "#[tokio::test(flavor = \"multi_thread\", worker_threads = 4)]" ], - "function_sha256": "6a83c50969fe771c13aa8f46f7fbbd163ebcf3a12191a9a8c96cd5797ede4a0e", + "function_sha256": "b81632e4d007350aa2784b7a0aa34f3358a943f4102aa5d84e63220658d12f78", "mechanisms": [], "configuration": [], "file": "src/dst/tests/livefeed_history.rs", @@ -4743,18 +4743,6 @@ "file": "src/dst/trace_store_tests/streams.rs", "scenarios": [] }, - { - "name": "reset_refuses_while_in_flight", - "attributes": [ - "#[tokio::test]", - "#[should_panic(expected = \"while operations are active\")]" - ], - "function_sha256": "8dbca7724f55e7f2f2d9c3a7fdad5701e038a944e2bdd39d259839d152c0ce70", - "mechanisms": [], - "configuration": [], - "file": "src/dst/trace_store_tests/streams.rs", - "scenarios": [] - }, { "name": "restart_invalidates_process_local_touch_cursors", "attributes": [ @@ -5535,7 +5523,7 @@ "attributes": [ "#[tokio::test(flavor = \"multi_thread\", worker_threads = 4)]" ], - "function_sha256": "a546f8f58f27f9b678a3b98253c10f7b695e3f7f36ed75f9e2772ae8ee0d0007", + "function_sha256": "db24635d68ea5f36ee93262da9a9e3df35767a2f5e3245972145871d0dfecfad", "mechanisms": [], "configuration": [ "let store = FaultStore::uniform(inner.clone(), 103, FaultPlan::new(0, 0, 0));" diff --git a/examples/readertest.rs b/examples/readertest.rs index bd05a460..eaaf4bcc 100644 --- a/examples/readertest.rs +++ b/examples/readertest.rs @@ -52,6 +52,10 @@ impl slatedb::BlockTransformer for TestTransformer { clippy::disallowed_methods, reason = "main; the example reads its one path argument from the process environment; routing it through the server's configuration would couple an example to the runtime" )] +#[expect( + clippy::excessive_nesting, + reason = "main; the example nests the scan loop inside the per-range task it times; flattening it would separate the count from the range it measures" +)] async fn main() -> anyhow::Result<()> { let path = std::env::args() .nth(1) diff --git a/scripts/quality/mutations.sh b/scripts/quality/mutations.sh index 245216d4..7a3fcc34 100755 --- a/scripts/quality/mutations.sh +++ b/scripts/quality/mutations.sh @@ -16,7 +16,7 @@ BASE=$(python3 -c 'import json,sys; print(json.load(open(sys.argv[1]))["merge_ba git diff --no-ext-diff --binary --src-prefix="a/$PREFIX" --dst-prefix="b/$PREFIX" "$BASE" -- > "$QUALITY_MUTANTS_OUT/harness-pr.diff" TOTAL=0 REGISTERED=(src/bin/pilot/benchmark.rs src/bin/pilot/benchmark/config.rs src/bin/pilot/benchmark/window.rs src/bin/pilot/generator.rs src/bin/pilot/generator/membership.rs) -for owner in postings_codec postings batch retained quota cursors queue rollup_allocation rollup_storage tasks touch read_accumulator read_spool shard_directory history_partition ops scaler postings_cache sharddir crypto tail_ring shard bootstrap read_request http_read queue_cleanup transaction_append record; do +for owner in postings_codec postings batch retained quota cursors queue rollup_allocation rollup_storage tasks touch read_accumulator read_spool shard_directory history_partition ops scaler postings_cache sharddir crypto tail_ring shard bootstrap read_request http_read queue_cleanup transaction_append record tasks_shutdown runtime runtime_telemetry product_cursor quota_registry http; do case "$owner" in postings_codec) file=src/postings.rs; filter=postings:: ;; postings) file=src/postings/validated.rs; filter=postings:: ;; @@ -41,6 +41,12 @@ for owner in postings_codec postings batch retained quota cursors queue rollup_a queue_cleanup) file=src/shard/transaction/queue/cleanup.rs; filter=shard:: ;; transaction_append) file=src/shard/transaction/append.rs; filter=shard:: ;; record) file=src/shard/record.rs; filter=shard:: ;; + http) file=src/http.rs; filter=http:: ;; + tasks_shutdown) file=src/tasks/shutdown.rs; filter=tasks:: ;; + runtime) file=src/runtime.rs; filter=runtime:: ;; + runtime_telemetry) file=src/runtime/telemetry.rs; filter=runtime:: ;; + product_cursor) file=src/product_cursor.rs; filter=product_cursor:: ;; + quota_registry) file=src/quota.rs; filter=quota:: ;; postings_cache) file=src/postings_cache.rs; filter=postings_cache:: ;; sharddir) file=src/sharddir.rs; filter=sharddir:: ;; crypto) file=src/crypto.rs; filter=crypto:: ;; @@ -55,7 +61,7 @@ for owner in postings_codec postings batch retained quota cursors queue rollup_a package=streams-quality-invariants mutation_file="$PREFIX$file" mutation_diff="$QUALITY_MUTANTS_OUT/harness-pr.diff" - if [[ "$owner" == tasks || "$owner" == touch || "$owner" == read_accumulator || "$owner" == read_spool || "$owner" == shard_directory || "$owner" == history_partition || "$owner" == ops || "$owner" == scaler || "$owner" == postings_cache || "$owner" == sharddir || "$owner" == crypto || "$owner" == tail_ring || "$owner" == shard || "$owner" == bootstrap || "$owner" == read_request || "$owner" == http_read || "$owner" == queue_cleanup || "$owner" == transaction_append || "$owner" == record ]]; then + if [[ "$owner" == tasks || "$owner" == touch || "$owner" == read_accumulator || "$owner" == read_spool || "$owner" == shard_directory || "$owner" == history_partition || "$owner" == ops || "$owner" == scaler || "$owner" == postings_cache || "$owner" == sharddir || "$owner" == crypto || "$owner" == tail_ring || "$owner" == shard || "$owner" == bootstrap || "$owner" == read_request || "$owner" == http_read || "$owner" == queue_cleanup || "$owner" == transaction_append || "$owner" == record || "$owner" == tasks_shutdown || "$owner" == runtime || "$owner" == runtime_telemetry || "$owner" == product_cursor || "$owner" == quota_registry || "$owner" == http ]]; then # These owners use actual service clocks, task handles and storage types. # Keep their code and tests in the service crate without substitute models. package=streams-slate diff --git a/src/application/consumer.rs b/src/application/consumer.rs index 09c7e2af..4da27524 100644 --- a/src/application/consumer.rs +++ b/src/application/consumer.rs @@ -154,6 +154,10 @@ pub(crate) struct AuthorizedConsumerContext { record: crate::queue::ConsumerRecord, } impl ConsumerService { + #[expect( + clippy::too_many_arguments, + reason = "ConsumerService::authorize; authorization takes the tenant, stream, consumer and credential parts separately as the handler parsed them; a request struct would exist only for this signature" + )] pub(crate) async fn authorize( self: &Arc, sref: &crate::tenant::TenantStreamRef, @@ -439,6 +443,10 @@ async fn load_consumer_record( } } +#[expect( + clippy::too_many_lines, + reason = "put; the consumer put validates the configuration, decides create-versus-update and publishes the record in one conditional-write sequence; splitting it would separate the validation from the write it guards" +)] pub(crate) async fn put( context: AuthorizedStreamContext, doc: ConfigInput, @@ -647,6 +655,10 @@ pub(crate) struct QueuePosition { } /// Internal callers provide the incarnation-bound target only after fleet authorization. impl ConsumerService { + #[expect( + clippy::too_many_arguments, + reason = "ConsumerService::sweep_local; the local sweep takes the descriptor, segment, consumer and generation parts separately as the sweep resolved them; a sweep struct would exist only for this signature" + )] pub(crate) async fn sweep_local( &self, target: InternalTarget, @@ -698,6 +710,10 @@ impl ConsumerService { } } } + #[expect( + clippy::unwrap_used, + reason = "ConsumerService::queue_position; a poisoned stream state may hold a half-advanced durable frontier; recovering it could report a queue position past a length never made durable" + )] pub(crate) async fn queue_position( &self, target: InternalTarget, diff --git a/src/application/consumer/deletion.rs b/src/application/consumer/deletion.rs index 739bbbf0..0713dcd1 100644 --- a/src/application/consumer/deletion.rs +++ b/src/application/consumer/deletion.rs @@ -9,6 +9,14 @@ use crate::application::consumer_remote::relay_sweep_segment; use crate::application::read_remote::InternalTarget; use std::sync::Arc; +#[expect( + clippy::too_many_arguments, + reason = "delete; consumer deletion takes the tenant, stream, consumer, generation and fencing parts separately as the handler resolved them; a delete struct would exist only for this signature" +)] +#[expect( + clippy::too_many_lines, + reason = "delete; the fence, the tombstone and the per-segment cleanup are one deletion whose resumption depends on which step landed; splitting them would separate the steps from the resumption they order" +)] pub(crate) async fn delete( state: Arc, sref: crate::tenant::TenantStreamRef, @@ -160,6 +168,10 @@ pub(crate) async fn delete( }) } +#[expect( + clippy::too_many_lines, + reason = "resume_deletion; resumption replays the per-segment cleanup a fenced deletion left behind in the order the debt records; splitting it would separate the steps from the debt that orders them" +)] async fn resume_deletion( context: AuthorizedDeletionContext, ) -> Result { diff --git a/src/application/consumer/delivery.rs b/src/application/consumer/delivery.rs index 26f27ee6..ba419b92 100644 --- a/src/application/consumer/delivery.rs +++ b/src/application/consumer/delivery.rs @@ -11,6 +11,14 @@ use bytes::Bytes; use serde_json::json; use std::sync::Arc; +#[expect( + clippy::too_many_lines, + reason = "pull; the pull walks the lineage oldest-first and each segment's skip, stop and deliver verdicts depend on the walk so far; splitting it would separate the verdicts from the walk that orders them" +)] +#[expect( + clippy::excessive_nesting, + reason = "pull; the walk nests each foreign segment's drain probe and each sealed segment's cursor check inside the lineage loop; flattening it would separate the skip from the segment it skips" +)] pub(crate) async fn pull( context: AuthorizedConsumerContext, doc: PullInput, @@ -210,6 +218,10 @@ pub(crate) async fn pull( } } +#[expect( + clippy::too_many_arguments, + reason = "foreign_segment_drained; the probe takes the descriptor, segment, consumer, generation, sealed end and owner separately as the walk resolved them; a probe struct would exist only for this signature" +)] async fn foreign_segment_drained( state: &Arc, desc: &StreamDesc, @@ -238,6 +250,7 @@ async fn foreign_segment_drained( /// Encode only leases granted by the committer, with the same key, stream /// epoch, segment and consumer generation used for the durable Receive. +#[derive(Clone, Copy)] struct MessageContext<'a> { desc: &'a StreamDesc, key: &'a crate::crypto::StreamKey, @@ -393,6 +406,10 @@ async fn read_coverage( }) } +#[expect( + clippy::too_many_lines, + reason = "settle; settlement decides the acknowledged, released, dead-lettered and expired outcomes against one durable Receive; splitting it would separate the outcomes from the leases they settle" +)] pub(crate) async fn settle( context: AuthorizedConsumerContext, doc: SettleInput, @@ -573,7 +590,18 @@ pub(crate) async fn settle( } // Preserve the explicit source incarnation and one bounded poisoned segment. -#[allow(clippy::too_many_arguments)] +#[expect( + clippy::too_many_arguments, + reason = "dlq_and_settle; the dead-letter path takes the stream, consumer, key, epoch, identity, route and segment separately as settlement resolved them; a context struct would exist only for this signature" +)] +#[expect( + clippy::too_many_lines, + reason = "dlq_and_settle; the dead-letter appends and the settlement of the poisoned leases are one bounded sequence over the same leases; splitting it would separate the appends from the leases they release" +)] +#[expect( + clippy::expect_used, + reason = "dlq_and_settle; the dead-letter target's incarnation was checked before any message is appended; a second fallible read would add a branch no configured target reaches" +)] async fn dlq_and_settle( state: &Arc, desc: &StreamDesc, @@ -676,12 +704,14 @@ async fn dlq_and_settle( ts_hint_ms: None, key_version: 0, }; - if let Err(error) = state.append.execute(command).await { - if error.definitively_rejected() { + match state.append.execute(command).await { + Ok(_) => {} + Err(error) if error.definitively_rejected() => { blocked += 1; tracing::warn!(stream=%desc.name,consumer=%cname,dead_letter_stream=%dlq,error=%error,"dead-letter delivery refused; source lease retained"); + continue; } - continue; + Err(_) => continue, } } let engine = match state.engine_for(&route).await { diff --git a/src/application/consumer_remote.rs b/src/application/consumer_remote.rs index 7c6c0aa7..fa339250 100644 --- a/src/application/consumer_remote.rs +++ b/src/application/consumer_remote.rs @@ -4,6 +4,14 @@ use crate::application::read_remote::InternalTarget; use serde_json::json; use std::sync::Arc; +#[expect( + clippy::too_many_arguments, + reason = "relay_queue_cursor; the relay takes the owner, stream, consumer, generation and segment parts separately as the pull resolved them; a relay struct would exist only for this signature" +)] +#[expect( + clippy::expect_used, + reason = "relay_queue_cursor; a fleet GET request carries no streaming body, so it is clonable; a fallible clone would add a branch no fleet request reaches" +)] pub(super) async fn relay_queue_cursor( state: &Arc, base: &str, @@ -37,6 +45,14 @@ pub(super) async fn relay_queue_cursor( Some((v["cursor"].as_u64()?, v["tail"].as_u64()?)) } +#[expect( + clippy::too_many_arguments, + reason = "relay_sweep_segment; the relay takes the owner, stream, consumer, generation and segment parts separately as the sweep resolved them; a relay struct would exist only for this signature" +)] +#[expect( + clippy::expect_used, + reason = "relay_sweep_segment; a fleet sweep request carries no streaming body, so it is clonable; a fallible clone would add a branch no fleet request reaches" +)] pub(super) async fn relay_sweep_segment( state: &Arc, base: &str, diff --git a/src/application/creation.rs b/src/application/creation.rs index c4bad873..8c18e00c 100644 --- a/src/application/creation.rs +++ b/src/application/creation.rs @@ -148,6 +148,10 @@ fn init_claim_stale(desc: &crate::registry::PersistedDescriptor) -> bool { .as_ref() .is_some_and(|init| now_ms() - init.claimed_ms > crate::registry::INIT_CLAIM_MS) } +#[expect( + clippy::too_many_arguments, + reason = "create_request_hash; the request hash covers every field a client can vary, taken separately as the handler parsed them; a request struct would exist only to be hashed" +)] pub(crate) fn create_request_hash( content_type: &str, ttl_secs: Option, @@ -181,6 +185,10 @@ pub(crate) fn create_request_hash( } hex(&h.finalize()[..16]) } +#[expect( + clippy::too_many_arguments, + reason = "fresh_desc; a fresh descriptor is built from the resolved name, epoch, policy and fork parts separately as creation decided them; a builder would restate the descriptor's own fields" +)] pub(crate) fn fresh_desc( service: &CreationService, sref: &crate::tenant::TenantStreamRef, @@ -220,6 +228,10 @@ pub(crate) fn fresh_desc( } } +#[expect( + clippy::expect_used, + reason = "json_entries; a serde_json::Value serialises infallibly; a fallible path would add a branch no value reaches" +)] pub(crate) fn json_entries(body: &[u8], allow_empty_array: bool) -> Result, String> { let v: serde_json::Value = serde_json::from_slice(body).map_err(|_| "invalid JSON body".to_string())?; @@ -250,6 +262,10 @@ mod tests { use crate::application::request_work::{Action, Key, Kind, RequestWork, WorkError}; use std::{sync::Arc, time::Duration}; + #[expect( + clippy::excessive_nesting, + reason = "r05_cancelled_ttl_attempt_releases_only_its_owned_slot; the fixture nests the drain wait inside the timeout that bounds it inside the test; flattening it would separate the wait from the bound it must respect" + )] #[tokio::test] async fn r05_cancelled_ttl_attempt_releases_only_its_owned_slot() { let project = crate::tenant::ProjectId::new("creation-test").unwrap(); diff --git a/src/application/creation/anchor.rs b/src/application/creation/anchor.rs index 34d81b33..8db86589 100644 --- a/src/application/creation/anchor.rs +++ b/src/application/creation/anchor.rs @@ -3,6 +3,10 @@ use super::deletion::release_fork_ref; use super::raw::CreatePlan; use super::*; +#[expect( + clippy::too_many_lines, + reason = "install; the anchor install is one conditional write over the source's fork reference plus the compensation each declined outcome requires; splitting it would separate the write from the compensation it orders" +)] pub(super) async fn install( state: &Arc, plan: &CreatePlan, @@ -187,6 +191,10 @@ enum ReferenceStamp { AlreadyPresent, TargetChanged, } +#[expect( + clippy::expect_used, + reason = "stamp_fork_reference; the persisted copy carries the fork reference the match just observed; a fallible write would add a branch no observed reference reaches" +)] fn stamp_fork_reference(current: &StreamDesc, fork_id: &str) -> Mutation { if current.deleted { return Mutation::Decline(ReferenceStamp::TargetChanged); diff --git a/src/application/creation/claim.rs b/src/application/creation/claim.rs index 4c02842a..63bfb519 100644 --- a/src/application/creation/claim.rs +++ b/src/application/creation/claim.rs @@ -2,6 +2,10 @@ use super::raw::CreatePlan; use super::*; +#[expect( + clippy::too_many_lines, + reason = "resolve; claim resolution is one decision over the existing descriptor's lifecycle, retained name and pending initialization; splitting it would separate the verdicts from the descriptor they judge" +)] pub(super) async fn resolve( state: &Arc, plan: &CreatePlan, diff --git a/src/application/creation/deletion.rs b/src/application/creation/deletion.rs index 465d6b59..80e536a6 100644 --- a/src/application/creation/deletion.rs +++ b/src/application/creation/deletion.rs @@ -65,6 +65,10 @@ pub(super) async fn clear_parent_debt( state.registry.invalidate(sref); Ok(()) } +#[expect( + clippy::too_many_lines, + reason = "release_fork_ref; one conditional write over the source's fork reference whose absent, foreign, recreated-source and released outcomes each decide conclusiveness; splitting it would separate the read from the verdict it justifies" +)] pub(super) fn release_fork_ref( state: &Arc, src_ref: crate::tenant::TenantStreamRef, @@ -253,7 +257,6 @@ fn delete_lifecycle( // the deployment tenant's same-named stream while B's own survived. let state = state.clone(); let sref = sref.clone(); - let name = sref.name().as_str().to_string(); Box::pin(async move { let d = match state.registry.get(&sref).await.map_err(|e| e.to_string())? { Some(d) => d, @@ -268,71 +271,7 @@ fn delete_lifecycle( // generation that was tombstoned but never released its own // parent is reachable by deleting it again. if let crate::registry::Lifecycle::Deleted { parent_ref_pending } = d.lifecycle() { - if parent_ref_pending && let Some((src, fid, sep)) = parent.clone() { - // Clear the debt only on a CONCLUSIVE release: an - // absent reference on a live source may still be - // installed by a creator in flight, and this very - // retry is what repairs that crash later. A source - // recreated since the fork is conclusive too — the - // incarnation this debt was owed to is gone. - if release_fork_ref(&state, d.ref_in_project(&src), &fid, &sep).await? { - clear_parent_debt(&state, &d.sref(), &d.stream_epoch, Some((&src, &fid))) - .await?; - } - } - // Then walk UP. A crashed cascade leaves the debt on a - // hidden intermediate generation, and the only request a - // client will ever retry is the original delete of the leaf. - // Repairing only this descriptor left the ancestor pinned - // and reported success. - // Each hop resolves in the project of the descriptor that - // HOLDS the reference (chain-invariant today, structurally - // per-hop). - let mut next = d.forked_from.as_ref().map(|f| d.ref_in_project(&f.source)); - for _ in 0..64 { - let Some(anc_ref) = next else { break }; - let Some(anc) = state - .registry - .get(&anc_ref) - .await - .map_err(|e| e.to_string())? - else { - break; - }; - if !(anc.deleted && anc.parent_ref_pending) { - break; - } - let conclusive = match anc.forked_from.as_ref() { - Some(gp) => { - release_fork_ref( - &state, - anc.ref_in_project(&gp.source), - &gp.fork_id, - &gp.source_epoch, - ) - .await? - } - None => true, - }; - if conclusive { - let debt = anc - .forked_from - .as_ref() - .map(|gp| (gp.source.clone(), gp.fork_id.clone())); - clear_parent_debt( - &state, - &anc_ref, - &anc.stream_epoch, - debt.as_ref().map(|(a, b)| (a.as_str(), b.as_str())), - ) - .await?; - } - next = anc - .forked_from - .as_ref() - .map(|g| anc.ref_in_project(&g.source)); - } - return Ok(()); + return repair_tombstone(&state, &d, parent_ref_pending).await; } // Soft-versus-hard is decided INSIDE the CAS, against the // children the descriptor has at that instant. Deciding it from @@ -344,7 +283,7 @@ fn delete_lifecycle( // The debt is recorded in the SAME write as the tombstone, so a // crash between them is impossible. #[cfg(test)] - crate::failpoints::pause_delete_before_decision(&name).await; + crate::failpoints::pause_delete_before_decision(sref.name().as_str()).await; let epoch = d.stream_epoch.clone(); // Round-22 item 7: ONE logical close instant, decided here, // stamped into the tombstone write below and used by every @@ -389,27 +328,7 @@ fn delete_lifecycle( // committer queue is backpressure, never a silent drop; a // submission that still fails is safe because the debt lives // on the tombstone and the sweep reconciler retries it. - { - let seg_ids: Vec = d - .segments - .as_ref() - .map(|m| m.segments.iter().map(|sg| sg.seg_id).collect()) - .unwrap_or_else(|| vec![0]); - for sid in seg_ids { - let identity = d.dynamic_segment_identity(sid); - let route = d - .segment_route_by_id(sid) - .expect("segment selected from validated topology"); - if let Ok(engine) = state.resolve(&route).await - && let Err(e) = engine.submit_billing_close(identity, close_stamp).await - { - tracing::warn!( - "delete {name}: billing close submit failed \ - (tombstone debt persists; sweep retries): {e}" - ); - } - } - } + submit_billing_closes(&state, &d, close_stamp).await; if let Some((src, fid, sep)) = parent { // Released CONCLUSIVELY: the tombstone owes nothing more. // This is `update`, not `cas_update`, because the @@ -433,6 +352,116 @@ enum DeleteTransition { Retained, Tombstoned, } +/// Pay a tombstone's unpaid parent debt, then walk UP the fork chain: a +/// crashed cascade leaves the debt on a hidden intermediate generation, and +/// the only request a client will ever retry is the original delete of the +/// leaf, so repairing only its descriptor left the ancestor pinned. +async fn repair_tombstone( + state: &Arc, + d: &StreamDesc, + parent_ref_pending: bool, +) -> Result<(), String> { + let parent = d + .forked_from + .as_ref() + .map(|f| (f.source.clone(), f.fork_id.clone(), f.source_epoch.clone())); + if parent_ref_pending && let Some((src, fid, sep)) = parent { + // Clear the debt only on a CONCLUSIVE release: an + // absent reference on a live source may still be + // installed by a creator in flight, and this very + // retry is what repairs that crash later. A source + // recreated since the fork is conclusive too — the + // incarnation this debt was owed to is gone. + if release_fork_ref(state, d.ref_in_project(&src), &fid, &sep).await? { + clear_parent_debt(state, &d.sref(), &d.stream_epoch, Some((&src, &fid))).await?; + } + } + // Then walk UP. A crashed cascade leaves the debt on a + // hidden intermediate generation, and the only request a + // client will ever retry is the original delete of the leaf. + // Repairing only this descriptor left the ancestor pinned + // and reported success. + // Each hop resolves in the project of the descriptor that + // HOLDS the reference (chain-invariant today, structurally + // per-hop). + let mut next = d.forked_from.as_ref().map(|f| d.ref_in_project(&f.source)); + for _ in 0..64 { + let Some(anc_ref) = next else { break }; + let Some(anc) = state + .registry + .get(&anc_ref) + .await + .map_err(|e| e.to_string())? + else { + break; + }; + if !(anc.deleted && anc.parent_ref_pending) { + break; + } + let conclusive = match anc.forked_from.as_ref() { + Some(gp) => { + release_fork_ref( + state, + anc.ref_in_project(&gp.source), + &gp.fork_id, + &gp.source_epoch, + ) + .await? + } + None => true, + }; + if conclusive { + let debt = anc + .forked_from + .as_ref() + .map(|gp| (gp.source.clone(), gp.fork_id.clone())); + clear_parent_debt( + state, + &anc_ref, + &anc.stream_epoch, + debt.as_ref().map(|(a, b)| (a.as_str(), b.as_str())), + ) + .await?; + } + next = anc + .forked_from + .as_ref() + .map(|g| anc.ref_in_project(&g.source)); + } + Ok(()) +} + +/// Advance every segment's storage clock to the persisted close stamp and +/// zero its gauge. Submission is awaited: a full committer queue is +/// backpressure, never a silent drop, and a submission that still fails is +/// safe because the debt lives on the tombstone and the sweep retries it. +#[expect( + clippy::expect_used, + reason = "submit_billing_closes; every segment id is read from the descriptor's own validated topology, whose routes are total over its segments; a fallible lookup would add a branch no listed segment reaches" +)] +async fn submit_billing_closes(state: &Arc, d: &StreamDesc, close_stamp: i64) { + let seg_ids: Vec = d + .segments + .as_ref() + .map(|m| m.segments.iter().map(|sg| sg.seg_id).collect()) + .unwrap_or_else(|| vec![0]); + for sid in seg_ids { + let identity = d.dynamic_segment_identity(sid); + let route = d + .segment_route_by_id(sid) + .expect("segment selected from validated topology"); + if let Ok(engine) = state.resolve(&route).await + && let Err(e) = engine.submit_billing_close(identity, close_stamp).await + { + tracing::warn!( + "delete {}: billing close submit failed \ + (tombstone debt persists; sweep retries): {e}", + d.name + ); + } + } +} + fn delete_transition(current: &StreamDesc, close_ms: i64) -> Mutation { if current.deleted { return Mutation::Decline(DeleteTransition::AlreadyDeleted); diff --git a/src/application/creation/fork.rs b/src/application/creation/fork.rs index 5be80f59..87a09240 100644 --- a/src/application/creation/fork.rs +++ b/src/application/creation/fork.rs @@ -21,6 +21,10 @@ pub(super) struct PreparedFork { pub content_type: String, pub ttl_secs: Option, } +#[expect( + clippy::too_many_lines, + reason = "prepare; fork preparation validates the source, its lifecycle, the boundary and the child's policy in the order a fork request must fail; splitting it would separate the checks from the order that decides which error a client sees" +)] pub(super) async fn prepare( state: &Arc, input: Preparation<'_>, @@ -176,6 +180,22 @@ struct Boundary { sub: u64, materialize: Option, } +#[expect( + clippy::too_many_lines, + reason = "validate_boundary; the boundary walk reads the source record at the fork offset and certifies the materialized partial in one pass; splitting it would separate the partial from the record it is cut from" +)] +#[expect( + clippy::unwrap_used, + reason = "validate_boundary; a poisoned stream state may hold a half-advanced durable frontier; recovering it could validate a boundary against a length never made durable" +)] +#[expect( + clippy::cast_possible_truncation, + reason = "validate_boundary; the sub-offset was checked against the record's length, itself a usize; a checked conversion would only restate that bound" +)] +#[expect( + clippy::excessive_nesting, + reason = "validate_boundary; the walk nests the ceiling verdict inside the partial-record branch of the boundary check; flattening it would separate the verdict from the partial it certifies" +)] async fn validate_boundary( state: &Arc, src: &StreamDesc, diff --git a/src/application/creation/initialization.rs b/src/application/creation/initialization.rs index 991f2c5c..4474dbba 100644 --- a/src/application/creation/initialization.rs +++ b/src/application/creation/initialization.rs @@ -3,6 +3,18 @@ use super::deletion::release_fork_ref; use super::raw::CreatePlan; use super::*; +#[expect( + clippy::too_many_arguments, + reason = "seed; seeding takes the plan, descriptor, key and fork parts separately as creation resolved them; a seed struct would exist only for this signature" +)] +#[expect( + clippy::too_many_lines, + reason = "seed; the tail seed, the fork reference and the readiness publish are one initialization whose compensation depends on which step failed; splitting them would separate the steps from the compensation they order" +)] +#[expect( + clippy::unwrap_used, + reason = "seed; a poisoned stream state may hold a half-advanced durable frontier; recovering it could seed a child from a length never made durable" +)] pub(super) async fn seed( state: &Arc, plan: &CreatePlan, @@ -162,6 +174,10 @@ pub(super) async fn seed( Ok((next, closed_now)) } +#[expect( + clippy::excessive_nesting, + reason = "publish; the readiness verdict nests the fork-claim compensation inside the declined-CAS branch; flattening it would separate the compensation from the verdict that requires it" +)] pub(super) async fn publish( state: &Arc, plan: &CreatePlan, diff --git a/src/application/creation/product.rs b/src/application/creation/product.rs index 66c98d04..598a39e5 100644 --- a/src/application/creation/product.rs +++ b/src/application/creation/product.rs @@ -17,6 +17,10 @@ impl From for ProductCreateError { } } impl CreationService { + #[expect( + clippy::too_many_lines, + reason = "create_product; the winner, retained-name and fresh-create branches are one decision over the product's name; splitting them would separate the decision from the write it guards" + )] pub(crate) async fn create_product( self: &Arc, sref: crate::tenant::TenantStreamRef, @@ -115,15 +119,14 @@ impl CreationService { })?; if created { (true, winner) + } else if winner.soft_deleted || !winner.fork_children.is_empty() { + return Err(CreationError::new( + CreationFailure::Conflict, + "gone", + "name is retained for live forks", + ) + .into()); } else { - if winner.soft_deleted || !winner.fork_children.is_empty() { - return Err(CreationError::new( - CreationFailure::Conflict, - "gone", - "name is retained for live forks", - ) - .into()); - } (false, validate_live(winner)?) } } diff --git a/src/application/lifecycle.rs b/src/application/lifecycle.rs index bfe1428d..d4ff4052 100644 --- a/src/application/lifecycle.rs +++ b/src/application/lifecycle.rs @@ -429,9 +429,8 @@ pub(crate) async fn begin_sealing_for_close( EnterSeal::Installed { generation } | EnterSeal::AlreadyOurs { generation } => { Ok(Some(generation)) } - EnterSeal::AlreadyCompleted => Ok(None), - EnterSeal::AlreadySealed => Ok(None), // already terminal; the close is a no-op - EnterSeal::Missing => Ok(None), + // Already terminal or absent: the close is a no-op. + EnterSeal::AlreadyCompleted | EnterSeal::AlreadySealed | EnterSeal::Missing => Ok(None), EnterSeal::Conflicting(m) => Err(SealError::Conflict(m)), EnterSeal::PendingTopology => Err(SealError::Resumable( "a split or merge is in flight; retry the close".into(), @@ -681,10 +680,9 @@ async fn prepare_execution( EnterSeal::Installed { generation } | EnterSeal::AlreadyOurs { generation } => { our_gen = Some(generation); } - EnterSeal::AlreadyCompleted => return Ok(None), + EnterSeal::AlreadyCompleted | EnterSeal::Missing => return Ok(None), EnterSeal::AlreadySealed if op_id.is_empty() => return Ok(None), EnterSeal::AlreadySealed => return Err(SealError::OtherOperation), - EnterSeal::Missing => return Ok(None), EnterSeal::Conflicting(m) => return Err(SealError::Conflict(m)), EnterSeal::PendingTopology => { return Err(SealError::Resumable( diff --git a/src/application/lifecycle/claims.rs b/src/application/lifecycle/claims.rs index a411fbb5..03b27063 100644 --- a/src/application/lifecycle/claims.rs +++ b/src/application/lifecycle/claims.rs @@ -61,6 +61,10 @@ pub(crate) enum SealClaim { } /// An attempt-local decision. No captured output can leak from a CAS that lost. +#[expect( + clippy::expect_used, + reason = "decide_claim; the persisted copy carries the claim the match just observed; a fallible write would add a branch no observed claim reaches" +)] pub(super) fn decide_claim( current: &StreamDesc, op_id: &str, @@ -218,7 +222,6 @@ pub(crate) enum FinalDisposition { pub(crate) fn final_err_disposition(e: &crate::shard::AppendErr) -> FinalDisposition { use crate::shard::AppendErr::*; match e { - ProducerGap { .. } | ProducerEpochSeq => FinalDisposition::AmbiguousOrTransient, ProducerStale { .. } | ProducerSeqReused | CtMismatch @@ -226,6 +229,8 @@ pub(crate) fn final_err_disposition(e: &crate::shard::AppendErr) -> FinalDisposi | SeqConflict { .. } | Closed { .. } | SealSuperseded => FinalDisposition::DefinitivelyRejected, + // A producer gap or epoch/sequence disagreement may still resolve + // once the producer catches up, like every other error. _ => FinalDisposition::AmbiguousOrTransient, } } diff --git a/src/application/read.rs b/src/application/read.rs index 37c55902..14ddede7 100644 --- a/src/application/read.rs +++ b/src/application/read.rs @@ -29,7 +29,10 @@ pub(crate) struct ReadPlan<'a> { } impl<'a> ReadPlan<'a> { - #[allow(clippy::too_many_arguments)] + #[expect( + clippy::too_many_arguments, + reason = "ReadPlan::segment; the constructor takes every field of the plan it builds, as the caller resolved them; a builder would restate the plan's own fields" + )] pub(crate) fn segment( key: &'a StreamKey, epoch: &'a [u8; 16], @@ -57,7 +60,10 @@ impl<'a> ReadPlan<'a> { } /// Compatibility call shape for in-crate engine probes; there is one executor. -#[allow(clippy::too_many_arguments)] +#[expect( + clippy::too_many_arguments, + reason = "read_merged; the compatibility call shape lists the segment plan's fields positionally for the in-crate engine probes; a plan struct is what it builds" +)] pub(crate) async fn read_merged( key: &StreamKey, epoch: &[u8; 16], @@ -112,13 +118,27 @@ pub(crate) struct ReadPage { /// (`src/dst.rs`). A second copy of this boundary logic would be a copy /// that can drift, and drift here means the oracle stops testing what /// production does. -#[allow(clippy::too_many_arguments)] /// Round-13 CODE-RED bisect: the repro's stream carries ONLY rk="" /// records, so keyed reads must be dense too — armed by the test. #[cfg(test)] pub(crate) static TEST_ASSERT_KEYED_DENSE: std::sync::atomic::AtomicBool = std::sync::atomic::AtomicBool::new(false); +#[expect( + clippy::too_many_lines, + reason = "execute_segment; the ring, history and tail legs of one segment read share the boundary the plan fixed; splitting them would separate the legs from the boundary that orders them" +)] +#[expect( + clippy::unwrap_used, + reason = "execute_segment; a poisoned stream state may hold a half-advanced durable frontier; recovering it could serve a page past a length never made durable" +)] +#[cfg_attr( + test, + expect( + clippy::excessive_nesting, + reason = "execute_segment; the keyed-dense audit nests the offset walk inside the test-armed check of the history leg; flattening it would separate the audit from the leg it inspects" + ) +)] async fn execute_segment(plan: ReadPlan<'_>) -> Result { let ReadPlan { key, @@ -327,6 +347,10 @@ pub(crate) struct ReadService { } impl ReadService { + #[expect( + clippy::too_many_arguments, + reason = "ReadService::new; the service is assembled from its registry, shard directory, peer, ownership and topology collaborators as bootstrap wires them; a builder would restate the service's own fields" + )] pub(crate) fn new( registry: Arc, shards: ShardDirectory, @@ -406,22 +430,20 @@ fn fork_chain_of(state: &ReadService, desc: &StreamDesc) -> ForkChainFuture { ) }); chain.push((cur, boundary, epoch)); - match parent { - None => break, - Some((src, src_ref, want_epoch)) => { - let d = match state_reg.get(&src_ref).await { - Ok(Some(d)) if !d.deleted => d, - _ => return Err(format!("fork source '{src}' is gone")), - }; - if !want_epoch.is_empty() && d.stream_epoch != want_epoch { - return Err(format!( - "fork source '{src}' is a different incarnation (expected {want_epoch}, found {})", - d.stream_epoch - )); - } - cur = d; - } + let Some((src, src_ref, want_epoch)) = parent else { + break; + }; + let d = match state_reg.get(&src_ref).await { + Ok(Some(d)) if !d.deleted => d, + _ => return Err(format!("fork source '{src}' is gone")), + }; + if !want_epoch.is_empty() && d.stream_epoch != want_epoch { + return Err(format!( + "fork source '{src}' is a different incarnation (expected {want_epoch}, found {})", + d.stream_epoch + )); } + cur = d; } Ok(chain) }) @@ -435,7 +457,10 @@ fn fork_chain_of(state: &ReadService, desc: &StreamDesc) -> ForkChainFuture { /// matching record: match-free scanned ranges and drained ancestors /// count as progress (follow-up review finding 6), so filtered /// callers never rescan a range the chain already proved empty. -#[allow(clippy::too_many_arguments)] +#[expect( + clippy::unwrap_used, + reason = "read_stitched; a poisoned stream state may hold a half-advanced durable frontier; recovering it could stitch a page past a length never made durable" +)] pub(crate) async fn read_stitched( state: &ReadService, desc: &StreamDesc, @@ -775,6 +800,10 @@ async fn decode_history_range( /// A tail page is accepted only after ruling out a concurrent durable trim. /// A retained dense durable-ring interval already proves what was inspected. /// Other filtered scans still need the remotely durable boundary/layout tuple. +#[expect( + clippy::too_many_arguments, + reason = "absorption_race; the race check takes the engine, hash, page, cursor, end and filter flag the read loop already holds; a context struct would exist only for this signature" +)] async fn absorption_race( engine: &Arc, hash: [u8; 16], @@ -833,6 +862,10 @@ async fn absorption_race( #[cfg(test)] mod o2_tests { use super::*; + #[expect( + clippy::cast_possible_truncation, + reason = "o2_batch_publishes_one_owner_only_after_authentication_and_admission; the fixture's offsets are counters below 256 that seed and check each payload byte; checked conversions would only restate the fixture's size" + )] #[test] fn o2_batch_publishes_one_owner_only_after_authentication_and_admission() { let key = crate::crypto::StreamKey([7; 32]); diff --git a/src/application/topology.rs b/src/application/topology.rs index eb5ce0b5..0aa06d83 100644 --- a/src/application/topology.rs +++ b/src/application/topology.rs @@ -410,6 +410,14 @@ pub(crate) async fn resume_fenced( resume_incarnation(st, sref, Some(epoch)).await } +#[expect( + clippy::expect_used, + reason = "resume_incarnation; the segment map was checked present before the split resumes; a second fallible read would add a branch no checked topology reaches" +)] +#[expect( + clippy::excessive_nesting, + reason = "resume_incarnation; the route salt loop nests the prefix comparison inside the resumed split's mutation closure; flattening it would separate the candidate route from the topology it must differ from" +)] async fn resume_incarnation( st: &TopologyService, sref: &crate::tenant::TenantStreamRef, @@ -552,6 +560,10 @@ async fn resume_incarnation( /// merged child on the low parent's route. Crash-resumable from the /// persisted pending intent; the seal-gap read semantics apply to both /// parents automatically (pending.segs names them). +#[expect( + clippy::expect_used, + reason = "resume_merge; the segment map was checked present before the merge resumes; a second fallible read would add a branch no checked topology reaches" +)] async fn resume_merge( st: &TopologyService, desc: &StreamDesc, diff --git a/src/audit.rs b/src/audit.rs index a802b6b3..0cb1bad9 100644 --- a/src/audit.rs +++ b/src/audit.rs @@ -116,6 +116,10 @@ impl AuditJournal { /// Observe a product-surface response on its way out. Enforce-mode /// denials (a `DenialTag` extension) journal; everything else is a /// no-op. Never blocks and never alters the response. +#[expect( + clippy::unwrap_used, + reason = "observe_denial; a poisoned audit queue may hold a half-pushed or half-drained event; recovering it could publish or drop an event twice" +)] pub(crate) fn observe_denial( state: &crate::http::AppState, route: &str, @@ -171,6 +175,14 @@ struct PendingAudit<'a> { body: Vec, } impl<'a> PendingAudit<'a> { + #[expect( + clippy::unwrap_used, + reason = "PendingAudit::take; a poisoned audit queue may hold a half-pushed or half-drained event; recovering it could publish or drop an event twice" + )] + #[expect( + clippy::expect_used, + reason = "PendingAudit::take; an oversized selection is only produced from a first queued event that overflowed the budget, so the queue holds it; a fallible pop would add a branch no oversized selection reaches" + )] fn take( queue: &'a Mutex>, dropped: &'a AtomicU64, @@ -210,6 +222,10 @@ impl<'a> PendingAudit<'a> { } } impl Drop for PendingAudit<'_> { + #[expect( + clippy::unwrap_used, + reason = "PendingAudit::drop; a poisoned audit queue may hold a half-pushed or half-drained event; recovering it could publish or drop an event twice" + )] fn drop(&mut self) { if self.events.is_empty() { return; diff --git a/src/auth_feed.rs b/src/auth_feed.rs index bab396c2..17ad6272 100644 --- a/src/auth_feed.rs +++ b/src/auth_feed.rs @@ -344,7 +344,15 @@ pub(crate) async fn refresh_once( /// are meaningful from the first request), then a fixed cadence. The /// cadence must be well inside `POLICY_STALENESS_MAX_SECS` or the cell /// oscillates into staleness refusals; boot enforces that. -pub fn spawn_refresher( +#[expect( + clippy::too_many_arguments, + reason = "spawn_refresher; the refresher takes the auth service, its three sources, the cadence and the supervisor as boot wires them; a bundle struct would exist only for this signature" +)] +#[expect( + clippy::let_underscore_must_use, + reason = "spawn_refresher; the supervisor rejects a spawn only while it is stopping, when no refresh is owed; a rejected refresher has nothing left to fetch" +)] +pub(crate) fn spawn_refresher( auth: Arc, keys: Box, policies: Box, @@ -444,6 +452,10 @@ mod tests { assert_eq!(report.finished(), vec!["auth-refresher"]); } + #[expect( + clippy::let_underscore_must_use, + reason = "refresh_once_publishes_from_files_and_survives_a_broken_one; the fixture removes its temporary directory on the way out; a failed removal leaves nothing the assertions depend on" + )] #[tokio::test] async fn refresh_once_publishes_from_files_and_survives_a_broken_one() { let dir = std::env::temp_dir().join(format!("mt-feed-{}", std::process::id())); diff --git a/src/billing.rs b/src/billing.rs index 8ec1ff5f..0fe2c40c 100644 --- a/src/billing.rs +++ b/src/billing.rs @@ -98,20 +98,11 @@ pub(crate) fn billing_now_ms() -> i64 { } #[cfg(test)] -pub(crate) static BILLING_CLOCK_OVERRIDE: std::sync::atomic::AtomicI64 = - std::sync::atomic::AtomicI64::new(0); - -/// Serializes month-sensitive tests: the clock-injecting test takes -/// write; tests asserting real-now months take read. +mod test_clock; #[cfg(test)] -pub(crate) fn billing_clock_lock() -> &'static tokio::sync::RwLock<()> { - static L: std::sync::OnceLock> = std::sync::OnceLock::new(); - L.get_or_init(|| tokio::sync::RwLock::new(())) -} +pub(crate) use test_clock::{BILLING_CLOCK_OVERRIDE, billing_clock_lock}; -// --------------------------------------------------------------------- // UTC month math (no chrono dependency; Hinnant civil-date algorithm) -// --------------------------------------------------------------------- /// (year, month 1..=12) of a UTC millisecond timestamp. #[expect( @@ -769,6 +760,10 @@ type UsageAck = ( clippy::too_many_lines, reason = "drain_once; one drain round is one ledger append whose admission, emission and acknowledgement must stay in a single visible sequence; splitting it would hide which side effect each crash interleaving reaches" )] +#[expect( + clippy::excessive_nesting, + reason = "drain_once; the drain nests the retention verdicts inside each dirty segment's descriptor branch; flattening them would separate the verdicts from the descriptor they judge" +)] pub(crate) async fn drain_once( state: &std::sync::Arc, ) -> Result { @@ -2081,6 +2076,10 @@ pub(crate) static WALK_DEFERRED: std::sync::atomic::AtomicU64 = /// clean AND the name recreated under a new epoch before the next /// sweep replaces the tombstone this walk needs; that incarnation's /// gauge is then reachable only through the dirty-path reconciler. +#[expect( + clippy::excessive_nesting, + reason = "tombstone_walk; the walk nests the close stamp and the submit verdict inside each tombstone's engine branch; flattening them would separate the verdict from the tombstone it closes" +)] pub(crate) async fn tombstone_walk(state: &std::sync::Arc) { if state.billing.usage_key().is_none() { return; diff --git a/src/billing/test_clock.rs b/src/billing/test_clock.rs new file mode 100644 index 00000000..ffb0e20e --- /dev/null +++ b/src/billing/test_clock.rs @@ -0,0 +1,12 @@ +//! The injectable billing clock the month-sensitive tests share. +#![cfg(test)] + +pub(crate) static BILLING_CLOCK_OVERRIDE: std::sync::atomic::AtomicI64 = + std::sync::atomic::AtomicI64::new(0); + +/// Serializes month-sensitive tests: the clock-injecting test takes +/// write; tests asserting real-now months take read. +pub(crate) fn billing_clock_lock() -> &'static tokio::sync::RwLock<()> { + static L: std::sync::OnceLock> = std::sync::OnceLock::new(); + L.get_or_init(|| tokio::sync::RwLock::new(())) +} diff --git a/src/bin/livebench.rs b/src/bin/livebench.rs index 7040f80f..05f96aec 100644 --- a/src/bin/livebench.rs +++ b/src/bin/livebench.rs @@ -164,6 +164,10 @@ fn legacy_wait_url_sig(sig_key: &[u8; 32], watch_key_hex: &str) -> String { clippy::cast_possible_truncation, reason = "main; tenant selection hashes a 64-bit transaction id on a 64-bit target; a checked conversion would only restate the pointer width the bench assumes" )] +#[expect( + clippy::excessive_nesting, + reason = "main; the bench nests each consumer's poll loop and each generator's publish loop inside the task it spawns for them; flattening them would separate the loops from the tasks whose lifetimes bound them" +)] async fn main() -> anyhow::Result<()> { let args = Args::parse(); let http = client(); diff --git a/src/bin/verify.rs b/src/bin/verify.rs index 003adcb4..c02413c7 100644 --- a/src/bin/verify.rs +++ b/src/bin/verify.rs @@ -156,8 +156,8 @@ async fn latency(args: &Args) -> anyhow::Result<()> { let _ = s.get(&key).await?.bytes().await?; get_ms.push(t.elapsed().as_secs_f64() * 1000.0); } - put_ms.sort_by(|a, b| a.partial_cmp(b).unwrap()); - get_ms.sort_by(|a, b| a.partial_cmp(b).unwrap()); + put_ms.sort_by(f64::total_cmp); + get_ms.sort_by(f64::total_cmp); println!( "10KiB PUT ms: min={:.0} p50={:.0} max={:.0}", put_ms[0], diff --git a/src/deployment.rs b/src/deployment.rs index 6435737f..ee3ffc0d 100644 --- a/src/deployment.rs +++ b/src/deployment.rs @@ -50,6 +50,10 @@ impl DeploymentIdentity { /// already be canonical (`canonical_name` ran at the route boundary); /// the checked construction keeps unvalidated bytes out of registry /// paths and identity hashes. + #[expect( + clippy::expect_used, + reason = "DeploymentIdentity::raw_adapter_sref; the raw adapters pass names they already validated as canonical; a fallible lookup would add a branch no adapter reaches" + )] // mt-lint: allow(name-param-shared-core): the raw adapters' ONE identity source — a canonical name becomes deployment-tenant identity here and nowhere else (SR-6) pub(crate) fn raw_adapter_sref(&self, canonical_name: &str) -> TenantStreamRef { TenantStreamRef::new( diff --git a/src/dst/fault_store.rs b/src/dst/fault_store.rs index 50c79400..14ff2128 100644 --- a/src/dst/fault_store.rs +++ b/src/dst/fault_store.rs @@ -122,7 +122,7 @@ fn mix(seed: u64, path: &str, op: u8, n: u64) -> u64 { let mut h: u64 = 0xcbf2_9ce4_8422_2325; for b in path.as_bytes() { h ^= *b as u64; - h = h.wrapping_mul(0x1000_0000_1b3); + h = h.wrapping_mul(0x100_0000_01b3); } let mut z = seed ^ h ^ ((op as u64) << 56) ^ n.wrapping_mul(0x9e37_79b9_7f4a_7c15); z = (z ^ (z >> 30)).wrapping_mul(0xbf58_476d_1ce4_e5b9); @@ -211,6 +211,10 @@ impl FaultState { /// Latency / hold / error decision, shared by every verb. /// `Ok(true)` means "perform it, then discard the response". + #[expect( + clippy::let_underscore_must_use, + reason = "FaultState::gate; the permit is the wait itself and is released the moment it is granted, so the gate paces operations without holding them; a bound permit would serialise the store" + )] async fn gate(&self, op: StoreOp, path: &str) -> OsResult { self.ops.fetch_add(1, Ordering::Relaxed); let class = ObjClass::of(path); @@ -430,6 +434,10 @@ impl ObjectStore for FaultStore { /// recovery walked an untouched store. Faults apply at two points a /// real listing can fail: before the first item, and mid-stream after /// partial results (truncation with a terminal error). + #[expect( + clippy::excessive_nesting, + reason = "FaultStore::list; the listing unfold nests the gate verdict inside the first-poll branch of the scripted stream; flattening it would separate the verdict from the poll it fails" + )] fn list( &self, prefix: Option<&ObjPath>, @@ -515,6 +523,10 @@ impl ObjectStore for FaultStore { /// zombie DB in ladder pass 3. Leaving the most dangerous verb /// unfaulted was a real gap. A faulted delete leaves the object in /// place, which is how garbage accumulates when GC cannot keep up. + #[expect( + clippy::excessive_nesting, + reason = "FaultStore::delete_stream; the delete unfold nests the one-item inner stream and the lost-response verdict inside each location's step; flattening them would separate the verdict from the delete it may lose" + )] fn delete_stream( &self, locations: futures_util::stream::BoxStream<'static, OsResult>, diff --git a/src/dst/review_readiness.rs b/src/dst/review_readiness.rs index 2816e151..4ff8bc16 100644 --- a/src/dst/review_readiness.rs +++ b/src/dst/review_readiness.rs @@ -7,6 +7,10 @@ use super::fixture_storage::mem; use crate::tasks::{Policy, TaskResult}; use std::time::Duration; +#[expect( + clippy::excessive_nesting, + reason = "readiness_endpoint_refuses_each_permanent_critical_exit; the fixture nests the unready wait inside the timeout that bounds it inside the test; flattening it would separate the wait from the bound it must respect" +)] #[tokio::test] async fn readiness_endpoint_refuses_each_permanent_critical_exit() { for outcome in 0..3 { diff --git a/src/dst/review_security.rs b/src/dst/review_security.rs index 8603681b..99c29f09 100644 --- a/src/dst/review_security.rs +++ b/src/dst/review_security.rs @@ -147,6 +147,10 @@ async fn r15_bodyless_and_unauthorized_requests_never_poll_the_body() { engine_shutdown(&rig.state).await; } +#[expect( + clippy::excessive_nesting, + reason = "r16_unauthorized_watch_shapes_are_independent_of_existence; the fixture nests the deleted-versus-initializing stamp inside its descriptor mutation and the query sweep inside the cursor and key sweeps; flattening them would separate each shape from the descriptor and the shapes it is compared against" +)] #[tokio::test(flavor = "multi_thread", worker_threads = 2)] async fn r16_unauthorized_watch_shapes_are_independent_of_existence() { use axum::http::{Method, StatusCode}; diff --git a/src/dst/runtime.rs b/src/dst/runtime.rs index 12e6401b..3a32fba7 100644 --- a/src/dst/runtime.rs +++ b/src/dst/runtime.rs @@ -60,6 +60,10 @@ impl OpLog { /// Audit what a reader actually drained. `observed` is per routing key, /// in read order. + #[expect( + clippy::excessive_nesting, + reason = "OpLog::audit; the audit nests each key's acknowledged-but-unreadable and out-of-order checks inside the per-key walk; flattening them would separate the verdicts from the key they judge" + )] pub(crate) fn audit(&self, observed: &HashMap>) -> Result<(), String> { // The ledger must be self-consistent, or a harness bug could // silently weaken every check below. @@ -330,11 +334,8 @@ impl Workload { self.coverage.hit(mech::APPEND_REJECTED); Outcome::Rejected } - Ok(Err(AppendErr::Moved | AppendErr::Closed { .. } | AppendErr::Internal(_))) => { - self.coverage.hit(mech::APPEND_UNKNOWN); - Outcome::Unknown - } - Err(_) => { + Ok(Err(AppendErr::Moved | AppendErr::Closed { .. } | AppendErr::Internal(_))) + | Err(_) => { self.coverage.hit(mech::APPEND_UNKNOWN); Outcome::Unknown } @@ -376,6 +377,10 @@ impl Workload { clippy::too_many_arguments, reason = "Workload::append_to; the DST workload takes the engine, stream, key, payload and fault knobs separately as each scenario states them; a request struct would hide which knob a scenario varies" )] + #[expect( + clippy::excessive_nesting, + reason = "Workload::append_to; the append log nests the duplicate mark inside the acknowledged arm of the outcome match inside the attempt loop; flattening it would separate the mark from the acknowledgement it qualifies" + )] pub(crate) async fn append_to( &mut self, engines: &[&Arc], diff --git a/src/dst/tests/billing_maintenance.rs b/src/dst/tests/billing_maintenance.rs index f5a16201..0d1c2b29 100644 --- a/src/dst/tests/billing_maintenance.rs +++ b/src/dst/tests/billing_maintenance.rs @@ -10,6 +10,10 @@ use std::sync::Arc; /// A stream whose TTL lapsed has a dead descriptor and a live gauge; /// the drain-time reconciler resubmits the closure until the gauge /// zeroes, and journals the lifecycle observation. +#[expect( + clippy::let_underscore_must_use, + reason = "expiry_closes_the_storage_gauge; the fixture drains billing debt until the gauge closes, and each pass's own result is irrelevant to the closure it polls for; a handled result would only restate the poll" +)] #[tokio::test(flavor = "multi_thread", worker_threads = 4)] async fn expiry_closes_the_storage_gauge() { let store = mem(); diff --git a/src/dst/tests/consumer_generations.rs b/src/dst/tests/consumer_generations.rs index 774bee5e..95511fe7 100644 --- a/src/dst/tests/consumer_generations.rs +++ b/src/dst/tests/consumer_generations.rs @@ -511,6 +511,10 @@ async fn a_parked_saga_never_touches_a_recreated_stream() { clippy::too_many_lines, reason = "bounded cleanup scenario; seeding dead-generation residue at scale, draining it in bounded steps and checking the live generation form one causal sequence; helper phases would hide which step touched the live rows" )] +#[expect( + clippy::cast_possible_truncation, + reason = "a_bounded_cleanup_drains_residue_without_touching_the_live_generation; the fixture's row counts and budgets are small whole numbers it chose; checked conversions would only restate the fixture" +)] #[tokio::test(flavor = "multi_thread", worker_threads = 4)] async fn a_bounded_cleanup_drains_residue_without_touching_the_live_generation() { let store = mem(); diff --git a/src/dst/tests/consumer_product.rs b/src/dst/tests/consumer_product.rs index cd69b37e..614fe659 100644 --- a/src/dst/tests/consumer_product.rs +++ b/src/dst/tests/consumer_product.rs @@ -411,6 +411,10 @@ async fn product_consumer_dlq_flow() { clippy::too_many_lines, reason = "lineage consumption scenario; consuming the sealed predecessor's backlog, splitting and continuing on the children form one causal sequence; helper phases would hide which lineage step delivered or settled out of order" )] +#[expect( + clippy::excessive_nesting, + reason = "product_consumer_drains_lineage_across_split; the fixture nests the drained verdict inside the empty-page branch of its pull loop; flattening it would separate the verdict from the page that proves it" +)] #[tokio::test(flavor = "multi_thread", worker_threads = 4)] async fn product_consumer_drains_lineage_across_split() { let _l = gap_lock().lock().await; diff --git a/src/dst/tests/fault_substrate.rs b/src/dst/tests/fault_substrate.rs index a2337fd7..095a3330 100644 --- a/src/dst/tests/fault_substrate.rs +++ b/src/dst/tests/fault_substrate.rs @@ -51,6 +51,10 @@ async fn fault_placement_is_a_pure_function_of_the_seed() { } /// A fault store that never injects proves nothing. +#[expect( + clippy::let_underscore_must_use, + reason = "faults_actually_fire; the fixture issues puts only to make the fault plan fire and counts the injections afterwards; each put's own outcome is the fault under test" +)] #[tokio::test] async fn faults_actually_fire() { let s = FaultStore::uniform(mem(), 7, FaultPlan::new(20, 20, 30)); @@ -138,6 +142,10 @@ async fn deletes_and_reads_are_faulted_too() { /// only increment when a response was *actually* discarded. Counting the /// decision at roll time (the previous behaviour) let a scenario satisfy /// `require(STORE_LOST_RESPONSE)` on a verb that ignored the decision. +#[expect( + clippy::let_underscore_must_use, + reason = "lost_response_counter_tracks_applied_behaviour_only; the fixture issues a multipart put only to prove the lost-response fault cannot apply to it; the put's outcome is not the claim" +)] #[tokio::test] async fn lost_response_counter_tracks_applied_behaviour_only() { let inner = mem(); diff --git a/src/dst/tests/fixture_http.rs b/src/dst/tests/fixture_http.rs index b247b3da..e5ee8943 100644 --- a/src/dst/tests/fixture_http.rs +++ b/src/dst/tests/fixture_http.rs @@ -241,6 +241,14 @@ pub(super) async fn http_rig_with_auth_service( /// directory lifecycle (a fenced or failed engine evicts itself and arms /// the anti-flap holdoff) instead of a rig-only shape with no close /// callback at all. +#[expect( + clippy::too_many_arguments, + reason = "rig_opener; the rig opener takes the store, keys, shard config, park, absorber config and close notifier the rig assembles separately; a rig struct would restate the rig itself" +)] +#[expect( + clippy::excessive_nesting, + reason = "rig_opener; the opener nests the close callback inside the engine construction it must outlive; flattening it would separate the callback from the incarnation it reports" +)] pub(super) fn rig_opener( store: Arc, keys: Arc, @@ -350,6 +358,10 @@ fn fixture_config( clippy::too_many_lines, reason = "HTTP rig builder; every runtime owner is wired in one place so the fixture's dependency order stays visible to scenario authors; pass-through steps would hide which owner a scenario option changed" )] +#[expect( + clippy::let_underscore_must_use, + reason = "http_rig_build; the supervisor rejects a spawn only while it is stopping, when the rig is being torn down; a rejected rig task has nothing left to serve" +)] pub(super) async fn http_rig_build( store: Arc, runtime: RigRuntime, diff --git a/src/dst/tests/fixture_storage.rs b/src/dst/tests/fixture_storage.rs index a3c2b446..d51d0eb1 100644 --- a/src/dst/tests/fixture_storage.rs +++ b/src/dst/tests/fixture_storage.rs @@ -147,6 +147,10 @@ pub(super) async fn open_engine_with_absorber_layout( /// Drain the merged reader WITH a key filter (drain_observed hardcodes /// unfiltered reads): paginate read_merged and collect attempt ids. +#[expect( + clippy::cast_possible_truncation, + reason = "drain_filtered; the fixture's attempt numbers are small counters it wrote itself; a checked conversion would only restate the fixture" +)] pub(super) async fn drain_filtered( engine: &Arc, hash: [u8; 16], diff --git a/src/dst/tests/fleet_controller.rs b/src/dst/tests/fleet_controller.rs index e928b4ae..0c60eada 100644 --- a/src/dst/tests/fleet_controller.rs +++ b/src/dst/tests/fleet_controller.rs @@ -23,6 +23,10 @@ impl std::fmt::Display for HeldDocument { } } impl HeldDocument { + #[expect( + clippy::let_underscore_must_use, + reason = "HeldDocument::enter; the permit is the park itself and is released the moment the test grants it; a held permit would keep the document entered after the test released it" + )] async fn enter(&self, path: &Path, write: bool) { if path.as_ref() == self.path && write == self.write { self.entered.fetch_add(1, Ordering::SeqCst); @@ -89,6 +93,10 @@ impl ObjectStore for HeldDocument { clippy::too_many_lines, reason = "fleet cancellation scenario; entering documents, cancelling under partial authority and checking the retained retry form one causal sequence; helper phases would hide which document lost its retry" )] +#[expect( + clippy::excessive_nesting, + reason = "r09_fleet_cancels_entered_documents_without_partial_authority_or_lost_retry; the fixture nests the entered wait and the desired-state poll inside the timeouts that bound them; flattening them would separate the waits from the bounds they must respect" +)] #[tokio::test(flavor = "multi_thread", worker_threads = 4)] async fn r09_fleet_cancels_entered_documents_without_partial_authority_or_lost_retry() { for (path, write) in [ diff --git a/src/dst/tests/fork_lifecycle.rs b/src/dst/tests/fork_lifecycle.rs index 867777fb..1be50671 100644 --- a/src/dst/tests/fork_lifecycle.rs +++ b/src/dst/tests/fork_lifecycle.rs @@ -807,6 +807,10 @@ async fn fork_lifecycle_is_idempotent_and_epoch_checked() { clippy::disallowed_methods, reason = "unknown child fixture; the parked creation is released and joined before the source reference is checked; it must park concurrently in its unknown state" )] +#[expect( + clippy::excessive_nesting, + reason = "r05_unknown_child_state_preserves_its_source_reference; the fixture nests the park wait inside its timeout and the child's descriptor stamp inside its mutation; flattening them would separate the wait from its bound and the stamp from the descriptor it alters" +)] #[tokio::test(flavor = "multi_thread", worker_threads = 4)] async fn r05_unknown_child_state_preserves_its_source_reference() { let _serial = gap_lock().lock().await; diff --git a/src/dst/tests/lifecycle_creation.rs b/src/dst/tests/lifecycle_creation.rs index a3349346..7404b96e 100644 --- a/src/dst/tests/lifecycle_creation.rs +++ b/src/dst/tests/lifecycle_creation.rs @@ -70,6 +70,10 @@ async fn a_stale_initialization_never_becomes_visible() { /// body under a different key completed the creation with a key the /// descriptor's own fingerprint does not match — a stream that cannot /// decrypt its first record. +#[expect( + clippy::excessive_nesting, + reason = "an_initialization_cannot_be_resumed_with_another_key; the fixture nests the planted init claim inside the descriptor mutation inside the planting closure; flattening it would separate the claim from the descriptor it is planted on" +)] #[tokio::test(flavor = "multi_thread", worker_threads = 4)] async fn an_initialization_cannot_be_resumed_with_another_key() { const OTHER_KEY: &str = "CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQk="; diff --git a/src/dst/tests/livefeed_history.rs b/src/dst/tests/livefeed_history.rs index 2c8aaeae..fdfabbfc 100644 --- a/src/dst/tests/livefeed_history.rs +++ b/src/dst/tests/livefeed_history.rs @@ -78,6 +78,10 @@ async fn fork_materialized_partial_respects_the_record_ceiling() { clippy::too_many_lines, reason = "remote lineage scenario; two instances, the child's owner and the whole-lineage stream form one causal sequence; helper phases would hide which owner served the sealed predecessor" )] +#[expect( + clippy::excessive_nesting, + reason = "livefeed_remote_sealed_predecessor_streams_through_owner; the fixture nests the per-prefix owner choice inside the override loop of its two-instance layout; flattening it would separate the choice from the prefix it assigns" +)] #[tokio::test(flavor = "multi_thread", worker_threads = 4)] async fn livefeed_remote_sealed_predecessor_streams_through_owner() { let store = mem(); @@ -204,9 +208,7 @@ async fn livefeed_remote_sealed_predecessor_streams_through_owner() { 0, "the feed tears down at zero" ); - state_b - .peer - .set_peer("inst-a", &"http://127.0.0.1:9".to_string()); + state_b.peer.set_peer("inst-a", "http://127.0.0.1:9"); let mut down = lf_connect(addr_b, "xown", "?cursor=beginning").await; let (held, eof3) = hub_sse_collect(&mut down, 2, |_| false).await; assert!(!eof3, "a peer outage is a stall, not a disconnect:\n{held}"); diff --git a/src/dst/tests/livefeed_swap.rs b/src/dst/tests/livefeed_swap.rs index f9501555..db86dbb3 100644 --- a/src/dst/tests/livefeed_swap.rs +++ b/src/dst/tests/livefeed_swap.rs @@ -384,6 +384,10 @@ async fn livefeed_split_cursor_decodes_to_segment_local_and_resumes() { /// Round-4 blocker 2 (red): TWO shared subscribers, one swap — both /// receive the successor record exactly once, and both head cursors /// decode to the successor's segment-local position. +#[expect( + clippy::excessive_nesting, + reason = "livefeed_split_shared_subscribers_swap_once_deliver_twice; the fixture nests the frame rendering inside the read of each split child inside the subscriber check; flattening it would separate the rendering from the child it renders" +)] #[tokio::test(flavor = "multi_thread", worker_threads = 4)] async fn livefeed_split_shared_subscribers_swap_once_deliver_twice() { let store = mem(); diff --git a/src/dst/tests/persistence_faults.rs b/src/dst/tests/persistence_faults.rs index ac0a69d9..799f8e2b 100644 --- a/src/dst/tests/persistence_faults.rs +++ b/src/dst/tests/persistence_faults.rs @@ -355,6 +355,10 @@ fn delivered_records(complete: &str) -> Vec { clippy::too_many_lines, reason = "cut-resume scenario; two resuming subscribers, a swinging absorb boundary, the serial appends and the exact per-subscriber reconciliation form one causal sequence; helper phases would hide which reconnect skipped a durable record" )] +#[expect( + clippy::excessive_nesting, + reason = "cut_resume_never_skips_a_durable_record; the fixture nests the gap diagnostics inside the per-subscriber failure report; flattening them would separate the context lines from the gap they explain" +)] #[tokio::test(flavor = "multi_thread", worker_threads = 8)] async fn cut_resume_never_skips_a_durable_record() { let _l = gap_lock().lock().await; // shared failpoint schedule diff --git a/src/dst/tests/quota_enforcement.rs b/src/dst/tests/quota_enforcement.rs index a8dc7b6f..9ba49361 100644 --- a/src/dst/tests/quota_enforcement.rs +++ b/src/dst/tests/quota_enforcement.rs @@ -810,6 +810,10 @@ async fn catalog_failure_fails_the_stream_seed_closed() { /// Observed through the quota registry on the deployment tenant: the /// probe reservation at a cap of 1 succeeds only if BOTH the fork's /// own delete and the cascaded source tombstone released. +#[expect( + clippy::let_underscore_must_use, + reason = "fork_cascade_hard_delete_releases_the_stream_slot; the fixture admits once only to seed the project's tracked slot; the guard it returns is dropped on purpose so the seed occupies nothing" +)] #[tokio::test(flavor = "multi_thread", worker_threads = 4)] async fn fork_cascade_hard_delete_releases_the_stream_slot() { let (state, addr) = http_rig(mem()).await; diff --git a/src/dst/tests/reads_history.rs b/src/dst/tests/reads_history.rs index 2af77d48..f66c35b4 100644 --- a/src/dst/tests/reads_history.rs +++ b/src/dst/tests/reads_history.rs @@ -49,6 +49,10 @@ async fn the_first_advance_seals_the_history_layout() { __maint, ); + #[expect( + clippy::excessive_nesting, + reason = "wait_absorbed; the fixture nests the absorbed-frontier read and its verdict inside the poll loop; flattening them would separate the verdict from the frontier it reads" + )] async fn wait_absorbed( engine: &Arc, hash: [u8; 16], diff --git a/src/dst/tests/reads_ring.rs b/src/dst/tests/reads_ring.rs index 29828a3a..e51b25d1 100644 --- a/src/dst/tests/reads_ring.rs +++ b/src/dst/tests/reads_ring.rs @@ -34,6 +34,10 @@ fn window(from: u64, to: u64, max_bytes: usize) -> crate::shard::RingScan { clippy::disallowed_methods, reason = "ring ordering fixture; the appender is joined before the delivered offsets are compared; it must append concurrently with the parked waiter" )] +#[expect( + clippy::cast_possible_truncation, + reason = "ring_ordering_paging_and_duplicates_at_offset_level; the fixture's frame counts are small offsets it published itself; a checked conversion would only restate the fixture" +)] #[tokio::test(flavor = "multi_thread", worker_threads = 4)] async fn ring_ordering_paging_and_duplicates_at_offset_level() { let inner = mem(); @@ -288,6 +292,10 @@ async fn tail_ring_matches_the_db_scan_and_restarts_cold() { /// `read_merged`, is the 2026-07-27 boundary-race DST failure: records /// vanished from a `completed = true` page at exactly the sampled /// absorbed boundary. +#[expect( + clippy::excessive_nesting, + reason = "a_duplicate_absorbed_op_does_not_advance_the_trim; the fixture nests the absorbed poll inside the wait closure it builds per engine; flattening it would separate the poll from the engine it watches" +)] #[tokio::test(flavor = "multi_thread", worker_threads = 4)] async fn a_duplicate_absorbed_op_does_not_advance_the_trim() { let inner = mem(); diff --git a/src/dst/tests/request_topology_debt.rs b/src/dst/tests/request_topology_debt.rs index 40fec0a1..fb3eecd3 100644 --- a/src/dst/tests/request_topology_debt.rs +++ b/src/dst/tests/request_topology_debt.rs @@ -10,6 +10,10 @@ use std::{sync::atomic::Ordering, time::Duration}; clippy::too_many_lines, reason = "topology debt scenario; cancelling the job, measuring the exact debt and opening a fresh read owner form one causal sequence; helper phases would hide which owner inherited the debt" )] +#[expect( + clippy::excessive_nesting, + reason = "r09a_cancelled_topology_job_leaves_exact_debt_for_a_fresh_read_owner; the fixture nests the settled-topology verdict inside the descriptor poll loop; flattening it would separate the verdict from the descriptor it reads" +)] #[tokio::test(flavor = "multi_thread", worker_threads = 4)] async fn r09a_cancelled_topology_job_leaves_exact_debt_for_a_fresh_read_owner() { let store = FaultStore::new(mem(), 911, FaultProfile::clean()); diff --git a/src/dst/tests/runtime_engine_lifecycle.rs b/src/dst/tests/runtime_engine_lifecycle.rs index 85bd7543..bc1f4676 100644 --- a/src/dst/tests/runtime_engine_lifecycle.rs +++ b/src/dst/tests/runtime_engine_lifecycle.rs @@ -49,6 +49,10 @@ async fn ready_rig() -> super::fixture_http::HttpRig { rig } +#[expect( + clippy::excessive_nesting, + reason = "r17a_each_required_engine_exit_changes_real_health_and_readyz; the fixture nests the exit wait inside the timeout that bounds it inside the test; flattening it would separate the wait from the bound it must respect" +)] #[tokio::test(flavor = "multi_thread", worker_threads = 4)] async fn r17a_each_required_engine_exit_changes_real_health_and_readyz() { let independent = ready_rig().await; diff --git a/src/dst/tests/runtime_open_gate.rs b/src/dst/tests/runtime_open_gate.rs index b86f943e..f2d0affd 100644 --- a/src/dst/tests/runtime_open_gate.rs +++ b/src/dst/tests/runtime_open_gate.rs @@ -55,6 +55,10 @@ async fn seed_untrimmed_wal(store: Arc, prefix: &str, records: clippy::disallowed_methods, reason = "reopen storm reproduction; the detached open is the defect being reproduced and its abandonment is counted through the fenced opens and the empty serving map; owning the open would remove the storm the scenario exists to reproduce" )] +#[expect( + clippy::let_underscore_must_use, + reason = "naive_get_or_open; the fixture's opener hands the engine to whichever client still waits, and a send with no receiver means that client already timed out; that disconnect is the storm under test" +)] async fn naive_get_or_open( lock: &tokio::sync::Mutex<()>, shards: &std::sync::RwLock>>, @@ -133,6 +137,10 @@ async fn naive_get_or_open( /// storm's signature from docs/SOAK-REGIONS.md, scaled down: WAL read /// amplification ≥ 3× the WAL itself, multiple writers opened and fenced, /// and — the wedge — the serving map STILL empty when the dust settles. +#[expect( + clippy::let_underscore_must_use, + reason = "reopen_storm_reproduces_the_eu_central_wedge; the fixture drops each client's future at its timeout on purpose, exactly as the handler does; the outcome it discards is the disconnect under test" +)] #[tokio::test(flavor = "current_thread", start_paused = true)] async fn reopen_storm_reproduces_the_eu_central_wedge() { let inner = mem(); @@ -334,12 +342,10 @@ async fn idle_engine_store_traffic_is_bounded_by_the_poll_cadence() { manifest_poll_interval: std::time::Duration::from_millis( crate::DEFAULT_MANIFEST_POLL_MS, ), - compactor_options: { - let mut co = slatedb::config::CompactorOptions::default(); - co.poll_interval = - std::time::Duration::from_millis(crate::DEFAULT_COMPACTOR_POLL_MS); - Some(co) - }, + compactor_options: Some(slatedb::config::CompactorOptions { + poll_interval: std::time::Duration::from_millis(crate::DEFAULT_COMPACTOR_POLL_MS), + ..Default::default() + }), ..Default::default() }) .build() @@ -514,6 +520,10 @@ async fn health_reports_unready_when_no_shard_has_ever_opened() { /// An engine that keeps dying young must meet an escalating holdoff, not /// an eager reopen: rapid open→die cycles against a sick store ARE the /// storm, whatever kills the engine. +#[expect( + clippy::excessive_nesting, + reason = "open_gate_escalates_holdoff_for_engines_that_die_young; the fixture nests the retry sleep inside the wait arm of its open loop; flattening it would separate the sleep from the holdoff it honours" +)] #[tokio::test(flavor = "current_thread", start_paused = true)] async fn open_gate_escalates_holdoff_for_engines_that_die_young() { use crate::sharddir::{OpenGate, OpenOutcome}; @@ -584,6 +594,10 @@ async fn open_gate_escalates_holdoff_for_engines_that_die_young() { /// eu-central-1 with an open looping in slatedb compactions recovery for /// 20+ minutes. One open, 648 coalesced waiters, zero storm — and an /// unavailable shard with no path back. +#[expect( + clippy::let_underscore_must_use, + reason = "a_hung_open_is_deadlined_and_its_late_engine_reaped; the permit is the park itself and is released the moment the test grants it; a held permit would keep the opener parked after release" +)] #[tokio::test(flavor = "current_thread", start_paused = true)] async fn a_hung_open_is_deadlined_and_its_late_engine_reaped() { use crate::sharddir::{OpenGate, OpenOutcome}; diff --git a/src/dst/tests/runtime_sweep.rs b/src/dst/tests/runtime_sweep.rs index c470258b..b95d5581 100644 --- a/src/dst/tests/runtime_sweep.rs +++ b/src/dst/tests/runtime_sweep.rs @@ -8,6 +8,10 @@ use std::sync::Arc; /// Drain billing debt until the sweep's own probes read clean, so the /// retention decision under test is the MAINTENANCE one. +#[expect( + clippy::let_underscore_must_use, + reason = "drain_billing_clean; the fixture drains billing debt until its own probes read clean; each pass's result is irrelevant to the cleanliness it polls for" +)] async fn drain_billing_clean(state: &Arc, prefixes: &[&str]) { for _ in 0..200 { let _ = crate::billing::drain_once(state).await; @@ -690,6 +694,10 @@ async fn tombstone_walk_peak_residency_stays_under_the_budget() { clippy::too_many_lines, reason = "walk fairness scenario; two shards' pinned debt, the occupied budget and the alternating walk form one causal sequence; helper phases would hide which shard the walk starved" )] +#[expect( + clippy::excessive_nesting, + reason = "tombstone_walk_fairness_under_occupied_budget; the fixture nests the pin request inside the first-seen check of the shard walk; flattening it would separate the pin from the shard it occupies" +)] #[tokio::test(flavor = "multi_thread", worker_threads = 4)] async fn tombstone_walk_fairness_under_occupied_budget() { let _serial = sweep_lock().lock().await; @@ -815,7 +823,10 @@ async fn tombstone_walk_fairness_under_occupied_budget() { ); } -#[allow(non_snake_case)] +#[allow( + non_snake_case, + reason = "WALK_CLOSE_SUBMITS_SNAPSHOT; the snapshot is spelled as the constant it stands in for so the assertion reads as the invariant it pins; a snake-case name would hide that it is a fixed value" +)] fn WALK_CLOSE_SUBMITS_SNAPSHOT() -> u64 { crate::billing::WALK_CLOSE_SUBMITS.load(std::sync::atomic::Ordering::Relaxed) } diff --git a/src/dst/tests/security_freshness.rs b/src/dst/tests/security_freshness.rs index f2b2b1b5..9cf819bb 100644 --- a/src/dst/tests/security_freshness.rs +++ b/src/dst/tests/security_freshness.rs @@ -56,6 +56,10 @@ impl LeaseRig { fn revoked(&mut self) -> bool { self.watch.revoked_with_clock(&self.state, &self.clock) } + #[expect( + clippy::fn_params_excessive_bools, + reason = "LeaseRig::publish; the fixture publishes the policy and the grants as two independent switches the scenarios toggle separately; an enum would restate two booleans" + )] fn publish(&mut self, policy: bool, grants: bool) { self.version += 1; if policy { diff --git a/src/dst/tests/security_isolation.rs b/src/dst/tests/security_isolation.rs index 5f7ad164..6d24ecb4 100644 --- a/src/dst/tests/security_isolation.rs +++ b/src/dst/tests/security_isolation.rs @@ -232,6 +232,10 @@ async fn one_cell_serves_two_projects_with_full_isolation() { clippy::disallowed_methods, reason = "noisy-neighbor fixture; the hostile and compliant campaigns are joined together before their outcomes are compared; they must run concurrently to contend on one cell" )] +#[expect( + clippy::excessive_nesting, + reason = "noisy_neighbor_cannot_degrade_a_compliant_project; the fixture nests each tenant's request loop inside the task that runs it concurrently with the other tenant; flattening them would separate the loops from the concurrency under test" +)] #[tokio::test(flavor = "multi_thread", worker_threads = 4)] async fn noisy_neighbor_cannot_degrade_a_compliant_project() { const PRIV: &str = include_str!("../fixtures/mt-test-rsa.pem"); diff --git a/src/dst/tests/sse_delivery.rs b/src/dst/tests/sse_delivery.rs index 67068c48..2b037701 100644 --- a/src/dst/tests/sse_delivery.rs +++ b/src/dst/tests/sse_delivery.rs @@ -37,6 +37,10 @@ async fn sse_send_disconnects_a_stalled_subscriber() { clippy::too_many_lines, reason = "lineage delivery scenario; subscribing from offset zero, splitting and receiving every pre-split and post-split record form one causal sequence; helper phases would hide which record the subscriber skipped" )] +#[expect( + clippy::excessive_nesting, + reason = "sse_follows_lineage_across_split; the fixture nests the line scan inside the chunk scan of each read; flattening it would separate the control frames from the chunk that carries them" +)] #[tokio::test(flavor = "multi_thread", worker_threads = 4)] async fn sse_follows_lineage_across_split() { use tokio::io::{AsyncReadExt, AsyncWriteExt}; @@ -168,6 +172,10 @@ async fn sse_follows_lineage_across_split() { clippy::too_many_lines, reason = "signed control scenario; the product control frames, their signed key cursors and the resumed subscription form one causal sequence; helper phases would hide which frame carried a raw cursor" )] +#[expect( + clippy::excessive_nesting, + reason = "product_sse_controls_carry_signed_cursors; the fixture nests the line scan inside the chunk scan of each read; flattening it would separate the control frames from the chunk that carries them" +)] #[tokio::test(flavor = "multi_thread", worker_threads = 4)] async fn product_sse_controls_carry_signed_cursors() { use tokio::io::{AsyncReadExt, AsyncWriteExt}; diff --git a/src/dst/trace_store.rs b/src/dst/trace_store.rs index 75cbc535..c615f0aa 100644 --- a/src/dst/trace_store.rs +++ b/src/dst/trace_store.rs @@ -182,7 +182,10 @@ struct TraceState { } impl TraceState { - #[allow(clippy::too_many_arguments)] + #[expect( + clippy::too_many_arguments, + reason = "TraceState::event; an event row takes the sequence, kind, operation, path, size, outcome, hash and detail as the tracer observed them; a row struct is what it builds" + )] fn event( &self, seq: u64, @@ -217,6 +220,10 @@ impl TraceState { /// abandoned by async cancellation between dispatch and completion, /// leaving a permanent Pending event and a stuck active entry that /// made `reset()` refuse forever). + #[expect( + clippy::too_many_arguments, + reason = "TraceState::begin_operation; an operation opens with the kind, operation, path, size, hash and detail the store call carried; an operation struct is the event it records" + )] fn begin_operation( self: &Arc, op: StoreOp, @@ -225,7 +232,7 @@ impl TraceState { content_hash: Option, detail: Option, ) -> TraceOperation { - let ev = |seq| { + let ev = move |seq| { self.event( seq, TraceEventKind::Operation, @@ -233,8 +240,8 @@ impl TraceState { path, bytes, TraceOutcome::Pending, - content_hash.clone(), - detail.clone(), + content_hash, + detail, ) }; let mut log = self.log.lock().unwrap(); @@ -270,6 +277,10 @@ impl TraceState { /// Push an already-resolved observation (delete-stream items are /// complete facts at the moment they pass through). + #[expect( + clippy::too_many_arguments, + reason = "TraceState::observe; an observation takes the kind, operation, path, detail and outcome as the tracer resolved them; an observation struct is the row it appends" + )] fn observe( &self, kind: TraceEventKind, @@ -420,7 +431,11 @@ impl TraceStore { /// Explicit knobs. `content_hashes` opts into retaining a 16-hex-char /// sha256 prefix of each put payload; payload bytes themselves are /// never retained either way. - pub fn with_options( + #[expect( + clippy::fn_params_excessive_bools, + reason = "TraceStore::with_options; redaction and content hashing are two independent retention switches the harness sets separately; an options enum would restate two booleans" + )] + pub(crate) fn with_options( inner: Arc, redact: bool, content_hashes: bool, @@ -631,6 +646,10 @@ impl ObjectStore for TraceStore { /// (PR 3.2): while it is alive — consuming inputs, producing /// outputs — `reset()` refuses; exhaustion or drop retires the /// lifetime exactly once. + #[expect( + clippy::excessive_nesting, + reason = "TraceStore::delete_stream; the traced unfold nests each result's observation inside the poll of the inner stream; flattening it would separate the observation from the result it records" + )] fn delete_stream( &self, locations: futures_util::stream::BoxStream<'static, OsResult>, diff --git a/src/dst/trace_store_tests/concurrency.rs b/src/dst/trace_store_tests/concurrency.rs index 05511b75..33570b35 100644 --- a/src/dst/trace_store_tests/concurrency.rs +++ b/src/dst/trace_store_tests/concurrency.rs @@ -14,6 +14,10 @@ use std::sync::Arc; /// lock) this interleaving could push events out of id order, /// completions then found the wrong slot, both events stayed /// Pending, and `reset()` panicked forever. +#[expect( + clippy::excessive_nesting, + reason = "concurrent_begins_with_reverse_finishes_resolve_every_event_exactly_once; the fixture nests each contender's begin inside the scoped thread it spawns inside the barrier scope; flattening it would separate the contention from the threads that stage it" +)] #[test] fn concurrent_begins_with_reverse_finishes_resolve_every_event_exactly_once() { let s = TraceStore::verbatim(Arc::new(object_store::memory::InMemory::new())); @@ -66,6 +70,10 @@ fn concurrent_begins_with_reverse_finishes_resolve_every_event_exactly_once() { /// observes the active lifetime and refuses. After joining, nothing /// is active and nothing is Pending — deterministically, in every /// round. +#[expect( + clippy::let_underscore_must_use, + reason = "reset_racing_with_begin_cannot_orphan_an_operation; a refused reset is a legal outcome of the race the fixture stages; the assertions that follow check the invariants a refusal must still keep" +)] #[test] fn reset_racing_with_begin_cannot_orphan_an_operation() { let s = TraceStore::verbatim(Arc::new(object_store::memory::InMemory::new())); diff --git a/src/dst/trace_store_tests/mod.rs b/src/dst/trace_store_tests/mod.rs index 63125256..5bb04e44 100644 --- a/src/dst/trace_store_tests/mod.rs +++ b/src/dst/trace_store_tests/mod.rs @@ -75,6 +75,10 @@ impl ObjectStore for DeleteSpy { async fn copy_opts(&self, from: &ObjPath, to: &ObjPath, opts: CopyOptions) -> OsResult<()> { self.inner.copy_opts(from, to, opts).await } + #[expect( + clippy::excessive_nesting, + reason = "DeleteSpy::delete_stream; the scripted delete nests the consumed count inside the location match inside its unfold loop; flattening it would separate the count from the location it consumes" + )] fn delete_stream( &self, locations: futures_util::stream::BoxStream<'static, OsResult>, diff --git a/src/dst/trace_store_tests/streams.rs b/src/dst/trace_store_tests/streams.rs index a98c6eaf..849fb48b 100644 --- a/src/dst/trace_store_tests/streams.rs +++ b/src/dst/trace_store_tests/streams.rs @@ -10,6 +10,10 @@ use object_store::{ObjectStore, PutOptions, PutPayload}; /// alternative is silent misattribution of the late completion. #[tokio::test] #[should_panic(expected = "while operations are active")] +#[expect( + clippy::disallowed_methods, + reason = "reset_refuses_while_in_flight; the fixture leaks the abandoned stream on purpose so its guard never runs and the operation stays in flight; dropping it would finish the very operation the refusal is about" +)] async fn reset_refuses_while_in_flight() { use futures_util::StreamExt; let s = TraceStore::new(mem()); diff --git a/src/failpoints.rs b/src/failpoints.rs index 494daf65..2fe13215 100644 --- a/src/failpoints.rs +++ b/src/failpoints.rs @@ -102,7 +102,11 @@ impl Fp { /// The site contract: WHERE the point fires, stated as the /// window it opens. This is the enumerable registry the DST /// program audits against. - pub fn site(self) -> &'static str { + #[expect( + clippy::too_many_lines, + reason = "Fp::site; the site registry states every failpoint's window in the one match the DST program audits; splitting it would separate the sites from the registry that enumerates them" + )] + pub(crate) fn site(self) -> &'static str { match self { Fp::StopAfterTombstone => { "delete cascade: after the named generation is tombstoned \ @@ -233,9 +237,11 @@ fn active(fp: Fp) -> bool { ACTIVE[fp.idx()].load(std::sync::atomic::Ordering::Acquire) > 0 } -fn reg() -> &'static Mutex> { - static M: std::sync::OnceLock>> = - std::sync::OnceLock::new(); +/// Every armed point, keyed by point and stream name. +type Registry = Mutex>; + +fn reg() -> &'static Registry { + static M: std::sync::OnceLock = std::sync::OnceLock::new(); M.get_or_init(|| Mutex::new(HashMap::new())) } diff --git a/src/history/canonical_span.rs b/src/history/canonical_span.rs index df867e90..014b9638 100644 --- a/src/history/canonical_span.rs +++ b/src/history/canonical_span.rs @@ -25,7 +25,10 @@ impl ResultPage { true } } -#[allow(clippy::too_many_arguments)] +#[expect( + clippy::too_many_arguments, + reason = "read; the canonical span read takes the partition, route, incarnation, range, filter, budget and sink the gather planned separately; a request struct would restate the plan per span" +)] pub(super) async fn read( part: &Arc, route: RouteHash, diff --git a/src/history/controller_tests.rs b/src/history/controller_tests.rs index 2bf0cdf9..af569ba2 100644 --- a/src/history/controller_tests.rs +++ b/src/history/controller_tests.rs @@ -4,6 +4,14 @@ use crate::shard::{AppendFinish, AppendReq, ShardConfig}; use bytes::Bytes; use std::sync::atomic::Ordering; +#[expect( + clippy::too_many_lines, + reason = "active_absorber_cancel; the fixture stages the engine, the held store, the absorber and its cancellation in the order the scenario requires; splitting it would separate the stages from the cancellation they set up" +)] +#[expect( + clippy::let_underscore_must_use, + reason = "active_absorber_cancel; the fixture closes the database and partition on the way out; a failed close leaves nothing the assertions depend on" +)] async fn active_absorber_cancel(hold_store: bool) { let shard_store: Arc = Arc::new(object_store::memory::InMemory::new()); let data_store = FaultStore::uniform( diff --git a/src/history/postings_validation_tests.rs b/src/history/postings_validation_tests.rs index 26f223c0..8b4441c5 100644 --- a/src/history/postings_validation_tests.rs +++ b/src/history/postings_validation_tests.rs @@ -160,6 +160,14 @@ async fn o4a_valid_page_seams_and_match_free_progress_remain_usable() { db.close().await.unwrap(); } +#[expect( + clippy::cast_possible_truncation, + reason = "raw_page; the fixture's run counts are small tables it wrote itself; a checked conversion would only restate the fixture" +)] +#[expect( + clippy::excessive_nesting, + reason = "raw_page; the fixture nests the varint continuation bit inside the per-field encoding loop of each run; flattening it would separate the bit from the field it continues" +)] fn raw_page(first: u64, end: u64, total: u64, runs: &[[u64; 4]]) -> Vec { let mut value = vec![1, 0]; value.extend_from_slice(&first.to_le_bytes()); diff --git a/src/history/worker.rs b/src/history/worker.rs index ac4eeb1e..9ad791d0 100644 --- a/src/history/worker.rs +++ b/src/history/worker.rs @@ -303,6 +303,10 @@ impl Absorber { } v2_lane } + #[expect( + clippy::excessive_nesting, + reason = "Absorber::gather_due; the outcome handling nests the per-stream bookkeeping inside the advanced, partial, no-work and failed arms of one gather; flattening it would separate the bookkeeping from the outcome that decides it" + )] async fn gather_due( &self, pending: &mut HashMap<[u8; 16], PendingAbsorb>, diff --git a/src/http.rs b/src/http.rs index b94ad95e..94375aeb 100644 --- a/src/http.rs +++ b/src/http.rs @@ -34,6 +34,10 @@ fn append_position(seg: u32, next: u64, materialized: bool) -> String { tail_token(next) } } +#[expect( + clippy::unwrap_used, + reason = "render_append; the response builder carries only the fixed headers the render sets and the position header is ASCII digits and punctuation, so neither can fail; fallible builds would add branches no append reaches" +)] pub(crate) fn render_append(result: crate::application::append::AppendResult) -> Response { match result { Ok(out) => { @@ -807,6 +811,11 @@ async fn get_segments( axum::Json(body).into_response() } +#[expect( + clippy::too_many_lines, + clippy::cast_possible_truncation, + reason = "debug_load; the load report gathers every runtime gauge into one JSON document stamped with Unix milliseconds that fit u64 for millions of years; splitting the report or checking the stamp would only restate the document" +)] async fn debug_load( State(state): State>, headers: HeaderMap, @@ -1268,6 +1277,11 @@ async fn internal_telemetry_append( /// per parked conn; a bounded max_buf_size holds the same fleet at /// ~44 KB, floor now dominated by task/future/slab overhead). /// max_buf bounds per-READ chunk size, not request body size. +#[expect( + clippy::disallowed_methods, + clippy::let_underscore_must_use, + reason = "serve_h1; each accepted connection is served by a task the listener's own JoinSet owns and joins at shutdown, and nodelay and connection errors are routine client behaviour; a supervised task per connection and handled results would restate what the JoinSet already owns" +)] pub(crate) async fn serve_h1( listener: tokio::net::TcpListener, app: axum::Router, @@ -1326,7 +1340,12 @@ pub(crate) async fn serve_h1( Ok(()) } -pub fn router(state: Arc) -> Router { +#[expect( + clippy::too_many_lines, + clippy::disallowed_methods, + reason = "router; the route table is one declaration so every path is visible in one place, and the debug abort spawns a bare task that ends the process itself; splitting the table or supervising the abort would separate the routes from the table and the abort from the death it causes" +)] +pub(crate) fn router(state: Arc) -> Router { Router::new() .route("/health", get(health_axum)) // R23-5 / R24-E: separate the two questions a platform asks. @@ -1643,6 +1662,10 @@ pub(crate) fn err_resp(status: StatusCode, code: &str, message: &str) -> Respons /// Commit-pipeline timing samples per shard: how long db.write took vs how /// long the group then waited for the durable watermark. Diagnostic only. +#[expect( + clippy::unwrap_used, + reason = "debug_timings; a poisoned timing ring may hold a half-recorded wait; recovering it could report a group that never completed" +)] async fn debug_timings(State(state): State>, headers: HeaderMap) -> Response { if !authorized(&state, &headers) { return err_resp( @@ -1726,8 +1749,10 @@ pub(crate) struct ReadParams { pub(crate) key: Option, // touch wait params pub(crate) cursor: Option, - #[allow(dead_code)] - // Retained in the pinned raw query DTO; touch observation has its own owner. + #[allow( + dead_code, + reason = "sig; retained in the pinned raw query DTO so the wire shape does not change; touch observation reads it through its own owner" + )] pub(crate) sig: Option, /// Internal page-budget override (product maxBytes). Skipped by /// serde so the raw query string can never set it. @@ -1777,6 +1802,10 @@ async fn ds_reserved() -> Response { /// Browser preflight for the catalog route (the wildcard product route /// answers its own inside product_entry). +#[expect( + clippy::unwrap_used, + reason = "product_preflight; the preflight response carries only fixed header values, so the builder cannot fail; a fallible build would add a branch no preflight reaches" +)] async fn product_preflight() -> Response { Response::builder() .status(StatusCode::NO_CONTENT) @@ -2133,6 +2162,10 @@ pub(crate) async fn product_entry_axum_inner( crate::product::with_product_cors(resp) } +#[expect( + clippy::too_many_arguments, + reason = "stream_entry; the raw entry takes every extractor axum resolved for the wildcard route; a request struct would restate the extractors" +)] async fn stream_entry( State(state): State>, Path(name): Path, @@ -2160,6 +2193,12 @@ async fn stream_entry( resp } +#[expect( + clippy::too_many_arguments, + clippy::too_many_lines, + clippy::unwrap_used, + reason = "stream_entry_inner; the raw entry takes every extractor axum resolved and dispatches every method from one match, and its preflight response carries only fixed headers; a request struct, a split or a fallible build would separate the dispatch from the extractors and the preflight from the method it answers" +)] async fn stream_entry_inner( State(state): State>, Path(name): Path, @@ -2457,6 +2496,11 @@ pub(crate) async fn product_delete( delete_stream(state, tenant.stream_ref(&name)).await } +#[expect( + clippy::too_many_lines, + clippy::unwrap_used, + reason = "create_stream; creation validates, admits and publishes in one sequence and its response carries only fixed headers; splitting it or a fallible build would separate the steps from the response that reports them" +)] pub(crate) async fn create_stream( state: Arc, project: crate::tenant::ProjectId, @@ -2641,18 +2685,6 @@ async fn delete_stream(state: Arc, sref: crate::tenant::TenantStreamRe Err(error) => creation_error_response(error), } } -#[cfg(test)] -pub(crate) async fn release_fork_ref_for_test( - state: &Arc, - source: crate::tenant::TenantStreamRef, - fork_id: &str, - epoch: &str, -) -> Result { - state - .creation_service() - .release_fork_ref(source, fork_id, epoch) - .await -} // ---- state-protocol touch surface (collapsible GET-per-key model) ---- @@ -2675,6 +2707,10 @@ fn parse_ts_hint(headers: &HeaderMap) -> Option { /// pending transition is a genuine user-closed stream and passes /// through. Pre-split streams (segments: None — the common case) take /// the core path directly with zero overhead. +#[expect( + clippy::too_many_arguments, + reason = "append; the append entry takes the state, descriptor, key, headers, body and producer parts as the handler resolved them; a request struct would exist only for this signature" +)] pub(crate) async fn append( state: Arc, sref: crate::tenant::TenantStreamRef, @@ -2697,6 +2733,12 @@ pub(crate) async fn append( .await, ) } +#[expect( + clippy::too_many_arguments, + clippy::too_many_lines, + clippy::excessive_nesting, + reason = "append_typed; the typed append takes the request parts as the handler parsed them and validates, drains, admits and executes them in one sequence whose drain cap nests inside the body walk; a request struct, a split or a flattened drain would separate the parts from the sequence that orders them" +)] pub(crate) async fn append_typed( state: Arc, sref: crate::tenant::TenantStreamRef, @@ -2821,29 +2863,15 @@ pub(crate) async fn append_typed( pub(crate) use crate::application::lifecycle::SealAuthz; -#[cfg(test)] -pub(crate) async fn fence_segment_for_key( - state: &Arc, - sref: &crate::tenant::TenantStreamRef, - epoch: &str, - key: &str, - generation: u64, -) -> Result { - crate::application::lifecycle::fence_segment_for_key( - &state.lifecycle_service(), - sref, - epoch, - key, - generation, - ) - .await -} - #[cfg(test)] pub(crate) use crate::application::read::TEST_ASSERT_KEYED_DENSE; #[cfg(test)] pub(crate) use crate::application::read::read_merged; +#[expect( + clippy::cast_sign_loss, + reason = "interval_cursor; now_ms is a non-negative Unix millisecond stamp; a checked conversion would only restate the clock" +)] pub(crate) fn interval_cursor(req_cursor: Option<&str>) -> String { interval_cursor_at(now_ms() as u64, req_cursor) } @@ -2993,7 +3021,6 @@ pub(crate) enum SseSurface { /// `ctl_at` is the control's cursor offset: mid-batch events name /// off+1; the batch-LAST event names the batch's scan_next so a /// resuming client skips trailing non-matching records (#272). -#[allow(clippy::too_many_arguments)] /// L3a field wedge: the instance's file-descriptor limit (~2k) was /// the wall at ~1.5k parked SSE + writer + S3 sockets — EMFILE stalls /// accepts, WAL->S3 flushes and therefore appends, while parked @@ -3047,6 +3074,10 @@ pub(crate) static RUNTIME_LAST_TICK_MS: std::sync::atomic::AtomicI64 = pub(crate) static RUNTIME_MAX_GAP_MS: std::sync::atomic::AtomicI64 = std::sync::atomic::AtomicI64::new(0); +#[expect( + clippy::let_underscore_must_use, + reason = "spawn_runtime_watchdog; the supervisor rejects a spawn only while it is stopping, when no watchdog tick is owed; a rejected watchdog has nothing left to police" +)] pub(crate) fn spawn_runtime_watchdog(tasks: &crate::tasks::TaskSupervisor) { let _ = tasks.spawn( "runtime-watchdog", @@ -3071,7 +3102,14 @@ pub(crate) fn spawn_runtime_watchdog(tasks: &crate::tasks::TaskSupervisor) { /// The single-segment SSE dispatch: the livefeed session (round 11.8: /// the only engine) with the typed segmented-at-dispatch retryable. -#[allow(clippy::too_many_arguments)] +#[expect( + clippy::too_many_arguments, + reason = "sse_response; the single-segment SSE dispatch takes the state, descriptor, key, epoch, engine, handle and start the raw entry resolved; a request struct would exist only for this signature" +)] +#[expect( + clippy::let_underscore_must_use, + reason = "sse_response; scheduling the topology resume is best effort and the retryable answer is returned regardless; a handled result would only restate the retry the client makes" +)] async fn sse_response( state: Arc, desc: StreamDesc, @@ -3322,63 +3360,15 @@ async fn internal_segment_read( // ---- internal metrics stream flusher (old-impl pattern: __stream_metrics__) ---- -#[cfg(test)] -mod tests { - - /// interval_cursor_at is a pure function of (now, request cursor): - /// exact outputs for fixed instants, both arms and both fallbacks. - #[test] - fn interval_cursor_at_is_exact() { - let now = 90_000_000 * 20_000; // interval 90_000_000 exactly - assert_eq!(interval_cursor_at(now, None), "90000000"); - // request cursor at/above the current interval echoes r + 1: - assert_eq!(interval_cursor_at(now, Some("90000000")), "90000001"); - assert_eq!(interval_cursor_at(now, Some("95000000")), "95000001"); - // long-past request cursor yields the current interval: - assert_eq!(interval_cursor_at(now, Some("5")), "90000000"); - // unparseable request cursor likewise: - assert_eq!(interval_cursor_at(now, Some("junk")), "90000000"); - // epoch boundary: - assert_eq!(interval_cursor_at(0, None), "0"); - assert_eq!(interval_cursor_at(19_999, None), "0"); - assert_eq!(interval_cursor_at(20_000, None), "1"); - } - - // Round-19 fleet-contract: hierarchical names with characters that - // are structural in a URL must survive a relay intact. - #[test] - fn stream_names_encode_for_peer_paths() { - assert_eq!( - encode_stream_name_path("customers/acme/orders"), - "customers/acme/orders", - "the hierarchy separator must survive" - ); - assert_eq!(encode_stream_name_path("a?b"), "a%3Fb"); - assert_eq!(encode_stream_name_path("a#b"), "a%23b"); - assert_eq!(encode_stream_name_path("a%b"), "a%25b"); - assert_eq!(encode_stream_name_path("a b"), "a%20b"); - // UTF-8 is encoded byte-wise. - assert_eq!(encode_stream_name_path("é"), "%C3%A9"); - } - use super::*; -} - #[path = "http/read.rs"] mod read_adapter; pub(crate) use read_adapter::{meter_read_outcome, read_inner, read_payload, serve_read_sse}; -// Fixture adapters preserve existing scenario calls without making AppState a -// production application dependency. #[cfg(test)] -pub(crate) fn touch_ttl(state: &Arc, desc: &StreamDesc) { - let _ = state.creation_service().touch_ttl(desc); -} +#[path = "http/test_support.rs"] +mod test_support; #[cfg(test)] -impl AppState { - pub(crate) async fn engine_for_scaler(&self, hash: &[u8; 16]) -> Option> { - self.shards - .resolve(hash, crate::shard_directory::Adoption::Internal) - .await - .ok() - } -} +pub(crate) use test_support::{fence_segment_for_key, release_fork_ref_for_test, touch_ttl}; +#[cfg(test)] +#[path = "http/tests.rs"] +mod tests; diff --git a/src/http/test_support.rs b/src/http/test_support.rs new file mode 100644 index 00000000..c38aefec --- /dev/null +++ b/src/http/test_support.rs @@ -0,0 +1,49 @@ +//! Fixture adapters for the HTTP surface: scenario entry points that keep +//! `AppState` out of the production application dependencies. +#![cfg(test)] +use super::*; + +pub(crate) async fn release_fork_ref_for_test( + state: &Arc, + source: crate::tenant::TenantStreamRef, + fork_id: &str, + epoch: &str, +) -> Result { + state + .creation_service() + .release_fork_ref(source, fork_id, epoch) + .await +} + +pub(crate) async fn fence_segment_for_key( + state: &Arc, + sref: &crate::tenant::TenantStreamRef, + epoch: &str, + key: &str, + generation: u64, +) -> Result { + crate::application::lifecycle::fence_segment_for_key( + &state.lifecycle_service(), + sref, + epoch, + key, + generation, + ) + .await +} + +#[expect( + clippy::let_underscore_must_use, + reason = "touch_ttl; the fixture touches the TTL of its own descriptor; a failed touch leaves nothing the scenario depends on" +)] +pub(crate) fn touch_ttl(state: &Arc, desc: &StreamDesc) { + let _ = state.creation_service().touch_ttl(desc); +} +impl AppState { + pub(crate) async fn engine_for_scaler(&self, hash: &[u8; 16]) -> Option> { + self.shards + .resolve(hash, crate::shard_directory::Adoption::Internal) + .await + .ok() + } +} diff --git a/src/http/tests.rs b/src/http/tests.rs new file mode 100644 index 00000000..71f7f8dd --- /dev/null +++ b/src/http/tests.rs @@ -0,0 +1,39 @@ +//! The HTTP surface's unit tests. +#![cfg(test)] + +/// interval_cursor_at is a pure function of (now, request cursor): +/// exact outputs for fixed instants, both arms and both fallbacks. +#[test] +fn interval_cursor_at_is_exact() { + let now = 90_000_000 * 20_000; // interval 90_000_000 exactly + assert_eq!(interval_cursor_at(now, None), "90000000"); + // request cursor at/above the current interval echoes r + 1: + assert_eq!(interval_cursor_at(now, Some("90000000")), "90000001"); + assert_eq!(interval_cursor_at(now, Some("95000000")), "95000001"); + // long-past request cursor yields the current interval: + assert_eq!(interval_cursor_at(now, Some("5")), "90000000"); + // unparseable request cursor likewise: + assert_eq!(interval_cursor_at(now, Some("junk")), "90000000"); + // epoch boundary: + assert_eq!(interval_cursor_at(0, None), "0"); + assert_eq!(interval_cursor_at(19_999, None), "0"); + assert_eq!(interval_cursor_at(20_000, None), "1"); +} + +// Round-19 fleet-contract: hierarchical names with characters that +// are structural in a URL must survive a relay intact. +#[test] +fn stream_names_encode_for_peer_paths() { + assert_eq!( + encode_stream_name_path("customers/acme/orders"), + "customers/acme/orders", + "the hierarchy separator must survive" + ); + assert_eq!(encode_stream_name_path("a?b"), "a%3Fb"); + assert_eq!(encode_stream_name_path("a#b"), "a%23b"); + assert_eq!(encode_stream_name_path("a%b"), "a%25b"); + assert_eq!(encode_stream_name_path("a b"), "a%20b"); + // UTF-8 is encoded byte-wise. + assert_eq!(encode_stream_name_path("é"), "%C3%A9"); +} +use super::*; diff --git a/src/main.rs b/src/main.rs index 0cb49aab..5ce9cc0d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,6 +8,10 @@ #[global_allocator] static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc; +#[expect( + clippy::disallowed_methods, + reason = "main; the Tokio worker floor is process configuration read once before any runtime, supervisor or configuration owner exists; routing it through an owner would need the runtime it sizes" +)] fn main() -> anyhow::Result<()> { tracing_subscriber::fmt() .with_env_filter( diff --git a/src/mt_lint.rs b/src/mt_lint.rs index 703f2632..61a0c163 100644 --- a/src/mt_lint.rs +++ b/src/mt_lint.rs @@ -147,6 +147,10 @@ impl<'a> Lint<'a> { } } + #[expect( + clippy::excessive_nesting, + reason = "Lint::check_signature; the signature walk nests the type and name checks inside each typed input; flattening it would separate the checks from the input they classify" + )] fn check_signature(&mut self, line: usize, name: &str, sig: &syn::Signature) { let mut has_sref_param = false; let mut name_params: Vec<(String, String)> = Vec::new(); @@ -357,6 +361,10 @@ fn multitenancy_identity_lint() { // Recursive: new submodules are scanned the day they appear. // src/dst/ (harness + tests) and src/bin/ (single-tenant client // tools) stay out by directory. + #[expect( + clippy::excessive_nesting, + reason = "walk; the directory walk nests the excluded-tree check inside the directory branch; flattening it would separate the exclusion from the directory it prunes" + )] fn walk(root: &std::path::Path, dir: &std::path::Path, out: &mut Vec) { for e in std::fs::read_dir(dir).unwrap().filter_map(|e| e.ok()) { let p = e.path(); diff --git a/src/offsets.rs b/src/offsets.rs index d5676d62..ed44f622 100644 --- a/src/offsets.rs +++ b/src/offsets.rs @@ -71,7 +71,10 @@ fn decode_char(ch: char) -> Option { 'I' | 'i' | 'L' | 'l' => Some(1), _ => { let up = ch.to_ascii_uppercase() as u8; - ALPHABET.iter().position(|&a| a == up).map(|p| p as u8) + ALPHABET + .iter() + .position(|&a| a == up) + .and_then(|p| u8::try_from(p).ok()) } } } diff --git a/src/product_cursor.rs b/src/product_cursor.rs index 86eafa13..a84bbfc2 100644 --- a/src/product_cursor.rs +++ b/src/product_cursor.rs @@ -44,6 +44,10 @@ pub(crate) struct KeyCursor { /// stream key and epoch — a cursor minted for one project's stream /// can never authenticate against another project's same-named, /// same-keyed stream. +#[expect( + clippy::expect_used, + reason = "mac_key; HMAC-SHA256 accepts a key of any length, so construction from the derived key cannot fail; a fallible path would add a branch no key reaches" +)] fn mac_key(project: &crate::tenant::ProjectId, key: &StreamKey, epoch: &[u8; 16]) -> [u8; 32] { use hmac::{Hmac, Mac}; use sha2::Sha256; @@ -56,6 +60,10 @@ fn mac_key(project: &crate::tenant::ProjectId, key: &StreamKey, epoch: &[u8; 16] out } +#[expect( + clippy::expect_used, + reason = "mac16; HMAC-SHA256 accepts a key of any length, so construction from the derived key cannot fail; a fallible path would add a branch no key reaches" +)] fn mac16(k: &[u8; 32], payload: &[u8]) -> [u8; MAC_LEN] { use hmac::{Hmac, Mac}; use sha2::Sha256; @@ -129,7 +137,7 @@ impl CatalogCursor { let pb = self.project.as_str().as_bytes(); let mut p = Vec::with_capacity(1 + 2 + pb.len() + self.last_name.len() + MAC_LEN); p.push(KIND_CATALOG_V1); - p.extend_from_slice(&(pb.len() as u16).to_le_bytes()); + p.extend_from_slice(&u16::try_from(pb.len()).unwrap_or(u16::MAX).to_le_bytes()); p.extend_from_slice(pb); p.extend_from_slice(self.last_name.as_bytes()); if let Some(k) = key { @@ -146,7 +154,11 @@ impl ScanCursor { p.push(KIND_SCAN_V2); p.extend_from_slice(&self.epoch); p.extend_from_slice(&self.map_version.to_le_bytes()); - p.extend_from_slice(&(self.segments.len() as u32).to_le_bytes()); + p.extend_from_slice( + &u32::try_from(self.segments.len()) + .unwrap_or(u32::MAX) + .to_le_bytes(), + ); for (id, end) in &self.segments { p.extend_from_slice(&id.to_le_bytes()); p.extend_from_slice(&end.to_le_bytes()); diff --git a/src/project_policy.rs b/src/project_policy.rs index 2d692512..6ee67df8 100644 --- a/src/project_policy.rs +++ b/src/project_policy.rs @@ -13,7 +13,10 @@ //! Stage 5 wires the real snapshot/delta feed without touching the //! verification logic. -#![allow(dead_code)] // consumed across MT Stages 2b/4/5 as wiring lands +#![allow( + dead_code, + reason = "project_policy; the policy types are consumed across MT Stages 2b/4/5 as their wiring lands; removing them now would re-add each one with its stage" +)] use std::collections::HashMap; use std::sync::Arc; diff --git a/src/quota.rs b/src/quota.rs index a46b47a3..079db74c 100644 --- a/src/quota.rs +++ b/src/quota.rs @@ -518,6 +518,10 @@ impl QuotaRegistry { clippy::unwrap_used, reason = "QuotaRegistry::admit; a poisoned entry or project map may be partially updated; recovery could mint fresh request credit or orphan charged state" )] + #[expect( + clippy::excessive_nesting, + reason = "QuotaRegistry::admit; admission nests the idle eviction inside the untracked-project branch of the tracker lookup; flattening it would separate the eviction from the refusal it forestalls" + )] pub(crate) fn admit( &self, project: &ProjectId, @@ -623,7 +627,11 @@ impl QuotaRegistry { clippy::unwrap_used, reason = "QuotaRegistry::admit_append; either poisoned bucket or its project map may contain an incomplete charge; recovery could admit beyond a limit or charge only half a batch" )] - pub fn admit_append( + #[expect( + clippy::too_many_arguments, + reason = "QuotaRegistry::admit_append; append admission takes the project, its quotas, the payload size and the clock parts separately as the request resolved them; a request struct would exist only for this signature" + )] + pub(crate) fn admit_append( &self, project: &ProjectId, quotas: &ProjectQuotas, diff --git a/src/runtime.rs b/src/runtime.rs index 79b35ef7..e4854286 100644 --- a/src/runtime.rs +++ b/src/runtime.rs @@ -47,6 +47,10 @@ impl TrustedNow { pub(crate) struct MonotonicNow(Duration); impl MonotonicNow { + #[expect( + clippy::cast_possible_truncation, + reason = "MonotonicNow::millis; the millisecond count is clamped to i64::MAX before the cast; a checked conversion would only restate the clamp" + )] pub(crate) fn millis(self) -> i64 { self.0.as_millis().min(i64::MAX as u128) as i64 } @@ -88,6 +92,10 @@ impl Default for SystemClock { } impl Clock for SystemClock { + #[expect( + clippy::cast_possible_truncation, + reason = "SystemClock::now; the Unix millisecond count stays below i64::MAX for hundreds of millions of years; a checked conversion would only restate that horizon" + )] fn now(&self) -> TrustedNow { TrustedNow( std::time::SystemTime::now() @@ -199,8 +207,9 @@ impl RuntimeCaps { /// Assemble from explicit implementations with ONE entropy source /// for both the boot id and later epochs (production goes through /// [`RuntimeCaps::production`]). - pub fn with(clock: Arc, entropy: Arc, instance: &str) -> Self { - Self::with_sources(clock, &*entropy, entropy.clone(), instance) + pub(crate) fn with(clock: Arc, entropy: Arc, instance: &str) -> Self { + let boot = entropy.clone(); + Self::with_sources(clock, &*boot, entropy, instance) } /// Assemble with DOMAIN-SEPARATED sources (PR 4.1): the boot id is @@ -296,6 +305,10 @@ impl ManualClock { } /// Ordinary passage of time: both domains move together. + #[expect( + clippy::cast_possible_truncation, + reason = "ManualClock::advance; test clock advances are small fixture durations; a checked conversion would only restate the fixture's scale" + )] pub(crate) fn advance(&self, by: Duration) { *self.inner.wall_ms.lock().unwrap() += by.as_millis() as i64; self.advance_monotonic(by); @@ -324,6 +337,10 @@ impl Clock for ManualClock { MonotonicNow(*self.inner.mono.lock().unwrap()) } + #[expect( + clippy::excessive_nesting, + reason = "ManualClock::sleep; the wake loop nests the deadline check between registering for the next advance and awaiting it; flattening it would separate the check from the registration that makes it race-free" + )] fn sleep(&self, d: Duration) -> futures_util::future::BoxFuture<'static, ()> { let inner = self.inner.clone(); let deadline = *inner.mono.lock().unwrap() + d; diff --git a/src/runtime/telemetry.rs b/src/runtime/telemetry.rs index c93f4331..100b90b3 100644 --- a/src/runtime/telemetry.rs +++ b/src/runtime/telemetry.rs @@ -74,6 +74,10 @@ mod tests { config } + #[expect( + clippy::excessive_nesting, + reason = "r10_telemetry_cache_progress_and_database_lifetimes_are_runtime_owned; the fixture nests the release wait inside the timeout that bounds it inside the test; flattening it would separate the wait from the bound it must respect" + )] #[tokio::test(flavor = "multi_thread", worker_threads = 2)] async fn r10_telemetry_cache_progress_and_database_lifetimes_are_runtime_owned() { let clock = Arc::new(ManualClock::at(1000)); diff --git a/src/scaler3.rs b/src/scaler3.rs index f9d5934f..be03333f 100644 --- a/src/scaler3.rs +++ b/src/scaler3.rs @@ -148,6 +148,13 @@ impl State { self.hot_keys.retain(|name, _| live.contains(name)); } + #[cfg_attr( + test, + expect( + clippy::excessive_nesting, + reason = "State::forget_previous_incarnation; the test-only visit counter nests inside the retain closure of the incarnation sweep; flattening it would separate the count from the sweep it audits" + ) + )] fn forget_previous_incarnation(&mut self, name: &crate::tenant::TenantStreamRef, epoch: &str) { #[cfg(test)] let mut visited = 0; @@ -365,11 +372,7 @@ fn evaluate_state( if let Some((k, _)) = top.top_share() { hot_updates .entry(name.clone()) - .and_modify(|prior| { - if k < prior.0 { - *prior = RoutingKeyHash(k); - } - }) + .and_modify(|prior| prior.0 = prior.0.min(k)) .or_insert(RoutingKeyHash(k)); } INEFFECTIVE_SPLIT_AVOIDED.fetch_add(1, std::sync::atomic::Ordering::Relaxed); @@ -788,6 +791,10 @@ mod tests { assert!(state.hot_keys.is_empty()); } + #[expect( + clippy::cast_possible_truncation, + reason = "segment_order_cannot_erase_a_hot_key_or_change_decisions; the fixture's segment ids are 0, 1 and 2; a checked conversion would only restate the fixture" + )] #[test] fn segment_order_cannot_erase_a_hot_key_or_change_decisions() { let name = test_desc("hot-and-cold").sref(); diff --git a/src/shard.rs b/src/shard.rs index 8c9bbe10..a4396194 100644 --- a/src/shard.rs +++ b/src/shard.rs @@ -70,6 +70,10 @@ pub(crate) fn record_key(hash: &[u8; 16], offset: u64) -> Vec { /// caveat: a pre-bitmask binary reads flags with `== 1`, so it would /// see a closed+v2 stream (flags=3) as open — acceptable for /// forward-only deployments, noted here because it is not zero. +#[expect( + clippy::cast_possible_truncation, + reason = "encode_tail; the producer sequence is bounded by the u16 width the tail row stores; a checked conversion would only restate the row format" +)] fn encode_tail(t: &TailFields) -> Vec { let seq = t.seq.as_deref().unwrap_or("").as_bytes(); let mut v = Vec::with_capacity(76 + seq.len()); @@ -171,28 +175,6 @@ pub(crate) fn decode_cursor(raw: &[u8]) -> Result { Ok(u64::from_le_bytes(bytes)) } -/// Test-only: encode a tail then STRIP the trailing exact-gauge field, -/// producing the pre-gauge layout older builds wrote. DST uses this to -/// prove the R26-4 open-time repair; production code never writes it. -#[cfg(test)] -pub(crate) fn encode_tail_without_gauge_for_tests(t: &TailFields) -> Vec { - let mut v = encode_tail(t); - v.truncate(v.len() - 8); - v -} - -#[cfg(test)] -pub(crate) fn decode_tail_for_tests(v: &[u8]) -> Option { - decode_tail(v) -} - -/// Test-only: the production tail encoder, exposed so golden tests can -/// pin the exact v3 byte layout without going through a shard engine. -#[cfg(test)] -pub(crate) fn encode_tail_for_tests(t: &TailFields) -> Vec { - encode_tail(t) -} - /// Per-routing-key Stream-Seq row (ROUTING-V3 §3.6): seq is scoped to /// the KEY, not the segment — a segment carries many keys' lanes. pub(crate) fn seq_key(hash: &[u8; 16], key_hash: &[u8; 16]) -> Vec { @@ -294,13 +276,6 @@ fn dirty_value(m: &StreamMaintenance) -> [u8; 32] { v } -/// Test-only: the production dirty-row encoder, exposed so golden tests -/// can pin the exact 32-byte LE layout. -#[cfg(test)] -pub(crate) fn dirty_value_for_tests(m: &StreamMaintenance) -> [u8; 32] { - dirty_value(m) -} - /// The one durable maintenance row per physical shard. /// /// Sits beside the dirty-stream index under the same sentinel, with tag @@ -390,6 +365,10 @@ impl ShardMaintenance { /// Seconds since maintenance last made durable progress, while a /// backlog is outstanding. Zero when there is nothing to do. + #[expect( + clippy::cast_sign_loss, + reason = "ShardMaintenance::no_progress_secs; the elapsed milliseconds are clamped at zero before the division; a checked conversion would only restate the clamp" + )] pub(crate) fn no_progress_secs(self, now_ms: i64) -> u64 { if self.unabsorbed_frame_bytes == 0 || self.last_progress_ms <= 0 { 0 @@ -653,7 +632,7 @@ pub(crate) struct StreamState { /// the ack offset for read-your-write. The hash backs the product /// surface's 409 producer_sequence_reused (same tuple, different /// request). - pub producers: HashMap<([u8; 16], String), (u64, u64, u64, [u8; 16])>, + pub producers: ProducerRows, /// Per-routing-key Stream-Seq lanes (ROUTING-V3 §3.6), loaded /// lazily from the durable `s` rows and applied by the committer. pub seqs: HashMap<[u8; 16], String>, @@ -889,7 +868,16 @@ pub(crate) enum AppendErr { Moved, } -pub enum CommitOp { +/// Producer rows keyed by (key hash, producer id): epoch, sequence, offset and request hash. +pub(crate) type ProducerRows = HashMap<([u8; 16], String), (u64, u64, u64, [u8; 16])>; +/// The lowest live consumer generation per (stream, consumer). +type ConsumerFences = Mutex>; + +#[expect( + clippy::large_enum_variant, + reason = "CommitOp; the append variant carries the request body and reply inline so the committer queue moves one allocation per op; boxing it would add a heap hop to the hottest path" +)] +pub(crate) enum CommitOp { Append(AppendReq), /// Close without payload, encryption key, producer lane, or billing placeholders. Close(CloseReq), @@ -1220,7 +1208,7 @@ pub(crate) struct ShardEngine { /// like the seal fences: it only has to outlive the queue that /// could contain stale ops; durably, dead generations are already /// harmless because generations live in the row keys. - consumer_fences: Mutex>, + consumer_fences: ConsumerFences, #[cfg(test)] fail_group_tripped: std::sync::atomic::AtomicUsize, #[cfg(test)] @@ -1333,6 +1321,10 @@ pub(crate) struct ShardEngine { pub timings: Mutex>, } +#[expect( + clippy::cast_possible_truncation, + reason = "now_ms; the Unix millisecond count stays below i64::MAX for hundreds of millions of years; a checked conversion would only restate that horizon" +)] pub(crate) fn now_ms() -> i64 { SystemTime::now() .duration_since(UNIX_EPOCH) @@ -1340,26 +1332,6 @@ pub(crate) fn now_ms() -> i64 { .unwrap_or(0) } -/// Test-only fault injection for the durable dirty-index scan, keyed by -/// shard prefix so concurrent tests cannot poison each other. The -/// object-store fault substrate cannot reach this path deterministically -/// (SlateDB retries store faults internally), and the absorber's -/// scan-retry loop is exactly the code under test. -#[cfg(test)] -fn dirty_scan_faults() -> &'static Mutex> { - static M: std::sync::OnceLock>> = std::sync::OnceLock::new(); - M.get_or_init(|| Mutex::new(HashMap::new())) -} - -/// Arrange for the next `n` dirty-index scans on `prefix` to fail. -#[cfg(test)] -pub(crate) fn inject_dirty_scan_faults(prefix: &str, n: u32) { - dirty_scan_faults() - .lock() - .unwrap() - .insert(prefix.to_string(), n); -} - impl ShardEngine { #[expect( clippy::too_many_lines, @@ -1377,6 +1349,11 @@ impl ShardEngine { clippy::unwrap_used, reason = "ShardEngine::start; a poisoned in-flight queue or trim-debt set may hold a half-recorded group or debt; recovering either could acknowledge a group that never committed or trim a stream that still owes data" )] + #[expect( + clippy::cast_possible_truncation, + clippy::excessive_nesting, + reason = "ShardEngine::start; the pump and ticker loops nest each flush, eviction and trim verdict inside the tick that produced it and stamp their gaps in whole milliseconds and microseconds that fit u64; flattening them or checking the stamps would separate the verdicts from the tick and restate the clock" + )] pub(crate) fn start( prefix: String, db: Arc, @@ -1853,6 +1830,10 @@ impl ShardEngine { self.try_command(CommitOp::SealFence(req)) } + #[expect( + clippy::cast_possible_truncation, + reason = "ShardEngine::try_command; the microseconds since the engine epoch fit u64 for hundreds of thousands of years; a checked conversion would only restate the clock" + )] fn try_command(&self, command: CommitOp) -> Result<(), EnqueueError> { if self.is_closed() { return Err(EnqueueError::Closed); @@ -1980,6 +1961,10 @@ impl ShardEngine { clippy::unwrap_used, reason = "ShardEngine::oldest_inflight_ms; a poisoned shard state may hold a partially applied tail, ring, fence, debt or maintenance update; recovering it could publish an offset or boundary that was never committed" )] + #[expect( + clippy::cast_possible_truncation, + reason = "ShardEngine::oldest_inflight_ms; the elapsed milliseconds are clamped to i64::MAX before the cast; a checked conversion would only restate the clamp" + )] pub(crate) fn oldest_inflight_ms(&self) -> i64 { self.in_flight .lock() @@ -2316,7 +2301,10 @@ impl ShardEngine { /// reader that adopts a remote boundary while keeping a stale /// in-memory layout flag would refuse a v2 history range as v1 /// (observed in the first-absorption flush-to-dispatch window). - pub async fn durable_absorbed(&self, hash: &[u8; 16]) -> Result<(u64, bool), slatedb::Error> { + pub(crate) async fn durable_absorbed( + &self, + hash: &[u8; 16], + ) -> Result<(u64, bool), slatedb::Error> { #[cfg(test)] if let Ok((entered, release)) = record::TEST_MARKER_HOLD.try_with(Clone::clone) { entered.notify_one(); @@ -2412,6 +2400,10 @@ impl ShardEngine { clippy::unwrap_used, reason = "ShardEngine::stream_handle; a poisoned shard state may hold a partially applied tail, ring, fence, debt or maintenance update; recovering it could publish an offset or boundary that was never committed" )] + #[expect( + clippy::cast_sign_loss, + reason = "ShardEngine::stream_handle; now_ms is a non-negative Unix millisecond stamp; a checked conversion would only restate the clock" + )] pub(crate) async fn stream_handle( &self, hash: [u8; 16], @@ -2469,6 +2461,11 @@ impl ShardEngine { clippy::unwrap_used, reason = "ShardEngine::evict_idle_handles; a poisoned shard state may hold a partially applied tail, ring, fence, debt or maintenance update; recovering it could publish an offset or boundary that was never committed" )] + #[expect( + clippy::cast_possible_truncation, + clippy::cast_sign_loss, + reason = "ShardEngine::evict_idle_handles; the cutoff is a non-negative Unix millisecond stamp less an idle window that fits u64; checked conversions would only restate the clock" + )] pub(crate) fn evict_idle_handles( &self, idle: std::time::Duration, @@ -2523,14 +2520,14 @@ impl ShardEngine { Some(st.durable.absorbed) } - #[expect( - clippy::too_many_lines, - reason = "ShardEngine::committer_loop; the commit loop's batching, fencing and dispatch are one ordered state machine; splitting it would hide which state each group is left in" - )] #[expect( clippy::let_underscore_must_use, reason = "ShardEngine::committer_loop; a caller that gave up before its reply has no receiver; a handled send would only restate that the request was abandoned" )] + #[expect( + clippy::excessive_nesting, + reason = "ShardEngine::committer_loop; the committer nests the batch gather and the pacing wait inside the group loop; flattening them would separate the gather from the group it fills" + )] async fn committer_loop(self: Arc, mut rx: mpsc::Receiver, cfg: ShardConfig) { // The close signal is the ONLY way out: this task holds the engine // and the engine holds a sender, so `rx` can never report closed. @@ -2569,45 +2566,9 @@ impl ShardEngine { if self.is_closed() { // Set-before-subscribe race: honor the flag, fail the op we // just took plus the rest of the queue, and exit. - match first { - CommitOp::Append(r) => { - let _ = r.resp.send(Err(AppendErr::Moved)); - } - CommitOp::Close(CloseReq { resp, .. }) - | CommitOp::SealFence(SealFenceReq { resp, .. }) => { - let _ = resp.send(Err(AppendErr::Moved)); - } - CommitOp::Queue { resp, .. } => { - let _ = resp.send(Err("shard fenced/moved; retry".into())); - } - CommitOp::Absorbed { .. } - | CommitOp::AbsorbedBatch { .. } - | CommitOp::TrimTick - | CommitOp::UsageAck { .. } - | CommitOp::BillingClose { .. } - | CommitOp::BillingRetained { .. } - | CommitOp::TrimStep { .. } => {} - } + transaction::CommitTransaction::reject_op(first, AppendErr::Moved); while let Ok(op) = rx.try_recv() { - match op { - CommitOp::Append(r) => { - let _ = r.resp.send(Err(AppendErr::Moved)); - } - CommitOp::Close(CloseReq { resp, .. }) - | CommitOp::SealFence(SealFenceReq { resp, .. }) => { - let _ = resp.send(Err(AppendErr::Moved)); - } - CommitOp::Queue { resp, .. } => { - let _ = resp.send(Err("shard fenced/moved; retry".into())); - } - CommitOp::Absorbed { .. } - | CommitOp::AbsorbedBatch { .. } - | CommitOp::TrimTick - | CommitOp::UsageAck { .. } - | CommitOp::BillingClose { .. } - | CommitOp::BillingRetained { .. } - | CommitOp::TrimStep { .. } => {} - } + transaction::CommitTransaction::reject_op(op, AppendErr::Moved); } return; } @@ -2735,7 +2696,7 @@ impl ShardEngine { reason = "ShardEngine::count_consumer_state_rows; the row count is the consumer fixtures' witness of what the committer retired and the service never scans for it; deleting it would strip the count those fixtures pin" ) )] - pub async fn count_consumer_state_rows( + pub(crate) async fn count_consumer_state_rows( &self, hash: [u8; 16], consumer: &str, @@ -3007,7 +2968,11 @@ impl ShardEngine { /// the closure entered the committer queue — a full queue is /// backpressure, never a silent drop; the registry-persisted debt /// plus the sweep reconciler retry anything that still fails. - pub async fn submit_billing_close(&self, hash: [u8; 16], close_ms: i64) -> Result<(), String> { + pub(crate) async fn submit_billing_close( + &self, + hash: [u8; 16], + close_ms: i64, + ) -> Result<(), String> { self.tx .send(CommitOp::BillingClose { hash, close_ms }) .await @@ -3053,7 +3018,11 @@ impl ShardEngine { /// Test view of the DURABLE fence row (None = no row). #[cfg(test)] - pub async fn durable_consumer_fence(&self, hash: [u8; 16], consumer: &str) -> Option { + pub(crate) async fn durable_consumer_fence( + &self, + hash: [u8; 16], + consumer: &str, + ) -> Option { let k = crate::queue::fence_key(&hash, consumer); self.db .get(&k[..]) @@ -3093,6 +3062,11 @@ impl ShardEngine { clippy::unwrap_used, reason = "ShardEngine::dispatch_durable; a poisoned shard state may hold a partially applied tail, ring, fence, debt or maintenance update; recovering it could publish an offset or boundary that was never committed" )] + #[expect( + clippy::cast_possible_truncation, + clippy::excessive_nesting, + reason = "ShardEngine::dispatch_durable; the durable wait is clamped to u32::MAX and the timing ring is trimmed inside the publication it records; checking the clamp or flattening the trim would restate the bound and separate the trim from the record" + )] async fn dispatch_durable(&self, durable_seq: u64) -> u32 { let _order = self.dispatch_gate.lock().await; // Claim only proven remote-durable groups while this owner is live. @@ -3160,6 +3134,10 @@ impl ShardEngine { dispatched } + #[expect( + clippy::excessive_nesting, + reason = "ShardEngine::acker_loop; the acker nests the close-reason verdict inside the status read of each wake; flattening it would separate the verdict from the status it reads" + )] async fn acker_loop(self: Arc) { let mut status_rx = self.db.subscribe(); loop { @@ -3238,8 +3216,17 @@ impl ShardEngine { } } +#[cfg(test)] +mod test_support; +#[cfg(test)] +use test_support::dirty_scan_faults; #[cfg(test)] mod transaction_tests; +#[cfg(test)] +pub(crate) use test_support::{ + decode_tail_for_tests, dirty_value_for_tests, encode_tail_for_tests, + encode_tail_without_gauge_for_tests, inject_dirty_scan_faults, +}; #[cfg(test)] mod retirement_tests; diff --git a/src/shard/test_support.rs b/src/shard/test_support.rs new file mode 100644 index 00000000..a0d8ddb9 --- /dev/null +++ b/src/shard/test_support.rs @@ -0,0 +1,46 @@ +//! Test-only codec and fault-injection helpers for the shard engine. +#![cfg(test)] +use super::*; + +/// Test-only: encode a tail then STRIP the trailing exact-gauge field, +/// producing the pre-gauge layout older builds wrote. DST uses this to +/// prove the R26-4 open-time repair; production code never writes it. +pub(crate) fn encode_tail_without_gauge_for_tests(t: &TailFields) -> Vec { + let mut v = encode_tail(t); + v.truncate(v.len() - 8); + v +} + +pub(crate) fn decode_tail_for_tests(v: &[u8]) -> Option { + decode_tail(v) +} + +/// Test-only: the production tail encoder, exposed so golden tests can +/// pin the exact v3 byte layout without going through a shard engine. +/// Test-only: the production dirty-row encoder, exposed so golden tests +/// can pin the exact 32-byte LE layout. +pub(crate) fn encode_tail_for_tests(t: &TailFields) -> Vec { + encode_tail(t) +} + +pub(crate) fn dirty_value_for_tests(m: &StreamMaintenance) -> [u8; 32] { + dirty_value(m) +} + +/// Test-only fault injection for the durable dirty-index scan, keyed by +/// shard prefix so concurrent tests cannot poison each other. The +/// object-store fault substrate cannot reach this path deterministically +/// (SlateDB retries store faults internally), and the absorber's +/// scan-retry loop is exactly the code under test. +pub(super) fn dirty_scan_faults() -> &'static Mutex> { + static M: std::sync::OnceLock>> = std::sync::OnceLock::new(); + M.get_or_init(|| Mutex::new(HashMap::new())) +} + +/// Arrange for the next `n` dirty-index scans on `prefix` to fail. +pub(crate) fn inject_dirty_scan_faults(prefix: &str, n: u32) { + dirty_scan_faults() + .lock() + .unwrap() + .insert(prefix.to_string(), n); +} diff --git a/src/shard/transaction/mod.rs b/src/shard/transaction/mod.rs index 367afc7c..a5b610ed 100644 --- a/src/shard/transaction/mod.rs +++ b/src/shard/transaction/mod.rs @@ -99,7 +99,7 @@ impl<'a> CommitTransaction<'a> { } transaction.finish().await; } - fn reject_op(op: CommitOp, error: AppendErr) { + pub(super) fn reject_op(op: CommitOp, error: AppendErr) { match op { CommitOp::Append(req) => { let _ = req.resp.send(Err(error)); diff --git a/src/tasks/shutdown.rs b/src/tasks/shutdown.rs index 917bf0a2..1dc344e5 100644 --- a/src/tasks/shutdown.rs +++ b/src/tasks/shutdown.rs @@ -13,6 +13,10 @@ type Finalizer = ( impl TaskSupervisor { /// A terminal error without proof of resource termination requires the /// owner's replacement fence and readiness failure to remain in place. + #[expect( + clippy::unwrap_used, + reason = "TaskSupervisor::incomplete_shutdown_failure; a poisoned supervisor state may hold a half-recorded phase, task map or report; recovering it could report a shutdown that never completed or hide one that failed" + )] pub(crate) fn incomplete_shutdown_failure(&self) -> Option { let state = self.inner.state.lock().unwrap(); if state.phase != Phase::ShuttingDown { @@ -33,6 +37,22 @@ impl TaskSupervisor { self.launch_shutdown(grace, Some((label, Box::pin(finalizer)))); } + #[expect( + clippy::unwrap_used, + reason = "TaskSupervisor::launch_shutdown; a poisoned supervisor state may hold a half-recorded phase, task map or report; recovering it could report a shutdown that never completed or hide one that failed" + )] + #[expect( + clippy::disallowed_methods, + reason = "TaskSupervisor::launch_shutdown; the shutdown driver outlives the supervised set it joins and publishes the report every observer waits on; a supervised driver would wait on itself" + )] + #[expect( + clippy::excessive_nesting, + reason = "TaskSupervisor::launch_shutdown; the driver nests the phase decision inside the report publication inside the spawned shutdown; flattening it would separate the phase from the report that proves it" + )] + #[expect( + clippy::let_underscore_must_use, + reason = "TaskSupervisor::launch_shutdown; a watch send fails only when every observer is gone and the cancel flag is idempotent; handled results would only restate that nobody is left to inform" + )] fn launch_shutdown(&self, grace: Duration, finalizer: Option) -> Completion { let mut st = self.inner.state.lock().unwrap(); if let Some(rx) = &st.completion { @@ -84,6 +104,10 @@ impl TaskSupervisor { /// Observe an owner-started shutdown without racing it to install a driver /// lacking the owner's resource finalizer. + #[expect( + clippy::unwrap_used, + reason = "TaskSupervisor::observe_shutdown; a poisoned supervisor state may hold a half-recorded phase, task map or report; recovering it could report a shutdown that never completed or hide one that failed" + )] pub(crate) async fn observe_shutdown(&self) -> ShutdownReport { let mut rx = loop { let notified = self.inner.workers_done.notified(); @@ -145,6 +169,10 @@ impl TaskSupervisor { } } /// The one shutdown sequence, owned by the driver task. +#[expect( + clippy::let_underscore_must_use, + reason = "drive_shutdown; the cancel flag is a watch whose send fails only when every worker is gone; a handled result would only restate that there is nobody left to cancel" +)] async fn drive_shutdown( inner: &Arc, tasks: BTreeMap, diff --git a/src/telemetry_batch.rs b/src/telemetry_batch.rs index 0b26a225..94727da8 100644 --- a/src/telemetry_batch.rs +++ b/src/telemetry_batch.rs @@ -47,13 +47,13 @@ pub(crate) fn encode_prefix<'a, T: Serialize + 'a>( overflow: false, }; if let Err(error) = serde_json::to_writer(&mut row, event) { - if row.overflow { - if count == 0 { - return Ok(Selection::Oversized); - } - break; + if !row.overflow { + return Err(error.to_string()); } - return Err(error.to_string()); + if count == 0 { + return Ok(Selection::Oversized); + } + break; } let with_array_end = body .len() diff --git a/src/touch.rs b/src/touch.rs index d352c910..1cda5b29 100644 --- a/src/touch.rs +++ b/src/touch.rs @@ -74,6 +74,14 @@ pub(crate) enum WaitOutcome { } impl TouchJournal { + #[expect( + clippy::disallowed_methods, + reason = "TouchJournal::start; the per-stream flusher is started under the journal map lock, where no supervisor is reachable, and it exits on its own once the journal closes; a supervised flusher would thread the supervisor through every journal creation for a task that ends itself" + )] + #[expect( + clippy::excessive_nesting, + reason = "TouchJournal::start; the flusher nests the close verdict inside the tick loop of the spawned flusher; flattening it would separate the verdict from the tick that produced it" + )] pub(crate) fn start(entropy: &dyn crate::runtime::Entropy) -> Arc { let mut e = [0u8; 8]; entropy.fill(&mut e); @@ -102,6 +110,10 @@ impl TouchJournal { } /// Record touched key IDs (shard acker, post-durability). + #[expect( + clippy::unwrap_used, + reason = "TouchJournal::ingest; a poisoned journal may hold a half-ingested bucket; recovering it could flush or acknowledge touches that were never recorded" + )] pub(crate) fn ingest(&self, key_ids: &[u32], next_offset: u64) { let mut inner = self.inner.lock().unwrap(); if inner.closed { @@ -123,6 +135,10 @@ impl TouchJournal { } } + #[expect( + clippy::unwrap_used, + reason = "TouchJournal::flush_bucket; a poisoned journal may hold a half-ingested bucket; recovering it could flush or acknowledge touches that were never recorded" + )] fn flush_bucket(&self, reap: bool) -> bool { let mut inner = self.inner.lock().unwrap(); if inner.closed { @@ -372,6 +388,10 @@ impl TouchRegistry { } } + #[expect( + clippy::unwrap_used, + reason = "TouchRegistry::journal; a poisoned journal map may hold a half-inserted or half-closed journal; recovering it could revive a journal a fence already closed" + )] pub(crate) fn journal( &self, hash: [u8; 16], @@ -387,6 +407,10 @@ impl TouchRegistry { /// Fence/move of a shard: close + drop every journal whose stream's /// shard ROUTE hash falls in the shard's bit-prefix, waking all /// their waiters with stale. + #[expect( + clippy::unwrap_used, + reason = "TouchRegistry::close_shard; a poisoned journal map may hold a half-inserted or half-closed journal; recovering it could revive a journal a fence already closed" + )] pub(crate) fn close_shard(&self, prefix: &str) { let mut map = self.map.lock().unwrap(); let closing: Vec<[u8; 16]> = map