This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: xz -9 : Cannot allocate memory


On Aug 30 19:46, Corinna Vinschen wrote:
> On Aug 30 12:58, Achim Gratz wrote:
> > Corinna Vinschen <corinna-cygwin <at> cygwin.com> writes:
> > > Yes, looks normal and expected from what you observed.  mmap commits
> > > memory top-down and that was apparently the first free slot big enough
> > > to fullfil the request.  The default heap size is 384 Megs and then
> > > there's apparently not enough space anywhere.
> > 
> > Sorry if I'm dense, but does this mean that setting the default heap size to
> > zero does in fact mean it's trying to use 374MiB... wait, yes it is: the
> > memory map is the same when I'm setting the initial heap size to 384MiB with
> > peflags.
> > 
> > So, even though that rather large heap is essentially unused at the point of
> > failure and there is enough memory free just beyond the heap, the allocation
> > still fails because both the existing heap and the free space are both
> > smaller than what's requested?
> 
> Well, good question.  You could debug the sbrk function and see why
> it fails to reserve the space.

I just debugged this and it seems our sbrk implementation has a serious
problem to extend the heap if the new chunk of memory requires to commit
some of the existing heap and to reserve and commit some more space.
It tries to reserve memory using the wrong address and the wrong size.
It also uses a too simple method to commit the memory.  I'll apply a fix
shortly.


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

Attachment: pgpK0Gzd1vo7I.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]