[MacPorts] #70556: "base" seemingly locking up for sometimes very long
MacPorts
noreply at macports.org
Sun Aug 18 13:55:32 UTC 2024
#70556: "base" seemingly locking up for sometimes very long
--------------------------+--------------------
Reporter: RJVB | Owner: (none)
Type: enhancement | Status: new
Priority: Normal | Milestone:
Component: base | Version:
Resolution: | Keywords:
Port: |
--------------------------+--------------------
Comment (by RJVB):
FWIW, I just tweaked the code a bit so that `registry::set_needs_vacuum`
also forces an actual vacuum step, and `reg_vacuum` traces what it's doing
and how much free space there was to begin with.
The test install where I did this has a registry that's only 4MB (real MBs
;)) large, but the bit of my script above
{{{
puts "Closing registry and ${maybe}performing vacuum ..."
flush stdout
set t0 [clock clicks -millisec]
mportshutdown
puts "All done ([expr {([clock clicks -millisec]-$t0)}] ms)"
}}}
reports an execution time of about 240ms when actually doing the VACUUM
(with 0 bytes free space) compared to only 2ms when the operation is
skipped.
Is it conceivable that the registry ends up in a state where a single
vacuum operation will never get all free space, or worse, where it's not
possible to recuperate all free space? Supposing an sqlite DB file can be
compared to a filesystem such situations can probably arise when the free
space is fragmented enough.
Another thought: is there an architecture-related limit here, iow, could
this have something to do with being on a 32bit machine?
--
Ticket URL: <https://trac.macports.org/ticket/70556#comment:11>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list