[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#612986: apt: E: Method rred has died unexpectedly! E: Sub-process rred received a segmentation fault. [sparc, powerpc]



Hi David,

David Kalnischkies hat am Sun 13. Feb, 12:57 (+0100) geschrieben:
> On Sat, Feb 12, 2011 at 16:33, Jörg Sommer <joerg@alea.gnuu.de> wrote:
> > Me (powerpc) has the same problem. The problem is that in rred.cc:258 an
> > incomplete object dyn is created, due to _error->PendingError() in
> > contrib/mmap.cc:223 returns true. The object has the attribute Base=0
> > which is feed to mmap in contrib/mmap.cc:270 on object destruction. This
> > call causes the segfault.
> >
> > I don't know if Base == 0 is a valid state for a DynamicMMap object and
> > the destructor has to check this value or if there's something else
> > rotten and Base == 0 signals a deeper broken state.
> 
> It is a bad state as mmap creation shouldn't fail (as the error shows), but
> we have a fallback for systems without mmap so failing with a segfault is
> absolutely bad as we could use this fallback. (Fixed.)

But mmap did not fail, beause it's not available, but the requested
memory region was to big; 2 GB, but I have only 800 MB.

> It would be cool if someone with a big-endian machine could test the attached
> diff which should fix this and related problems.
> A tester wouldn't even need to install the self-built apt - building the tree
> and running ./test/integration/test-pdiff-usage is enough to test it
> (but you need to install weborf).

It doesn't work. dyn->Data() is -1 when mmap failed; see mmap.cc:81.
Wouldn't it be much cleaner to add a method valid_state() to DynamicMMap?

And you have in include config.h in fileutl.cc, otherwise the constant
WORDS_BIGENDIAN isn't defined.

With these changes, the test passes.

Bye, Jörg.
-- 
Wer in einem gewissen Alter nicht merkt, dass er hauptsächlich von
Idioten umgeben ist, merkt es aus einem gewissen Grunde nicht.
		     	      	  		(Curt Goetz)

Attachment: signature.asc
Description: Digital signature http://en.wikipedia.org/wiki/OpenPGP


Reply to: