[pacman-dev] Some comments on Bryan patches (bugs)

Nagy Gabor ngaba at bibl.u-szeged.hu
Fri Mar 6 15:24:06 EST 2009


> Nagy Gabor wrote:
> > Hi!
> >
> > I know that I speak too late, but I haven't time/motivation to review
> > this patch nowadays.
> >
> > 1. See alpm/sync.c/sync_prepare(). When user decides to remove
> > unresolvable targets from the list, our code doesn't remove any targets
> > from target->packages, just adds the pulled dependencies. The actual
> > removal is done in the sortbydeps part (sortbydeps is called with list
> > param!). This works, but it is hard to understand (imho), and it is a
> > memleak: some pmsyncpkg_t structs magically disappeared.
> >   
> 
> I don't think that it's confusing that it happens this way; the resolve 
> operation builds up a new list of packages for the transaction, and that 
> list is then used to replace the trans->packages list.  This is opposed 
> to before where the resolve operation modified trans->packages in place.
> 
> You are right that there is a memory leak there, though; my change 
> failed to free up any pmsyncpkg_t structs which were in trans->packages 
> but were not in the replacement list.  I will submit a small and simple 
> patch which fixes this issue shortly.

OK, but please insert a short comment somewhere to make our code more
readable. (The unresolvable targets will be removed later...)

> sync993 does not exist in the pacman sources.  If it did, I would have 
> seen this problem and addressed it.

That's why I posted it here :) I've just created it to show the problem.
(I like pactests, because we can test our patches easily with them.)

> I will get back to you on this once 
> I have figured out what's going on (I suspect that it's a difference in 
> the way the new resolve code works, it may stop too short now to figure 
> out that there is a 'better' package to choose for resolving the 
> dependency).

In the old code, resolvedeps got the whole target list, now it gets only
the first (already resolved) part of that list.

Bye




More information about the pacman-dev mailing list