dead code: NamedTemporaryDirectory #2433
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#2433
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?
Looking at #2432, I noticed that [NamedTemporaryDirectory]source:trunk/src/allmydata/util/fileutil.py?annotate=blame&rev=143af6151800efd8ecb750e682aa42da254ce5a7#L90 is unused except for [its unit test]source:trunk/src/allmydata/test/test_util.py?annotate=blame&rev=4794666df619fbfd7d36620163b51bda31322773#L434.
Now, [//trac/pyutil/browser/trunk/pyutil/fileutil.py?rev=254#L137 the newer version of NamedTemporaryDirectory] over in pyutil has an added feature — automatically call
.close()
on children when shutting down — which might be useful on Windows, but probably isn't. In any case, let's remove this older and unused version ofNamedTemporaryDirectory
from Tahoe-LAFS.(https://github.com/tahoe-lafs/tahoe-lafs/pull/169)
In /tahoe-lafs/trac-2024-07-25/commit/a9b152780e3c4d875100853477a006edf49964ec:
I looked at the implementation of
NamedTemporaryFile
in pyutil, and I am not convinced that it would work correctly for asynchronous tests. The problem is that theNamedTemporaryFile
object may go out of scope and have its*del*
method called before all of the callback/errback chains associated with the test have finished (it's possible that the closures of those callbacks/errbacks might hold on to the object for long enough, but that seems error-prone and complicated to reason about).If we were going to add automatic cleanup, I would want it to only be triggered in the test's cleanup phase. Even that is potentially a problem for diagnosing what happened by looking at the files under
_trial_temp
in case of a test failure.