[pacman-dev] [PATCH] Print error on duplicated database entries

Nagy Gabor ngaba at bibl.u-szeged.hu
Sat Nov 14 04:45:32 EST 2009

> Dan McGee wrote:
> > On Fri, Nov 13, 2009 at 11:33 PM, Allan McRae <allan at archlinux.org> wrote:
> >> Nagy Gabor wrote:
> >>> Some users reported duplicated database entries in /var/lib/pacman/local/,
> >>> for example, both foo-1.0-1 and foo-2.0-1 subdirectories existed. (Bogus
> >>> 3rd-party scripts, backup?) In this case pacman reported no error and its
> >>> behaviour was mysterious.
> >>>
> >>>> From now on, pacman detects this situation and prints an error message.
> >>> Signed-off-by: Nagy Gabor <ngaba at bibl.u-szeged.hu>
> >>> ---
> >> Looks good to me.  I have seen this on the forums a couple of times on the
> >> forums and it is very confusing to diagnose what the problem is.
> > 
> > How does `testdb` come into play here?
> I just created a fake duplicate db entry and ran testdb but it gave no 
> output.

With the patch, testdb just prints the error (when loading pkgcache),
but the retval is 0. If _alpm_db_populate() returned with -1, then
testdb would catch the error (and pacman would exit). First I wanted to
choose this strict behaviour (duplicated entries => error, exit), but I
saw that we never do that atm (with broken entries, etc.) and I was a
bit unsure about sync repos (hm, maybe we should print the repo name in
the error message...): Iirc pacman always loaded sync repos' pkgcache
earlier, so a bogus sync repo would have made pacman disfunctional
(including -Sy), and we have different GUIs.

If we prefer the strict behaviour, I will resubmit the patch.


More information about the pacman-dev mailing list