I normally use Opera as my GUI web browser,
and recently downloaded the free version of
the newly released version 8 to two different
systems: SUSE 9.1 (kernel 2.6), and an ancient
Debian (kernel about 2.4.17(?)). on the Debian
box, the Opera8 was a clean install; i.e., that
box had never had Opera installed before.
two problems have become quite apparent. both
problems are seen on both boxes:
① on some sites — the Irish Times ireland.com
seems to be ‶good” for this — zooming on some
pages causes Opera8 to segfault. ;-( a search
of the forum pages on the Opera site suggests
that at least one other person has the same
problem (that person is also running Linux).
I have no investigated this problem further.
② even when “idling” (i.e., not being used,
no (known) JS running, not connected, &tc),
one of the threads in Opera8 is executing
a very tight loop doing gettimeofday(2)s
with an occasional write(2), ioctl(2), or
time(2) at not-obvious intervals (the data
following was all collected on the SUSE box):
$ strace -ttt -T -p ... | egrep -C 2 -v gettimeofday
...
1115023795.813194 gettimeofday({1115023795, 813233}, NULL) = 0 <0.000016>
1115023795.813295 gettimeofday({1115023795, 813319}, NULL) = 0 <0.000015>
1115023795.813371 write(8, "\0", 1) = 1 <0.000021>
1115023795.813498 gettimeofday({1115023795, 813520}, NULL) = 0 <0.000015>
1115023795.813564 gettimeofday({1115023795, 813584}, NULL) = 0 <0.000015>
--
1115023796.314113 gettimeofday({1115023796, 314146}, NULL) = 0 <0.000027>
1115023796.314196 gettimeofday({1115023796, 314217}, NULL) = 0 <0.000015>
1115023796.314394 ioctl(5, FIONREAD, [0]) = 0 <0.000023>
1115023796.314529 write(6, "\0", 1) = 1 <0.000018>
1115023796.314617 gettimeofday({1115023796, 314639}, NULL) = 0 <0.000015>
1115023796.314686 gettimeofday({1115023796, 314707}, NULL) = 0 <0.000015>
--
1115023798.239510 gettimeofday({1115023798, 239532}, NULL) = 0 <0.000015>
1115023798.239579 gettimeofday({1115023798, 239600}, NULL) = 0 <0.000015>
1115023798.239666 time([1115023798]) = 1115023798 <0.000013>
1115023798.239729 time([1115023798]) = 1115023798 <0.000012>
...[ c.10 calls to time(2) deleted ]...
1115023798.241189 time([1115023798]) = 1115023798 <0.000011>
1115023798.241245 time([1115023798]) = 1115023798 <0.000012>
1115023798.241302 gettimeofday({1115023798, 241323}, NULL) = 0 <0.000015>
1115023798.241374 gettimeofday({1115023798, 241395}, NULL) = 0 <0.000016>
...
gdb(1) indicates the defective Thread is using
QEventLoop::processEvents():
(gdb) where
#0 0xffffe410 in ?? ()
#1 0xbfffe958 in ?? ()
#2 0x088b5074 in ?? ()
#3 0x088b4ef0 in ?? ()
#4 0x4110a391 in ___newselect_nocancel () from /lib/tls/libc.so.6
#5 0x4093dab7 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#6 0x409a6811 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#7 0x409a6656 in QEventLoop::exec () from /usr/lib/libqt-mt.so.3
#8 0x409906cf in QApplication::exec () from /usr/lib/libqt-mt.so.3
#9 0x08420bc5 in jzero_far ()
#10 0x08063039 in ?? ()
...
#62 0xbfffedf8 in ?? ()
#63 0x40ca864c in QGDict::look_ascii () from /usr/lib/libqt-mt.so.3
#64 0x4106e500 in __libc_start_main () from /lib/tls/libc.so.6
#65 0x08061ead in ?? ()
(gdb)
has anyone else ⒜ observed this behaviour?
⒝ can confirm it?
⒞ have suggestions for what other details
to include in the defect report to Opera?
(besides the obvious like versions et.al.)
⒟ have any idea w.t.f. is going on???
the 2nd problem can be clumsily worked-around by
`kill -STOP'ing Opera8 when not-in-use; but the
1st has no known/easy workaround (except zooming _before_
you open the URL, which is obviously not too practical).
also, the Opera license prohibits disassembly and reverse-
engineering:
“Software means Opera, all program and information files and
other documentation which are part of the Opera Software
package [ ...]
“You shall not modify, translate, reverse engineer, decompile
or disassemble the Software or any part thereof or otherwise
attempt to derive source code or create derivative works
therefrom.”
I do not believe anything I've done above runs afoul of that
(e.g., /usr/lib/libqt-mt.so.3 is not distributed as part of
Opera8 software package (for SUSE 9.x at least)), but... how
far can I go? at what point does this sort of informal defect
investigation turn into activities that could be reasonably
construed as violating such license restrictions?
I am aware Opera is not FOSS. in this case, it does not
matter (to me), at least for problem 2, as I do not have
GUI skills, and it smells like a GUI problem. so please
do not harangue about using non-FOSS software!
cheers!
-blf-
--
Experienced (20+ yrs) kernel/software Eng: | Brian Foster Montpellier,
• Unix, embedded, &tc; • Linux; • doc; | blf at utvinternet.ie FRANCE
• IDL, automated testing, process, &tc. | Stop E$$o (ExxonMobile)!
Résumé (CV) http://www.blf.utvinternet.ie | http://www.stopesso.com
Maintained by the ILUG website team. The aim of Linux.ie is to
support and help commercial and private users of Linux in Ireland. You can
display ILUG news in your own webpages, read backend
information to find out how. Networking services kindly provided by HEAnet, server kindly donated by
Dell. Linux is a trademark of Linus Torvalds,
used with permission. No penguins were harmed in the production or maintenance
of this highly praised website. Looking for the
Indian Linux Users' Group? Try here. If you've read all this and aren't a lawyer: you should be!