RPM Community Forums

Mailing List Message of <rpm-devel>

Re: RPM 5 broken with DB 4.6!?

From: Jeff Johnson <n3npq@mac.com>
Date: Sun 29 Jul 2007 - 19:02:24 CEST
Message-Id: <1B3A33AE-63DD-4336-8576-CA07F305A3C8@mac.com>

On Jul 29, 2007, at 12:47 PM, Ralf S. Engelschall wrote:

> On Sun, Jul 29, 2007, Jeff Johnson wrote:
>
>>> Jeff, can you investigate on this remaining issue, please?
>>
>> Already investigated.
>>
>> Guaranteeing that a rpmdb is closed gracefully under all possible
>> conditions is a fool's implementation.
>>
>> Consider segfaults, kill -9, reboot, more.
>>
>> So stale locks are detected and cleaned on next invocation instead.
>> [...]
>
> Sorry, I personally cannot fully agree here, Jeff.
>

OK, we disagree ;-)

> Yes, I agree, it is perfect that RPM is really able to detect and
> cleanup in case of any aborts it has not under its own control (like
> segfaults, kill -9, reboots, etc.) I really like that this is the  
> case.
>

AFAICT, insque on a new development platform was the root cause
for the exit. How is detect/cleanup to be achieved in that environment?

> But, no, IMHO this is not a general excuse for not doing any clean
> program terminations in case of an abort/error which RPM _HAS_ under
> full control. I personally consider this just lazy programming.
>

OK. So make a postive suggestion. So far you've asked me to  
"investigate", and
are implying that I'm "lazy".

The rpmdb close occurs when a rpmts is released.

Your --erase has managed an exit where rpmtsFree() did not occur, or  
because there
is an additional reference count that could be displayed with -- 
rpmtsdebug if a reproducer
was known.

Boogered insque on a development code base on a brand new platform
is not exactly a reproducer that is meaningful.

Nor is mmap(2) fubarage in a linux kernel.

> Sure, at least on the next invocation, the result is effectively the
> same. But to make a comparison: just because a reasonable Unix  
> platform
> removes all files in /tmp during booting doesn't mean program can stop
> removing their temporary files at all, etc. Or just because you have a
> journaling filesystem also doesn't mean that you now should prefer to
> shutdown your system by breaking into the kernel debugger and  
> triggering
> a manual panic.

Details and/or additional suggestions please, I'd like not to be "lazy".

73 de Jeff
Received on Sun Jul 29 19:02:36 2007
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.