features/tuf/hashed_bins_performance.featureRunning behat features/tuf/hashed_bins_performance.feature results in:
@rugged @cli @hashed-bins
Feature: Hashed bins are reasonably performant.
In order to speed up TUF repo operations when using hashed bins,
As a Rugged operator,
I want to reduce how many hashed bins metadata files are handled.
Background:
Given I reset Rugged
And I run "sudo cp features/fixtures/config/enable_hashed_bins.yaml /var/rugged/.config/rugged/config.yaml"
And I run the Rugged command "rugged generate-keys --local"
And I run the Rugged command "rugged initialize --local"
@gitlab-141
Scenario: Only relevant hashed-bin metadata files get re-written when adding targets.
Then the metadata version in "bin_0.json" is "1"
And the metadata version in "bin_2.json" is "1"
Given I record the timestamp of "/var/rugged/tuf_repo/metadata/bin_0.json"
And I record the timestamp of "/var/rugged/tuf_repo/metadata/bin_2.json"
And I am in the "/var/rugged/incoming_targets" directory
And file "test0.txt" contains "test0"
And I wait "2" seconds
When I run the Rugged command "rugged --debug add-targets"
Then the metadata version in "bin_0.json" is "1"
And the metadata version in "bin_2.json" is "2"
The expected version of the 'bin_2.json' metadata was 2. The actual version in 'bin_2.json' was 1. (Exception)
And file "/var/rugged/tuf_repo/metadata/bin_0.json" has not been updated
And file "/var/rugged/tuf_repo/metadata/bin_2.json" has been updated
@gitlab-141
Scenario: Only relevant hashed-bin metadata files get re-written when removing targets.
Given I am in the "/var/rugged/incoming_targets" directory
And file "test0.txt" contains "test0"
When I run the Rugged command "rugged --debug add-targets"
Then the metadata version in "bin_0.json" is "1"
And the metadata version in "bin_2.json" is "2"
The expected version of the 'bin_2.json' metadata was 2. The actual version in 'bin_2.json' was 1. (Exception)
Given I record the timestamp of "/var/rugged/tuf_repo/metadata/bin_0.json"
And I record the timestamp of "/var/rugged/tuf_repo/metadata/bin_2.json"
And I wait "2" seconds
When I run the Rugged command "rugged --debug remove-targets test0.txt"
Then the metadata version in "bin_0.json" is "1"
And the metadata version in "bin_2.json" is "3"
And file "/var/rugged/tuf_repo/metadata/bin_0.json" has not been updated
And file "/var/rugged/tuf_repo/metadata/bin_2.json" has been updated
@gitlab-143
Scenario: Only relevant hashed-bin metadata files get loaded when adding targets.
Given I am in the "/var/rugged/incoming_targets" directory
And file "test0.txt" contains "test0"
And I wait "2" seconds
And I run the Rugged command "rugged logs --worker=targets-worker --truncate"
When I run the Rugged command "rugged --debug add-targets"
And I run the Rugged command "rugged logs --worker=targets-worker --limit 0"
And I should get:
"""
Loaded metadata for 'snapshot' role from '/var/rugged/tuf_repo/metadata/snapshot.json'.
Loaded metadata for 'timestamp' role from '/var/rugged/tuf_repo/metadata/timestamp.json'.
Loaded metadata for 'root' role from '/var/rugged/tuf_repo/metadata/1.root.json'.
Loaded metadata for 'bins' role from '/var/rugged/tuf_repo/metadata/bins.json'.
Loaded metadata for 'bin_2' role from '/var/rugged/tuf_repo/metadata/bin_2.json'.
Loaded all metadata for targets.
"""
'Loaded metadata for 'bins' role from '/var/rugged/tuf_repo/metadata/bins.json'.' was not found in command output:
------
=== Log for targets-worker: /var/log/rugged/rugged.log ===
2026-06-08 18:35:31,887 DEBUG (base_worker.start_tracing_memory_usage): Starting trace of memory allocation.
2026-06-08 18:35:31,887 INFO (targets-worker.add_targets_task): Received add-targets task.
2026-06-08 18:35:31,888 DEBUG (target_files.get_inbound_targets): Scanning for inbound targets in '/var/rugged/incoming_targets'
2026-06-08 18:35:31,888 DEBUG (target_files.get_inbound_targets): Found target: test0.txt
2026-06-08 18:35:31,889 DEBUG (repo._add_key_to_keychain): Adding 'root' key to keychain.
2026-06-08 18:35:31,889 DEBUG (key_manager.load_signing_key): Loading signing key for 'root' role from '/var/rugged/signing_keys/root/root'.
2026-06-08 18:35:31,890 DEBUG (key_manager.load_verification_key): Loading verification key for 'root' role from '/var/rugged/verification_keys/root/root.pub'.
2026-06-08 18:35:31,890 DEBUG (key_manager.load_keys): Loaded 'root' verification key for 'root' role.
2026-06-08 18:35:31,891 DEBUG (repo._add_key_to_keychain): Adding 'root1' key to keychain.
2026-06-08 18:35:31,891 DEBUG (key_manager.load_signing_key): Loading signing key for 'root' role from '/var/rugged/signing_keys/root/root1'.
2026-06-08 18:35:31,892 DEBUG (key_manager.load_verification_key): Loading verification key for 'root' role from '/var/rugged/verification_keys/root/root1.pub'.
2026-06-08 18:35:31,892 DEBUG (key_manager.load_keys): Loaded 'root1' verification key for 'root' role.
2026-06-08 18:35:31,893 DEBUG (repo._add_key_to_keychain): Adding 'timestamp' key to keychain.
2026-06-08 18:35:31,893 DEBUG (key_manager.load_signing_key): Loading signing key for 'timestamp' role from '/var/rugged/signing_keys/timestamp/timestamp'.
2026-06-08 18:35:31,893 DEBUG (key_manager.load_verification_key): Loading verification key for 'timestamp' role from '/var/rugged/verification_keys/timestamp/timestamp.pub'.
2026-06-08 18:35:31,894 DEBUG (key_manager.load_keys): Loaded 'timestamp' verification key for 'timestamp' role.
2026-06-08 18:35:31,894 DEBUG (repo._add_key_to_keychain): Adding 'snapshot' key to keychain.
2026-06-08 18:35:31,895 DEBUG (key_manager.load_signing_key): Loading signing key for 'snapshot' role from '/var/rugged/signing_keys/snapshot/snapshot'.
2026-06-08 18:35:31,895 DEBUG (key_manager.load_verification_key): Loading verification key for 'snapshot' role from '/var/rugged/verification_keys/snapshot/snapshot.pub'.
2026-06-08 18:35:31,896 DEBUG (key_manager.load_keys): Loaded 'snapshot' verification key for 'snapshot' role.
2026-06-08 18:35:31,896 DEBUG (repo._add_key_to_keychain): Adding 'targets' key to keychain.
2026-06-08 18:35:31,896 DEBUG (key_manager.load_signing_key): Loading signing key for 'targets' role from '/var/rugged/signing_keys/targets/targets'.
2026-06-08 18:35:31,897 DEBUG (key_manager.load_keys): Loaded 'targets' signing key for 'targets' role.
2026-06-08 18:35:31,897 DEBUG (repo._init_targets_role): Setting 'targets' metadata expiry to 604800.
2026-06-08 18:35:31,898 DEBUG (repo._init_targets_role): Initialized 'targets' metadata.
2026-06-08 18:35:31,898 DEBUG (repo._init_snapshot_role): Setting 'snapshot' metadata expiry to 604800.
2026-06-08 18:35:31,899 DEBUG (repo._init_snapshot_role): Initialized 'snapshot' metadata.
2026-06-08 18:35:31,899 DEBUG (repo._init_timestamp_role): Setting 'timestamp' metadata expiry to 86400.
2026-06-08 18:35:31,900 DEBUG (repo._init_timestamp_role): Initialized 'timestamp' metadata.
2026-06-08 18:35:31,900 DEBUG (repo._init_root_role): Collecting keys for 'root' metadata.
2026-06-08 18:35:31,901 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: f6cc22ebe943b3579629c20cba92d4fb30cce6ffa058febe03aed3f12ca0c9e0
2026-06-08 18:35:31,901 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 0af7589a46044f623b212eddde30fdc61d18354a417f93c307edc946b8dd4cf9
2026-06-08 18:35:31,901 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 141aff1afbc5f4af25ed30cc5b99dbfdd8f1202699fcad69212dcc70dabbc8c1
2026-06-08 18:35:31,902 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: a88d3a00a33338a2a1d833af823a37f0304965317186f7e935e06953303ae9c2
2026-06-08 18:35:31,902 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 4ca6ef1b3ceb26b25ae78b64e3e70990577b090a6d04651747943dcd207fcd19
2026-06-08 18:35:31,903 DEBUG (repo._init_root_role): Collecting roles for 'root' metadata.
2026-06-08 18:35:31,903 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'root' role with KeyID: f6cc22ebe943b3579629c20cba92d4fb30cce6ffa058febe03aed3f12ca0c9e0
2026-06-08 18:35:31,903 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'root' role with KeyID: 0af7589a46044f623b212eddde30fdc61d18354a417f93c307edc946b8dd4cf9
2026-06-08 18:35:31,904 DEBUG (repo._get_repo_roles_for_root_role): Setting 'root' signature threshold to 1.
2026-06-08 18:35:31,904 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'timestamp' role with KeyID: 141aff1afbc5f4af25ed30cc5b99dbfdd8f1202699fcad69212dcc70dabbc8c1
2026-06-08 18:35:31,904 DEBUG (repo._get_repo_roles_for_root_role): Setting 'timestamp' signature threshold to 1.
2026-06-08 18:35:31,904 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'snapshot' role with KeyID: a88d3a00a33338a2a1d833af823a37f0304965317186f7e935e06953303ae9c2
2026-06-08 18:35:31,904 DEBUG (repo._get_repo_roles_for_root_role): Setting 'snapshot' signature threshold to 1.
2026-06-08 18:35:31,905 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'targets' role with KeyID: 4ca6ef1b3ceb26b25ae78b64e3e70990577b090a6d04651747943dcd207fcd19
2026-06-08 18:35:31,905 DEBUG (repo._get_repo_roles_for_root_role): Setting 'targets' signature threshold to 1.
2026-06-08 18:35:31,905 DEBUG (repo.update_metadata_expiry): Setting 'root' metadata expiry to 31536000.
2026-06-08 18:35:31,905 DEBUG (repo._init_root_role): Initialized 'root' metadata.
2026-06-08 18:35:31,905 DEBUG (repo.__init__): Instantiated repository.
2026-06-08 18:35:31,906 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'root' role from '/var/rugged/tuf_repo/metadata/1.root.json'.
2026-06-08 18:35:31,907 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'targets' role from '/var/rugged/tuf_repo/metadata/targets.json'.
2026-06-08 18:35:31,908 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'snapshot' role from '/var/rugged/tuf_repo/metadata/snapshot.json'.
2026-06-08 18:35:31,908 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'timestamp' role from '/var/rugged/tuf_repo/metadata/timestamp.json'.
2026-06-08 18:35:31,908 DEBUG (repo.load): Loaded all metadata.
2026-06-08 18:35:31,908 DEBUG (target_files.get_inbound_targets): Scanning for inbound targets in '/var/rugged/incoming_targets'
2026-06-08 18:35:31,909 DEBUG (target_files.get_inbound_targets): Found target: test0.txt
2026-06-08 18:35:31,909 DEBUG (target_files.move_inbound_target_to_targets_dir): Moved '/var/rugged/incoming_targets/test0.txt' to '/var/rugged/tuf_repo/targets/test0.txt'
2026-06-08 18:35:31,910 INFO (target_files.move_inbound_target_to_targets_dir): Moved inbound target 'test0.txt' to targets directory.
2026-06-08 18:35:31,910 INFO (repo.add_target_to_metadata): Added target 'test0.txt' to 'targets' role.
2026-06-08 18:35:31,910 DEBUG (repo.update_metadata_expiry): Setting 'targets' metadata expiry to 604800.
2026-06-08 18:35:31,911 DEBUG (repo.sign_metadata): Signed 'targets' metadata with 'targets' key.
2026-06-08 18:35:31,911 INFO (repo.update_targets): Updated targets metadata.
2026-06-08 18:35:31,914 DEBUG (metadata_files.write_metadata_to_file): Wrote 'targets' metadata to file '/var/rugged/tuf_repo/metadata/targets.json'.
2026-06-08 18:35:31,914 DEBUG (targets.delete_empty_inbound_target_dirs): Scanning for empty directories in inbound targets: '/var/rugged/incoming_targets'
2026-06-08 18:35:31,916 DEBUG (base_worker.print_memory_usage): == Memory allocation for: add_targets_task ==
2026-06-08 18:35:31,916 DEBUG (base_worker.print_memory_usage): Peak memory allocation: 111.09KiB
2026-06-08 18:35:31,916 DEBUG (base_worker.print_memory_usage): Final memory allocation: 15.07KiB
------
(Exception)
And I should not get:
"""
Loaded metadata for 'bin_0' role from '/var/rugged/tuf_repo/metadata/bin_0.json'.
Loaded metadata for 'bin_1' role from '/var/rugged/tuf_repo/metadata/bin_1.json'.
Loaded metadata for 'bin_3' role from '/var/rugged/tuf_repo/metadata/bin_3.json'.
Loaded metadata for 'bin_4' role from '/var/rugged/tuf_repo/metadata/bin_4.json'.
Loaded metadata for 'bin_5' role from '/var/rugged/tuf_repo/metadata/bin_5.json'.
Loaded metadata for 'bin_6' role from '/var/rugged/tuf_repo/metadata/bin_6.json'.
Loaded metadata for 'bin_7' role from '/var/rugged/tuf_repo/metadata/bin_7.json'.
Loaded metadata for 'bin_8' role from '/var/rugged/tuf_repo/metadata/bin_8.json'.
Loaded metadata for 'bin_9' role from '/var/rugged/tuf_repo/metadata/bin_9.json'.
Loaded metadata for 'bin_a' role from '/var/rugged/tuf_repo/metadata/bin_a.json'.
Loaded metadata for 'bin_b' role from '/var/rugged/tuf_repo/metadata/bin_b.json'.
Loaded metadata for 'bin_c' role from '/var/rugged/tuf_repo/metadata/bin_c.json'.
Loaded metadata for 'bin_d' role from '/var/rugged/tuf_repo/metadata/bin_d.json'.
Loaded metadata for 'bin_e' role from '/var/rugged/tuf_repo/metadata/bin_e.json'.
Loaded metadata for 'bin_f' role from '/var/rugged/tuf_repo/metadata/bin_f.json'.
"""
And the metadata version in "bin_0.json" is "1"
And the metadata version in "bin_2.json" is "2"
@gitlab-143
Scenario: Only relevant hashed-bin metadata files get loaded when removing targets.
Given I am in the "/var/rugged/incoming_targets" directory
And file "test0.txt" contains "test0"
And I run the Rugged command "rugged --debug add-targets"
And I wait "2" seconds
And I run the Rugged command "rugged logs --worker=targets-worker --truncate"
When I run the Rugged command "rugged --debug remove-targets test0.txt"
And I run the Rugged command "rugged logs --worker=targets-worker --limit 0"
And I should get:
"""
Loaded metadata for 'snapshot' role from '/var/rugged/tuf_repo/metadata/snapshot.json'.
Loaded metadata for 'timestamp' role from '/var/rugged/tuf_repo/metadata/timestamp.json'.
Loaded metadata for 'root' role from '/var/rugged/tuf_repo/metadata/1.root.json'.
Loaded metadata for 'bins' role from '/var/rugged/tuf_repo/metadata/bins.json'.
Loaded metadata for 'bin_2' role from '/var/rugged/tuf_repo/metadata/bin_2.json'.
Loaded all metadata for targets.
"""
'Loaded metadata for 'bins' role from '/var/rugged/tuf_repo/metadata/bins.json'.' was not found in command output:
------
=== Log for targets-worker: /var/log/rugged/rugged.log ===
2026-06-08 18:35:39,255 DEBUG (base_worker.start_tracing_memory_usage): Starting trace of memory allocation.
2026-06-08 18:35:39,256 INFO (targets-worker.remove_targets_task): Received remove-targets task.
2026-06-08 18:35:39,256 DEBUG (repo._add_key_to_keychain): Adding 'root' key to keychain.
2026-06-08 18:35:39,256 DEBUG (key_manager.load_signing_key): Loading signing key for 'root' role from '/var/rugged/signing_keys/root/root'.
2026-06-08 18:35:39,256 DEBUG (key_manager.load_verification_key): Loading verification key for 'root' role from '/var/rugged/verification_keys/root/root.pub'.
2026-06-08 18:35:39,257 DEBUG (key_manager.load_keys): Loaded 'root' verification key for 'root' role.
2026-06-08 18:35:39,257 DEBUG (repo._add_key_to_keychain): Adding 'root1' key to keychain.
2026-06-08 18:35:39,257 DEBUG (key_manager.load_signing_key): Loading signing key for 'root' role from '/var/rugged/signing_keys/root/root1'.
2026-06-08 18:35:39,257 DEBUG (key_manager.load_verification_key): Loading verification key for 'root' role from '/var/rugged/verification_keys/root/root1.pub'.
2026-06-08 18:35:39,258 DEBUG (key_manager.load_keys): Loaded 'root1' verification key for 'root' role.
2026-06-08 18:35:39,258 DEBUG (repo._add_key_to_keychain): Adding 'timestamp' key to keychain.
2026-06-08 18:35:39,258 DEBUG (key_manager.load_signing_key): Loading signing key for 'timestamp' role from '/var/rugged/signing_keys/timestamp/timestamp'.
2026-06-08 18:35:39,258 DEBUG (key_manager.load_verification_key): Loading verification key for 'timestamp' role from '/var/rugged/verification_keys/timestamp/timestamp.pub'.
2026-06-08 18:35:39,259 DEBUG (key_manager.load_keys): Loaded 'timestamp' verification key for 'timestamp' role.
2026-06-08 18:35:39,259 DEBUG (repo._add_key_to_keychain): Adding 'snapshot' key to keychain.
2026-06-08 18:35:39,259 DEBUG (key_manager.load_signing_key): Loading signing key for 'snapshot' role from '/var/rugged/signing_keys/snapshot/snapshot'.
2026-06-08 18:35:39,259 DEBUG (key_manager.load_verification_key): Loading verification key for 'snapshot' role from '/var/rugged/verification_keys/snapshot/snapshot.pub'.
2026-06-08 18:35:39,260 DEBUG (key_manager.load_keys): Loaded 'snapshot' verification key for 'snapshot' role.
2026-06-08 18:35:39,260 DEBUG (repo._add_key_to_keychain): Adding 'targets' key to keychain.
2026-06-08 18:35:39,260 DEBUG (key_manager.load_signing_key): Loading signing key for 'targets' role from '/var/rugged/signing_keys/targets/targets'.
2026-06-08 18:35:39,260 DEBUG (key_manager.load_keys): Loaded 'targets' signing key for 'targets' role.
2026-06-08 18:35:39,260 DEBUG (repo._init_targets_role): Setting 'targets' metadata expiry to 604800.
2026-06-08 18:35:39,261 DEBUG (repo._init_targets_role): Initialized 'targets' metadata.
2026-06-08 18:35:39,261 DEBUG (repo._init_snapshot_role): Setting 'snapshot' metadata expiry to 604800.
2026-06-08 18:35:39,261 DEBUG (repo._init_snapshot_role): Initialized 'snapshot' metadata.
2026-06-08 18:35:39,261 DEBUG (repo._init_timestamp_role): Setting 'timestamp' metadata expiry to 86400.
2026-06-08 18:35:39,262 DEBUG (repo._init_timestamp_role): Initialized 'timestamp' metadata.
2026-06-08 18:35:39,262 DEBUG (repo._init_root_role): Collecting keys for 'root' metadata.
2026-06-08 18:35:39,262 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: f9facddadd31765f12998cae46a13303916d6bb34924107e4448e1217e65afd0
2026-06-08 18:35:39,262 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 1f7c82efcb024ea7285928ae94d93458c37c4ebb04ecd48b8095877d2bc8e62f
2026-06-08 18:35:39,263 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: cf2845a91e696602297540469111bf773c42a5325642b597b036ce850a25ff44
2026-06-08 18:35:39,263 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: b6dc1e6e85d96fe154720de9763293265d1267e137a3b04ce816e0feb181b6dc
2026-06-08 18:35:39,263 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 734c686eef58ee61364943225a9e33cb9b659b18214d9391ea9d0905155f229a
2026-06-08 18:35:39,263 DEBUG (repo._init_root_role): Collecting roles for 'root' metadata.
2026-06-08 18:35:39,263 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'root' role with KeyID: f9facddadd31765f12998cae46a13303916d6bb34924107e4448e1217e65afd0
2026-06-08 18:35:39,264 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'root' role with KeyID: 1f7c82efcb024ea7285928ae94d93458c37c4ebb04ecd48b8095877d2bc8e62f
2026-06-08 18:35:39,264 DEBUG (repo._get_repo_roles_for_root_role): Setting 'root' signature threshold to 1.
2026-06-08 18:35:39,265 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'timestamp' role with KeyID: cf2845a91e696602297540469111bf773c42a5325642b597b036ce850a25ff44
2026-06-08 18:35:39,265 DEBUG (repo._get_repo_roles_for_root_role): Setting 'timestamp' signature threshold to 1.
2026-06-08 18:35:39,265 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'snapshot' role with KeyID: b6dc1e6e85d96fe154720de9763293265d1267e137a3b04ce816e0feb181b6dc
2026-06-08 18:35:39,266 DEBUG (repo._get_repo_roles_for_root_role): Setting 'snapshot' signature threshold to 1.
2026-06-08 18:35:39,266 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'targets' role with KeyID: 734c686eef58ee61364943225a9e33cb9b659b18214d9391ea9d0905155f229a
2026-06-08 18:35:39,267 DEBUG (repo._get_repo_roles_for_root_role): Setting 'targets' signature threshold to 1.
2026-06-08 18:35:39,267 DEBUG (repo.update_metadata_expiry): Setting 'root' metadata expiry to 31536000.
2026-06-08 18:35:39,268 DEBUG (repo._init_root_role): Initialized 'root' metadata.
2026-06-08 18:35:39,268 DEBUG (repo.__init__): Instantiated repository.
2026-06-08 18:35:39,269 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'root' role from '/var/rugged/tuf_repo/metadata/1.root.json'.
2026-06-08 18:35:39,270 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'targets' role from '/var/rugged/tuf_repo/metadata/targets.json'.
2026-06-08 18:35:39,272 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'snapshot' role from '/var/rugged/tuf_repo/metadata/snapshot.json'.
2026-06-08 18:35:39,272 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'timestamp' role from '/var/rugged/tuf_repo/metadata/timestamp.json'.
2026-06-08 18:35:39,273 DEBUG (repo.load): Loaded all metadata.
2026-06-08 18:35:39,273 INFO (repo.remove_target): Removed target 'test0.txt' from the 'targets' role.
2026-06-08 18:35:39,274 INFO (target_files.delete_removed_target): Deleted target file '/var/rugged/tuf_repo/targets/test0.txt'.
2026-06-08 18:35:39,274 DEBUG (repo.update_metadata_expiry): Setting 'targets' metadata expiry to 604800.
2026-06-08 18:35:39,275 DEBUG (repo.sign_metadata): Signed 'targets' metadata with 'targets' key.
2026-06-08 18:35:39,276 INFO (repo.update_targets): Updated targets metadata.
2026-06-08 18:35:39,278 DEBUG (metadata_files.write_metadata_to_file): Wrote 'targets' metadata to file '/var/rugged/tuf_repo/metadata/targets.json'.
2026-06-08 18:35:39,280 DEBUG (base_worker.print_memory_usage): == Memory allocation for: remove_targets_task ==
2026-06-08 18:35:39,281 DEBUG (base_worker.print_memory_usage): Peak memory allocation: 109.23KiB
2026-06-08 18:35:39,281 DEBUG (base_worker.print_memory_usage): Final memory allocation: 14.01KiB
------
(Exception)
And I should not get:
"""
Loaded metadata for 'bin_0' role from '/var/rugged/tuf_repo/metadata/bin_0.json'.
Loaded metadata for 'bin_1' role from '/var/rugged/tuf_repo/metadata/bin_1.json'.
Loaded metadata for 'bin_3' role from '/var/rugged/tuf_repo/metadata/bin_3.json'.
Loaded metadata for 'bin_4' role from '/var/rugged/tuf_repo/metadata/bin_4.json'.
Loaded metadata for 'bin_5' role from '/var/rugged/tuf_repo/metadata/bin_5.json'.
Loaded metadata for 'bin_6' role from '/var/rugged/tuf_repo/metadata/bin_6.json'.
Loaded metadata for 'bin_7' role from '/var/rugged/tuf_repo/metadata/bin_7.json'.
Loaded metadata for 'bin_8' role from '/var/rugged/tuf_repo/metadata/bin_8.json'.
Loaded metadata for 'bin_9' role from '/var/rugged/tuf_repo/metadata/bin_9.json'.
Loaded metadata for 'bin_a' role from '/var/rugged/tuf_repo/metadata/bin_a.json'.
Loaded metadata for 'bin_b' role from '/var/rugged/tuf_repo/metadata/bin_b.json'.
Loaded metadata for 'bin_c' role from '/var/rugged/tuf_repo/metadata/bin_c.json'.
Loaded metadata for 'bin_d' role from '/var/rugged/tuf_repo/metadata/bin_d.json'.
Loaded metadata for 'bin_e' role from '/var/rugged/tuf_repo/metadata/bin_e.json'.
Loaded metadata for 'bin_f' role from '/var/rugged/tuf_repo/metadata/bin_f.json'.
"""
And the metadata version in "bin_0.json" is "1"
And the metadata version in "bin_2.json" is "3"
--- Failed scenarios:
features/tuf/hashed_bins_performance.feature:17
features/tuf/hashed_bins_performance.feature:33
features/tuf/hashed_bins_performance.feature:50
features/tuf/hashed_bins_performance.feature:89
4 scenarios (4 failed)
62 steps (42 passed, 4 failed, 16 skipped)