tidy-ups for management of homeless shares #1127
Labels
No Label
0.2.0
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.8.0
0.9.0
1.0.0
1.1.0
1.10.0
1.10.1
1.10.2
1.10a2
1.11.0
1.12.0
1.12.1
1.13.0
1.14.0
1.15.0
1.15.1
1.2.0
1.3.0
1.4.1
1.5.0
1.6.0
1.6.1
1.7.0
1.7.1
1.7β
1.8.0
1.8.1
1.8.2
1.8.3
1.8β
1.9.0
1.9.0-s3branch
1.9.0a1
1.9.0a2
1.9.0b1
1.9.1
1.9.2
1.9.2a1
LeastAuthority.com automation
blocker
cannot reproduce
cloud-branch
code
code-dirnodes
code-encoding
code-frontend
code-frontend-cli
code-frontend-ftp-sftp
code-frontend-magic-folder
code-frontend-web
code-mutable
code-network
code-nodeadmin
code-peerselection
code-storage
contrib
critical
defect
dev-infrastructure
documentation
duplicate
enhancement
fixed
invalid
major
minor
n/a
normal
operational
packaging
somebody else's problem
supercritical
task
trivial
unknown
was already fixed
website
wontfix
worksforme
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Reference: tahoe-lafs/trac-2024-07-25#1127
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
In #1118 we saw some potential improvements for the code managing homeless shares comment:78578 and comment:21:/tahoe-lafs/trac-2024-07-25/issues/6180. Also I thought that the
homeless_shares
attribute ought to be a set rather than a list.Here's a patch which changes it from list to set. Untested! Also this patch doesn't have the bugfix for #1118.
Attachment homeless_shares_in_a_set.dpatch.txt (14568 bytes) added
This merged cleanly with #1118 and it passes unit tests.
Doesn't this make the behaviour less deterministic, because
will pick an arbitrary subset of
num_shares
elements, rather than thenum_shares
elements that were first added? The determinism of the current code is useful when debugging unit tests, at least.Hm, that's a good thing to think about. I do like determinism for the reasons you mention—for testing and debugging. I think that this will be deterministic since
self.homeless_shares
happens to contain small integers (share numbers) and since CPython sets happen to store small integers in order. Actually even if they weren't in order they would still probably be deterministic. Good enough?Replying to zooko:
That is only true for current CPython. I'd prefer it to be deterministic per spec.
Below is a version which is deterministic (sorting the set whenever it needs to choose an item from it).
Attachment homeless_shares_in_a_set.dpatch_v2.txt (5966 bytes) added
+1
Applied in changeset:69c48ebde6730c3a.