in case you didn't see this

linas@linas.org linas@linas.org
Fri, 16 Mar 2001 09:59:58 -0600 (CST)


> 
> To: gnucash-devel@gnucash.org
> Subject: TransBeginEdit() before a backend is available?
> From: Derek Atkins <warlord@MIT.EDU>
> 
> I've tracked down my unbalanced TransCommitEdit().  The problem is
> that at SplitLedger.c:1204 if the transaction is new then doesn't have
> enough information to find a Backend.  Therefore, this call to
> TransBeginEdit() winds up ignoring the backend.  Then, when the
> transaction is committed later, the backend doesn't know that it never
> actually received an earlier 'beginedit()'.
> 
> There aren't any real errors here; just a warning that there is an
> unbalanced transaction commit.  I don't know if we care to fix this or
> not.  What it means is that there is no way to inform the backend that
> there is a new transaction coming.  Perhaps this isn't a problem.  I
> don't know.

This is a bug; the calls are meant to be balanced.  However, the fix
is not entirely obvious; pulling the backend out of a global would
suffice, but I've tried really hard to avoid globals elsewhere ...

> Anyways, I think this is my last major bug that I know of.  The RPC
> Backend seems to work fairly well for me, with a single user and a
> file sitting behind the RPC Server.  There is probably an issue where
> a user may lose their changes if they lose their connection to the
> server.

If you back onto the database backend on the remote side, then stores
are incremental, and should survive the loss of connection.

> Also, I don't have any support for the pricedb.

neither does the sqldb; I was holding off on that until there's a
report that requires prices.

> I'll send patches probably this weekend or early next week.

what directory? src/experimental? a subdirectory of src/engine ?

--linas