On 01/16/2014 08:07 PM, lovely2 wrote:
> I doubt this is a memory problem. I've just had the same problem with
> glibc-2.17 and python. I manually went back to glibc-2.16 and everything is
> fine again. I then tried re-emerging all the python versions with glibc-2.16
> installed and then re-emerged glibc-2.17 and had the same problem.
>
> After running strace on the python2.7. My best guess is that it is a kernel
> <> glibc-2.17 incompatiblity. The segfault happens near a mprotect
> operation, very early on.
>
> vault ~ # strace python
> -- snip --
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
> 0xb7462000
> set_thread_area({entry_number:-1 -> 6, base_addr:0xb74626c0, limit:1048575,
> seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1,
> seg_not_present:0, useable:1}) = 0
> mprotect(0xb7658000, 8192, PROT_READ) = 0
> --- SIGSEGV (Segmentation fault) @ 0 (0) ---
> +++ killed by SIGSEGV +++
> Segmentation fault
>
> vault ~ # uname -a
> Linux vault 2.6.31-gentoo-r10 #1 SMP Sun Mar 7 14:35:15 EST 2010 i686
> Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz GenuineIntel GNU/Linux
>
> I'm upgrading to the latest gentoo-sources. Only thing i'm worried about is
> rebooting but all in the life of a gentoo user.
That could very well be (kernel issue with glibc-2.17.) I just upgraded
some 3 year old gentoo VMs and managed to get everything installed. The
kernel was the last thing I did have to upgrade, but I was on
gentoo-sources-2.6.32 and had no segfault problems.
>From memory, I had to upgrade things in this order:
-run emerge --sync
-gcc (then switch to new version)
-emerge libtool, binutils, linux-headers, glibc (glib as a dependency
had to be masked to build, may have to solve some other blocks like a
fallocate64 error, i think i had to use `ac_cv_func_fallocate=no emerge
bintuils` so libtool would build?)
-rebuild gcc (advise from the gcc package - rebuild after glibc update)
-upgrade baselayout and openrc (inc. udev, module-init-tool->kmod, etc)
-perl (then run perl-cleaner)
-python (then remove all stale versions of 3.x and 2.x, switch active to
2.7)
-python-updater
-upgrade portage, portage-utils
-unmask things I'd individually masked and try to solve blocks emerging
world
-eventually world would run, make sure everything built
-run emerge-pvuDNe to make sure nothing was missed (something always is)
then upgrade those packages
-run emerge --depclean
-run emerge @preserved-rebuild
-run python-update & perl-cleaner
-run revdep-rebuild
-build & install new kernel (in my case 3.10.25)
-reboot
Damn, it works and it's up to date. Now I wish I could say that only
took an hour, but on the first machine it took me almost 10 hours
because I was almost always trying to work around blocks. The very last
one I got down to 7 hours as I knew exactly what I had to do.
The problem is it doesn't look like there's still an old 2.6 kernel in
the tree you can upgrade to so it might be difficult:
$ eshowkw gentoo-sources
Keywords for sys-kernel/gentoo-sources:
| | u |
| a a a p s | n |
| l m r h i m m p s p | u s | r
| p d a m p a 6 i p c 3 a x | s l | e
| h 6 r 6 p 6 8 p p 6 9 s r 8 | e o | p
| a 4 m 4 a 4 k s c 4 0 h c 6 | d t | o
--------------+-----------------------------+-------------+-------
3.0.101 | ~ ~ ~ o ~ ~ o o ~ ~ ~ ~ ~ ~ | o 3.0.101 | gentoo
--------------+-----------------------------+-------------+-------
3.2.54 | ~ ~ ~ o ~ ~ o o ~ ~ ~ ~ ~ ~ | o 3.2.54 | gentoo
--------------+-----------------------------+-------------+-------
3.4.76 | ~ ~ ~ o ~ ~ o o ~ ~ ~ ~ ~ ~ | o 3.4.76 | gentoo
--------------+-----------------------------+-------------+-------
3.4.77 | ~ ~ ~ o ~ ~ o o ~ ~ ~ ~ ~ ~ | o 3.4.77 | gentoo
--------------+-----------------------------+-------------+-------
3.4.9999 | o o o o o o o o o o o o o o | o 3.4.9999 | gentoo
--------------+-----------------------------+-------------+-------
3.9.11-r1 | o ~ ~ o o ~ o o o o o o o ~ | o 3.9.11-r1 | gentoo
--------------+-----------------------------+-------------+-------
3.10.7 | + + + o + + o ~ + + + + + + | o 3.10.7 | gentoo
--------------+-----------------------------+-------------+-------
3.10.7-r1 | + + + o + + o ~ + + + + + + | o 3.10.7-r1 | gentoo
--------------+-----------------------------+-------------+-------
[I]3.10.17 | ~ + ~ o + ~ o ~ ~ ~ ~ ~ ~ + | o 3.10.17 | gentoo
--------------+-----------------------------+-------------+-------
3.10.25 | ~ + + o + + o ~ + + ~ ~ ~ + | o 3.10.25 | gentoo
--------------+-----------------------------+-------------+-------
3.10.26 | ~ ~ ~ o ~ ~ o ~ ~ ~ ~ ~ ~ ~ | o 3.10.26 | gentoo
--------------+-----------------------------+-------------+-------
3.10.27 | ~ ~ ~ o ~ ~ o ~ ~ ~ ~ ~ ~ ~ | o 3.10.27 | gentoo
--------------+-----------------------------+-------------+-------
3.10.9999 | o o o o o o o o o o o o o o | o 3.10.9999 | gentoo
--------------+-----------------------------+-------------+-------
3.11.10 | ~ ~ ~ o ~ ~ o ~ ~ ~ ~ ~ ~ ~ | o 3.11.10 | gentoo
--------------+-----------------------------+-------------+-------
3.11.9999 | o o o o o o o o o o o o o o | o 3.11.9999 | gentoo
--------------+-----------------------------+-------------+-------
3.12.7 | ~ ~ ~ o ~ ~ o ~ ~ ~ ~ ~ ~ ~ | o 3.12.7 | gentoo
--------------+-----------------------------+-------------+-------
3.12.8 | ~ ~ ~ o ~ ~ o ~ ~ ~ ~ ~ ~ ~ | o 3.12.8 | gentoo
--------------+-----------------------------+-------------+-------
3.12.9999 | o o o o o o o o o o o o o o | o 3.12.9999 | gentoo
Dan