Gentoo Archives: gentoo-amd64

From: "John P. Burkett" <burkett@×××.edu>
To: gentoo-amd64@l.g.o
Subject: Re: [gentoo-amd64] Re: kdelibs-3.5.10-r6 failed
Date: Sun, 14 Jun 2009 16:13:40
Message-Id: 4A35210B.4050400@uri.edu
In Reply to: [gentoo-amd64] Re: kdelibs-3.5.10-r6 failed by Duncan <1i5t5.duncan@cox.net>
1 Duncan wrote:
2 > "John P. Burkett" <burkett@×××.edu> posted 4A345D3B.9030704@×××.edu,
3 > excerpted below, on Sat, 13 Jun 2009 22:15:23 -0400:
4 >
5 >> Doing "emerge -NauvD world" on an amd64 machine today produced an error
6 >> message including the following lines:
7 >
8 >> /usr/qt/3/include/qimage.h:61: warning: suggest parentheses around &&
9 >> within ||
10 >> /bin/sh: line 3: 4627 Segmentation fault /usr/qt/3/bin/uic
11 >> -nounload -tr tr2i18n -i kshortcutdialog_advanced.h
12 >> ./kshortcutdialog_advanced.ui > kshortcutdialog_advanced.cpp.temp
13 >> make[3]: *** [kshortcutdialog_advanced.cpp] Error 139
14 >> make[3]: *** Waiting for unfinished jobs....
15 >
16 > That wasn't the first error, but the first one wasn't too far above that
17 > and was also a segfault. FWIW, searching the log for either "err" (case
18 > insensitive, this one will produce a lot of false positives, hitting on
19 > error functions in what what's being compiled, etc, but it's usually
20 > quite easy to tell the false positives from the error) or "Waiting for
21 > unfinished jobs" often makes finding the first error easier.
22 >
23 > Here it is, from your attached changelog (thanks):
24 > /usr/qt/3/bin/uic -nounload -tr tr2i18n -i kshortcutdialog_simple.h
25 > ./kshortcutdialog_simple.ui > kshortcutdialog_simple.cpp.temp ;
26 > ret=$?;
27 > [snip]
28 >
29 > /bin/sh: line 3: 4547 Segmentation fault /usr/qt/3/bin/uic
30 > -nounload -tr tr2i18n -i kshortcutdialog_simple.h
31 > ./kshortcutdialog_simple.ui > kshortcutdialog_simple.cpp.temp
32 > echo '#include <klocale.h>' >> kshortcutdialog_advanced.cpp
33 > make[3]: *** [kshortcutdialog_simple.cpp] Error 139
34 > make[3]: *** Waiting for unfinished jobs....
35 >
36 > Here's the directory it was working in (for both errors). That tends
37 > to help put the error(s) in context:
38 >
39 >> make[3]: Leaving directory
40 >> `/var/tmp/portage/kde-base/kdelibs-3.5.10-r6/work/kdelibs-3.5.10/kdeui'
41 >
42 >> I have tried re-emerging qt and inserting "kde-base/kdelibs utempter" in
43 >> the /etc/portage/package.use file.
44 >> Neither of those steps resolved the problem.
45 >
46 > Segfaults aren't supposed to happen during a build. When they do
47 > happen, it often indicates hardware issues, especially when it's
48 > gcc or the like segfaulting. However, here, it wasn't gcc, but
49 > "uic", and I don't know if it's generally as resistant to segfaulting.
50 >
51 > One often useful way to help figure out whether it's hardware or
52 > software is to run the compile again, and see if the error happens
53 > in the same or a different place.
54
55 Thank you, Duncan, for your thorough and helpful response.
56 This morning I again did "eix-sync", "emerge -NauvD system", and "emerge
57 -NauvD world" with results similar to those obtained yesterday. The
58 systems reports "Failed to emerge kde-base/kdelibs-3.5.10-r6."
59
60 Searching the new build.log (attached), I see a section identical to the
61 first one you quoted above:
62 /usr/qt/3/bin/uic -nounload -tr tr2i18n -i kshortcutdialog_simple.h
63 ./kshortcutdialog_simple.ui > kshortcutdialog_simple.cpp.temp ; ret=$?; \
64
65 A little further down in build.log, I see a section similar to the
66 second one you quoted:
67 /bin/sh: line 3: 11039 Segmentation fault /usr/qt/3/bin/uic
68 -nounload -tr tr2i18n -i kshortcutdialog_simple.h
69 ./kshortcutdialog_simple.ui > kshortcutdialog_simple.cpp.temp
70 In file included from kpixmapregionselectorwidget.cpp:30:
71 /usr/qt/3/include/qimage.h: In member function 'bool
72 QImageTextKeyLang::operator<(const QImageTextKeyLang&) const':
73 /usr/qt/3/include/qimage.h:61: warning: suggest parentheses around &&
74 within ||
75 make[3]: *** [kshortcutdialog_simple.cpp] Error 139
76 make[3]: *** Waiting for unfinished jobs....
77
78 > Setting MAKEOPTS=-j1 also
79 > helps with the ordering, so you're likely to get the same error
80 > at the same spot as a different -j1 run (tho generally not the same
81 > as when running multiple jobs, as you were here). That also forces
82 > everything to serialize, thus often making the error and reason for
83 > it clear.
84
85 The first time I did "MAKEOPTS=-j1 emerge -NauvD world" the response
86 included the familiar
87
88 /usr/qt/3/bin/uic -nounload -tr tr2i18n -i kshortcutdialog_simple.h
89 ./kshortcutdialog_simple.ui > kshortcutdialog_simple.cpp.temp ; ret=$?;
90
91 and
92
93 /bin/sh: line 3: 21297 Segmentation fault /usr/qt/3/bin/uic
94 -nounload -tr tr2i18n -i kshortcutdialog_simple.h
95 ./kshortcutdialog_simple.ui > kshortcutdialog_simple.cpp.temp
96 make[3]: *** [kshortcutdialog_simple.cpp] Error 139
97
98 The output ended with the usual
99 * A complete build log is located at
100 '/var/tmp/portage/kde-base/kdelibs-3.5.10-r6/temp/build.log'.
101 * The ebuild environment file is located at
102 '/var/tmp/portage/kde-base/kdelibs-3.5.10-r6/temp/environment'.
103
104 Running "MAKEOPTS=-j1 emerge -NauvD world" again, I get similar results
105 including the now very familiar
106
107 /usr/qt/3/bin/uic -nounload -tr tr2i18n -i kshortcutdialog_simple.h
108 ./kshortcutdialog_simple.ui > kshortcutdialog_simple.cpp.temp ; ret=$?;
109
110 and
111
112 /bin/sh: line 3: 26652 Segmentation fault /usr/qt/3/bin/uic
113 -nounload -tr tr2i18n -i kshortcutdialog_simple.h
114 ./kshortcutdialog_simple.ui > kshortcutdialog_simple.cpp.temp
115 make[3]: *** [kshortcutdialog_simple.cpp] Error 139
116
117 >
118 > If with multiple -j1 runs it always segfaults in the same place,
119 > it's probably software.
120
121 Given that rule and the evidence cited above, can we conclude that the
122 problem probably lies in software?
123
124 If it's segfaulting or otherwise erroring
125 > in different places each time, it's very likely hardware related.
126 > If it's hardware, you can often make it more reliable by
127 > underclocking memory and/or the CPU, if your BIOS allows that.
128 > (FWIW, I had some bad memory at one point. It would pass memtest,
129 > but in normal use it wasn't entirely reliable. Turns out it
130 > simply wasn't stable at the clock rate it was certified and the
131 > internal settings were set for. Reducing the clock rate one notch
132 > made it stable as a rock, even when I clawed back a bit of the lost
133 > performance with manual wait-state tuning. So I know what that's
134 > like, for sure! At other times I've had CPU issues (due to
135 > overclocking, something I've not done since I went 64-bit) and
136 > hard drive issues. Others have had issues due to underpowered
137 > or faulty power-supplies or UPS units.)
138 >
139 > Meanwhile, I don't know much about the internals of qt, but I'd guess
140 > "uic" indicates "UI compiler (where UI is of course user interface),
141 > particularly since dialogs are certainly UI elements and that's
142 > what it was working on.
143 >
144 > Actually, running /usr/qt/3/bin/uic (path as I have the qt4
145 > version as well, ordered first in the path) with no options,
146 > it TELLS you what it is at the top of the help message it spits
147 > out: "Qt user interface compiler." So I guessed correctly! =:^)
148 >
149 > A quick equery belongs indeed says uic belongs to qt3 (with other
150 > versions elsewhere belonging to qt4 and PyQt4), so that's confirmed.
151 >
152 > You said you already tried remerging qt, which would have been my
153 > initial suggestion. Question: Are you sure you remerged qt3,
154 > *NOT* qt4?
155 No. Indeed, doing "emerge --search qt" produces output including
156 * x11-libs/qt
157 Latest version available: 4.5.1
158 Latest version installed: 4.5.1
159
160
161 That's make a difference! =:^) Try emerge -1 qt:3
162 > to remerge the slot 3 version, if you need to.
163
164 Doing "emerge -1 qt:3" worked o.k. The response is is fairly reassuring:
165 * Messages for package x11-libs/qt-3.3.8b-r1:
166
167 * After a rebuild of Qt, it can happen that Qt plugins (such as Qt/KDE
168 styles,
169 * or widgets for the Qt designer) are no longer recognized. If this
170 situation
171 * occurs you should recompile the packages providing these plugins,
172 * and you should also make sure that Qt and its plugins were compiled
173 with the
174 * same version of GCC. Packages that may need to be rebuilt are, for
175 instance,
176 * kde-base/kdelibs, kde-base/kdeartwork and kde-base/kdeartwork-styles.
177 * See http://doc.trolltech.com/3.3/plugins-howto.html for more infos.
178 >>> Auto-cleaning packages...
179
180 >>> No outdated packages were found on your system.
181
182 * GNU info directory index is up-to-date.
183
184 With that done, I again tried "emerge -DauvD world". The result are
185 about the same. There is still the message
186
187 /usr/qt/3/bin/uic -nounload -tr tr2i18n -i kshortcutdialog_simple.h
188 ./kshortcutdialog_simple.ui > kshortcutdialog_simple.cpp.temp ; ret=$?;
189
190 and the message
191 /bin/sh: line 3: 9344 Segmentation fault /usr/qt/3/bin/uic
192 -nounload -tr tr2i18n -i kshortcutdialog_simple.h
193 ./kshortcutdialog_simple.ui > kshortcutdialog_simple.cpp.temp
194 make[3]: *** [kshortcutdialog_simple.cpp] Error 139
195 make[3]: *** Waiting for unfinished jobs....
196
197 The latest build.log file, which I've renamed as build3.log, is attached.
198
199 Anything else I should try along these lines? Or is it time to post a
200 bug report?
201
202 Thanks again for your help.
203
204 -John
205
206 >
207 > Beyond that, I don't know... Let me check for bugs that look
208 > similar... Either there are none or my bug-foo is bad today.
209 > Thus, assuming you've double-checked that you were remerging
210 > qt3, and assuming two -j1 runs duplicate the error at exactly
211 > the same place, unless someone else happens to do better
212 > than I did, I'd say it's time to post a bug and let the
213 > Gentoo KDE/Qt devs at it. (Some read this list and may
214 > be able to help you here, but unless it's trivial or there's
215 > already a bug they can point you to, they'll probably want
216 > a bug anyway, as that's just how Gentoo devs seem to track
217 > /everything/, using bugs, even for stuff like dev-relations
218 > new-dev and dev-retirement bugs, which might initially seem
219 > unintuitive, but it works.)
220 >
221
222
223 --
224 John P. Burkett
225 Department of Economics
226 University of Rhode Island
227 Kingston, RI 02881-0808
228 USA
229
230 phone (401) 874-9195

Attachments

File name MIME type
build.log text/plain
build3.log text/plain