1 |
Replies inter-posted |
2 |
|
3 |
|
4 |
On 30/12/2013 14:25, Tanstaafl wrote: |
5 |
> On 2013-12-30 6:30 AM, Alan McKinnon <alan.mckinnon@×××××.com> wrote: |
6 |
>> To see what's going on, run ldd on: |
7 |
>> |
8 |
>> /usr/lib64/apache2/modules/libphp5.s |
9 |
> |
10 |
> Result: |
11 |
> |
12 |
>> # ldd /usr/lib64/apache2/modules/libphp5.so |
13 |
>> ldd: warning: you do not have execution permission for |
14 |
>> `/usr/lib64/apache2/modules/libphp5.so' |
15 |
>> linux-vdso.so.1 (0x00007fffc3cbf000) |
16 |
>> libc-client.so.1 => /usr//lib64/libc-client.so.1 |
17 |
>> (0x00007f279599d000) |
18 |
>> libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f279577b000) |
19 |
>> libreadline.so.6 => /lib64/libreadline.so.6 (0x00007f2795535000) |
20 |
>> libaspell.so.15 => /usr//lib64/libaspell.so.15 |
21 |
>> (0x00007f2795263000) |
22 |
>> libm.so.6 => /lib64/libm.so.6 (0x00007f2794f69000) |
23 |
>> libssl.so.1.0.0 => /usr//lib64/libssl.so.1.0.0 |
24 |
>> (0x00007f2794cff000) |
25 |
>> libcrypto.so.1.0.0 => /usr//lib64/libcrypto.so.1.0.0 |
26 |
>> (0x00007f279491a000) |
27 |
>> libz.so.1 => /lib64/libz.so.1 (0x00007f2794703000) |
28 |
>> libmcrypt.so.4 => /usr//lib64/libmcrypt.so.4 (0x00007f27944d1000) |
29 |
>> libdl.so.2 => /lib64/libdl.so.2 (0x00007f27942cd000) |
30 |
>> libonig.so.2 => /usr//lib64/libonig.so.2 (0x00007f2794062000) |
31 |
>> libt1.so.5 => /usr//lib64/libt1.so.5 (0x00007f2793e03000) |
32 |
>> libfreetype.so.6 => /usr//lib64/libfreetype.so.6 |
33 |
>> (0x00007f2793b64000) |
34 |
>> libpng15.so.15 => /usr//lib64/libpng15.so.15 (0x00007f2793939000) |
35 |
>> libjpeg.so.8 => /usr//lib64/libjpeg.so.8 (0x00007f27936e4000) |
36 |
>> libdb-4.8.so => /usr//lib64/libdb-4.8.so (0x00007f279336a000) |
37 |
>> libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f279314c000) |
38 |
>> libgdbm.so.3 => /usr//lib64/libgdbm.so.3 (0x00007f2792f46000) |
39 |
>> libcurl.so.4 => /usr//lib64/libcurl.so.4 (0x00007f2792ceb000) |
40 |
>> libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f2792ada000) |
41 |
>> libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f2792873000) |
42 |
>> libxml2.so.2 => /usr//lib64/libxml2.so.2 (0x00007f2792512000) |
43 |
>> libmysqlclient.so.16 => /usr/lib64/mysql/libmysqlclient.so.16 |
44 |
>> (0x00007f279218b000) |
45 |
>> libnetsnmp.so.30 => /usr//lib64/libnetsnmp.so.30 |
46 |
>> (0x00007f2791eb0000) |
47 |
>> libc.so.6 => /lib64/libc.so.6 (0x00007f2791b0a000) |
48 |
>> libpam.so.0 => /lib64/libpam.so.0 (0x00007f27918fb000) |
49 |
>> libncurses.so.5 => /lib64/libncurses.so.5 (0x00007f27916d8000) |
50 |
>> libstdc++.so.6 => |
51 |
>> /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/libstdc++.so.6 |
52 |
>> (0x00007f27913d3000) |
53 |
>> /lib64/ld-linux-x86-64.so.2 (0x00007f279681b000) |
54 |
>> librt.so.1 => /lib64/librt.so.1 (0x00007f27911ca000) |
55 |
>> libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f2790f95000) |
56 |
>> libgcc_s.so.1 => |
57 |
>> /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/libgcc_s.so.1 (0x00007f2790d7e000) |
58 |
|
59 |
|
60 |
looks fine |
61 |
|
62 |
|
63 |
> |
64 |
> and |
65 |
> |
66 |
>> /usr//lib64/libcurl.so.4 |
67 |
> |
68 |
>> # ldd /usr//lib64/libcurl.so.4 |
69 |
>> linux-vdso.so.1 (0x00007fffa7bff000) |
70 |
>> libssl.so.1.0.0 => /usr/lib64/libssl.so.1.0.0 |
71 |
>> (0x00007f510232b000) |
72 |
>> libcrypto.so.1.0.0 => /usr/lib64/libcrypto.so.1.0.0 |
73 |
>> (0x00007f5101f46000) |
74 |
>> libz.so.1 => /lib64/libz.so.1 (0x00007f5101d2f000) |
75 |
>> librt.so.1 => /lib64/librt.so.1 (0x00007f5101b27000) |
76 |
>> libc.so.6 => /lib64/libc.so.6 (0x00007f5101781000) |
77 |
>> libdl.so.2 => /lib64/libdl.so.2 (0x00007f510157c000) |
78 |
>> libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f510135f000) |
79 |
>> /lib64/ld-linux-x86-64.so.2 (0x00007f51027fb000) |
80 |
|
81 |
|
82 |
looks fine |
83 |
|
84 |
|
85 |
> |
86 |
> Doesn't mean anything to me though... ;) |
87 |
|
88 |
It's just a list of the libs a file knows it is linked to. |
89 |
First is the lib name then the big arrow (=>) then the file containing |
90 |
that lib then a bunch of numbers. Ignore the numbers, pay most attention |
91 |
to anything that says "not found" - that's the junk revdep-rebuild looks for |
92 |
|
93 |
|
94 |
> |
95 |
>> preserved-rebuild should just take care of all this automagically. |
96 |
>> Do you have preserve-libs in FEATURES? |
97 |
> |
98 |
> Nope... is this now recommended? Is it the default on new installs? |
99 |
|
100 |
Yes it's the default for new installs and comes highly recommended |
101 |
(unless you like having stuff not work at all till revdep-rebuild |
102 |
completes...) |
103 |
|
104 |
There was a news item 2013-06-07: |
105 |
|
106 |
2013-06-07-portage-preserve-libs-default |
107 |
Title Portage preserve-libs default |
108 |
Author Zac Medico <zmedico@g.o> |
109 |
Posted 2013-06-07 |
110 |
Revision 1 |
111 |
|
112 |
Beginning with sys-apps/portage-2.1.12, FEATURES=preserve-libs is |
113 |
enabled by default. Even though preserve-libs makes it unnecessary to |
114 |
use revdep-rebuild for most common updates, it is still a good practice |
115 |
to run `revdep-rebuild -ip` after updates, in order to check if there |
116 |
are any broken library dependencies that preserve-libs was not able to |
117 |
handle. For example, see http://bugs.gentoo.org/show_bug.cgi?id=459038. |
118 |
|
119 |
If you would like to disable preserve-libs by default, then set |
120 |
FEATURES="-preserve-libs" in make.conf. See the make.conf(5) man page |
121 |
or the following wiki page for more information: |
122 |
|
123 |
http://wiki.gentoo.org/wiki/Preserve-libs |
124 |
|
125 |
> |
126 |
>> Do a pretend run of revdep-rebuild. I'll bet you end up rebuilding curl |
127 |
>> and/or php, but not apache. |
128 |
> |
129 |
> Actually, I did that right after the updates and it didn't recommend |
130 |
> anything (I always do revdep-rebuild -p after any system updates like |
131 |
> gcc, glib/c, etc)... |
132 |
> |
133 |
>> Apache is unlikely to be at fault, it loads a dynamic module and use it, |
134 |
>> that module either works or it doesn't. |
135 |
> |
136 |
> Ok... so, the question is still why did it die? |
137 |
> |
138 |
> This happened by the way when the logs were rotated by logrotate. Maybe |
139 |
> that is significant? |
140 |
|
141 |
Yes, that is highly significant. |
142 |
|
143 |
IIRC logrotate can work in one of two ways: |
144 |
|
145 |
1. rename the log file and create a new empty one |
146 |
2. copy the log file elsewhere and truncate the original |
147 |
|
148 |
I forget which way it does it for the moment... |
149 |
|
150 |
#1 is fast but leaves the daemon (apache or syslog) trying to write to a |
151 |
file that isn't there anymore. Or worse, it's writing to an open file |
152 |
that has been deleted and a new one with the same name still exists. |
153 |
#2 is slower but safer. |
154 |
|
155 |
Either way, the apache daemon has to be told it's log file went away. |
156 |
Not all daemons can use inotify to just find this out, some have to be |
157 |
told, so logrotate resets/restarts/hups them. In the case of apache it |
158 |
does a graceful restart (what you get with apachectl graceful). |
159 |
|
160 |
Your apache re-read it's config file at that point, found any error for |
161 |
php and decided to roll over and die. It's designed to do that (nagios |
162 |
os similar btw would have told you this happened) |
163 |
|
164 |
|
165 |
|
166 |
> |
167 |
>>> The GCC Upgrade guide is a bit outdated (still referring to gcc 3.4 and |
168 |
>>> 4.1, with no mention of newer versions, so I wasn't sure if that was |
169 |
>>> still necessary... |
170 |
> |
171 |
>> According to the posted error, this has nothing to do with compiler |
172 |
>> versions, it is linker errors related to glibc |
173 |
>> |
174 |
>> You do not have to rebuild system, world or the known universe. You only |
175 |
>> have to do that when the a gcc upgrade changes the data format on-disk |
176 |
>> that the C++ compiler generates. That has not happened here. |
177 |
>> |
178 |
>> There's an insane amounts of FUD around about rebuilding gcc, all of it |
179 |
>> originating from ricers without a clue. You run strictly stable-only so |
180 |
>> never fear, if a gcc upgrade required a world rebuild you would have |
181 |
>> already been subjected to 12-month long threads about it right here on |
182 |
>> this list |
183 |
> |
184 |
> I know, and the GCC upgrade guide is pretty clear on that point, and |
185 |
> since I didn't say anything about rebuilding anything other than |
186 |
> sys-devel/libtool, which it does specifically mention, I'm not sure why |
187 |
> you brought that up in this context. |
188 |
> |
189 |
> I just did it (rebuilt libtool) anyway, maybe I should do the same for |
190 |
> curl and/or php... |
191 |
|
192 |
It won't do any harm. php might take a while to rebuild though... ;-) |
193 |
|
194 |
|
195 |
> |
196 |
> No worries, apache is only used for local admin stuff anyway, so it |
197 |
> isn't like anyone other than me will notice if it dies... :) |
198 |
|
199 |
|
200 |
|
201 |
-- |
202 |
Alan McKinnon |
203 |
alan.mckinnon@×××××.com |