[MacPorts] #48327: malformed registry
MacPorts
noreply at macports.org
Wed Jul 15 04:13:08 PDT 2015
#48327: malformed registry
--------------------------+--------------------------------
Reporter: rjvbertin@… | Owner: macports-tickets@…
Type: defect | Status: closed
Priority: Normal | Milestone:
Component: base | Version:
Resolution: invalid | Keywords:
Port: |
--------------------------+--------------------------------
Comment (by cal@…):
Replying to [comment:4 rjvbertin@…]:
> Yes, though I've come to expect issues with sqlite.
SQLite is actually a very-well tested piece of software.
> IIRC, the phpbb forum software is based on it too, and I've witnessed
enough board crashes because of db corruption...
Really? IIRC phpbb uses MySQL.
> > we should probably make a copy, yes. Patches are very welcome on this
one. Note that we cannot copy the database reliably after we've opened the
database, so the copy must be done before opening.
>
> I'm guessing this should best be done in src/cregistry/registry.c, but
should it be in reg_attach()/reg_detach() or rather in
reg_open()/reg_close()? If I'm interpreting the function names correctly,
the latter would provide the finer-grained safety (at the expense of
adding a member to reg_registry). I'm not sure if there's a point to that
though, nor how to handle cases like an existing backup file when a new
backup is to be made. Should that be handled through reg_throw()?
I'd do it in reg_attach/reg_detach; reg_open/reg_close don't deal with the
actual registry database file, but just setup the connection to SQLite and
initialize a few things we need in SQLite. I don't think this backup
mechanism should be a way to provide the feature set that should be
provided by transactions, though. I'd rather have a couple of backup
copies that a user can manually revert to if things stopped working
correctly. Maybe use a timestamp in the target filename? Of course, we'd
need some kind of cleanup, because copying on each open of the registry
can generate a lot of data very quickly.
--
Ticket URL: <https://trac.macports.org/ticket/48327#comment:5>
MacPorts <https://www.macports.org/>
Ports system for OS X
More information about the macports-tickets
mailing list