Gentoo Archives: gentoo-user

From: Daniel Frey <djqfrey@×××××.com>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] Re: updating old box: segfaults with python
Date: Fri, 17 Jan 2014 17:14:39
Message-Id: 52D964F5.5010202@gmail.com
In Reply to: [gentoo-user] Re: updating old box: segfaults with python by lovely2
1 On 01/16/2014 08:07 PM, lovely2 wrote:
2 > I doubt this is a memory problem. I've just had the same problem with
3 > glibc-2.17 and python. I manually went back to glibc-2.16 and everything is
4 > fine again. I then tried re-emerging all the python versions with glibc-2.16
5 > installed and then re-emerged glibc-2.17 and had the same problem.
6 >
7 > After running strace on the python2.7. My best guess is that it is a kernel
8 > <> glibc-2.17 incompatiblity. The segfault happens near a mprotect
9 > operation, very early on.
10 >
11 > vault ~ # strace python
12 > -- snip --
13 > mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
14 > 0xb7462000
15 > set_thread_area({entry_number:-1 -> 6, base_addr:0xb74626c0, limit:1048575,
16 > seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1,
17 > seg_not_present:0, useable:1}) = 0
18 > mprotect(0xb7658000, 8192, PROT_READ) = 0
19 > --- SIGSEGV (Segmentation fault) @ 0 (0) ---
20 > +++ killed by SIGSEGV +++
21 > Segmentation fault
22 >
23 > vault ~ # uname -a
24 > Linux vault 2.6.31-gentoo-r10 #1 SMP Sun Mar 7 14:35:15 EST 2010 i686
25 > Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz GenuineIntel GNU/Linux
26 >
27 > I'm upgrading to the latest gentoo-sources. Only thing i'm worried about is
28 > rebooting but all in the life of a gentoo user.
29
30 That could very well be (kernel issue with glibc-2.17.) I just upgraded
31 some 3 year old gentoo VMs and managed to get everything installed. The
32 kernel was the last thing I did have to upgrade, but I was on
33 gentoo-sources-2.6.32 and had no segfault problems.
34
35 From memory, I had to upgrade things in this order:
36 -run emerge --sync
37 -gcc (then switch to new version)
38 -emerge libtool, binutils, linux-headers, glibc (glib as a dependency
39 had to be masked to build, may have to solve some other blocks like a
40 fallocate64 error, i think i had to use `ac_cv_func_fallocate=no emerge
41 bintuils` so libtool would build?)
42 -rebuild gcc (advise from the gcc package - rebuild after glibc update)
43 -upgrade baselayout and openrc (inc. udev, module-init-tool->kmod, etc)
44 -perl (then run perl-cleaner)
45 -python (then remove all stale versions of 3.x and 2.x, switch active to
46 2.7)
47 -python-updater
48 -upgrade portage, portage-utils
49 -unmask things I'd individually masked and try to solve blocks emerging
50 world
51 -eventually world would run, make sure everything built
52 -run emerge-pvuDNe to make sure nothing was missed (something always is)
53 then upgrade those packages
54 -run emerge --depclean
55 -run emerge @preserved-rebuild
56 -run python-update & perl-cleaner
57 -run revdep-rebuild
58 -build & install new kernel (in my case 3.10.25)
59 -reboot
60
61 Damn, it works and it's up to date. Now I wish I could say that only
62 took an hour, but on the first machine it took me almost 10 hours
63 because I was almost always trying to work around blocks. The very last
64 one I got down to 7 hours as I knew exactly what I had to do.
65
66 The problem is it doesn't look like there's still an old 2.6 kernel in
67 the tree you can upgrade to so it might be difficult:
68
69 $ eshowkw gentoo-sources
70 Keywords for sys-kernel/gentoo-sources:
71 | | u |
72 | a a a p s | n |
73 | l m r h i m m p s p | u s | r
74 | p d a m p a 6 i p c 3 a x | s l | e
75 | h 6 r 6 p 6 8 p p 6 9 s r 8 | e o | p
76 | a 4 m 4 a 4 k s c 4 0 h c 6 | d t | o
77 --------------+-----------------------------+-------------+-------
78 3.0.101 | ~ ~ ~ o ~ ~ o o ~ ~ ~ ~ ~ ~ | o 3.0.101 | gentoo
79 --------------+-----------------------------+-------------+-------
80 3.2.54 | ~ ~ ~ o ~ ~ o o ~ ~ ~ ~ ~ ~ | o 3.2.54 | gentoo
81 --------------+-----------------------------+-------------+-------
82 3.4.76 | ~ ~ ~ o ~ ~ o o ~ ~ ~ ~ ~ ~ | o 3.4.76 | gentoo
83 --------------+-----------------------------+-------------+-------
84 3.4.77 | ~ ~ ~ o ~ ~ o o ~ ~ ~ ~ ~ ~ | o 3.4.77 | gentoo
85 --------------+-----------------------------+-------------+-------
86 3.4.9999 | o o o o o o o o o o o o o o | o 3.4.9999 | gentoo
87 --------------+-----------------------------+-------------+-------
88 3.9.11-r1 | o ~ ~ o o ~ o o o o o o o ~ | o 3.9.11-r1 | gentoo
89 --------------+-----------------------------+-------------+-------
90 3.10.7 | + + + o + + o ~ + + + + + + | o 3.10.7 | gentoo
91 --------------+-----------------------------+-------------+-------
92 3.10.7-r1 | + + + o + + o ~ + + + + + + | o 3.10.7-r1 | gentoo
93 --------------+-----------------------------+-------------+-------
94 [I]3.10.17 | ~ + ~ o + ~ o ~ ~ ~ ~ ~ ~ + | o 3.10.17 | gentoo
95 --------------+-----------------------------+-------------+-------
96 3.10.25 | ~ + + o + + o ~ + + ~ ~ ~ + | o 3.10.25 | gentoo
97 --------------+-----------------------------+-------------+-------
98 3.10.26 | ~ ~ ~ o ~ ~ o ~ ~ ~ ~ ~ ~ ~ | o 3.10.26 | gentoo
99 --------------+-----------------------------+-------------+-------
100 3.10.27 | ~ ~ ~ o ~ ~ o ~ ~ ~ ~ ~ ~ ~ | o 3.10.27 | gentoo
101 --------------+-----------------------------+-------------+-------
102 3.10.9999 | o o o o o o o o o o o o o o | o 3.10.9999 | gentoo
103 --------------+-----------------------------+-------------+-------
104 3.11.10 | ~ ~ ~ o ~ ~ o ~ ~ ~ ~ ~ ~ ~ | o 3.11.10 | gentoo
105 --------------+-----------------------------+-------------+-------
106 3.11.9999 | o o o o o o o o o o o o o o | o 3.11.9999 | gentoo
107 --------------+-----------------------------+-------------+-------
108 3.12.7 | ~ ~ ~ o ~ ~ o ~ ~ ~ ~ ~ ~ ~ | o 3.12.7 | gentoo
109 --------------+-----------------------------+-------------+-------
110 3.12.8 | ~ ~ ~ o ~ ~ o ~ ~ ~ ~ ~ ~ ~ | o 3.12.8 | gentoo
111 --------------+-----------------------------+-------------+-------
112 3.12.9999 | o o o o o o o o o o o o o o | o 3.12.9999 | gentoo
113
114
115 Dan

Replies

Subject Author
Re: [gentoo-user] Re: updating old box: segfaults with python "Stefan G. Weichinger" <lists@×××××.at>