Installworld failed on HEAD
Matthew Dillon
dillon at apollo.backplane.com
Sat Apr 25 09:47:02 PDT 2009
:
:Hi all,
:
:Both kernel and world are built with buildkernel and buildworld. New
:kernel is installed before installing the world.
:I got following error from cpdup during installworld:
:Fatal error 'Cannot allocate red zone for initial thead' at line 263
:in file /usr/src/lib/libthread_xu/thread/thr_init.c (errno = 12)
:Seems to be related to recent libthread_xu changes.
:
:Best Regards,
:sephe
:
:--
:Live Free or Die
Hmm. This is a bit of a conundrum, but one that ought to only
effect statically-built threaded applications. I figured I
might as well fix the issue close to our libc major change.
cpdup is a statically built threaded application.
libthread_xu had a bug in it where it was trying to map the
guard for the initial user stack using MAP_ANON instead of
MAP_ANON|MAP_FIXED. And now that I think about it, I should
probably use MAP_ANON|MAP_TRYFIXED. But either way the original
cpdup was doing an illegal mmap() call and because there is no
available address space beyond the stack address it passed it
that mmap() call fails instead of returning some other region
of memory.
I will look into fixing cpdup... I think I can adust it so it does
not initialize the threading system if it isn't being run with a
threading option.
-Matt
Matthew Dillon
<dillon at backplane.com>
More information about the Bugs
mailing list