On Fri, 2011-03-04 at 15:06 -0400, Joey Hess wrote:
> James Bottomley wrote:
> > I picked this up on a recent testing upgrade (last Saturday).  My
> > postgrey process is now dying every night as well (I've set up a harness
> > to restart it, but it's not ideal).
> > 
> > Following what happened in #441069 I tried
> > 
> > db5.1_recover -h /var/lib/postgrey/
> > 
> > but that doesn't fix the problem.  Whatever it is, it looks to be deeper
> > than simply an incompatible database update.
> 
> My workaround has been to simply disable the broken part on line 249:
> 
>     if(0 and $hour > 1 and $hour < 7 and
>         $now - $self->{postgrey}{last_maint_keys} >= 82800)

Well, that means your database never gets cleaned.  I was going to say
that simply restarting at least meant the main database got cleaned
(because it's crashing on the AWL transaction).  However, I stripped the
cleaning code from postgrey and ran it on a copy of the database.  In
spite of the fact that there's no error on the first $txn->commit(), the
transaction hasn't committed.  The next transaction you try to create in
the $db_env is empty, which is why the crash.

What's even stranger is that the entire db and db_cawl ties look to be
non functional after $txn->commit() ... it's like setting up the
transaction actually causes the entire perl DB mechanism to fall over.

This all smells like a libdb5.1 problem.

If I remove the transactions and just do a straight delete, everything
works (at least in my test environment; I'll try it on the real program
tonight).  There's actually no real reason for the deletes to be done
transactionally.  Even if we get a crash, we don't care whether all the
keys or none are deleted ... if we get partial deletion, the next
cleanup will get the rest.

James





-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to