LINUX.IE, website of the Irish Linux Users' Group
Tux rules!

   
Home
New Users
Articles
Download
Projects
Community
Vendors

  Print Version
Email to...
 
Archives:


planetILUG

Recent News

News Archive


Join the
ILUG
on FaceBook


Join the
ILUG
on LinkedIn


Join the
ILUG SETI
Group



















 
 :: Mailing Lists

[ILUG] Opera8 loop/zoom bugs -vs- Linux and "reverse engineering"?

[ILUG] Opera8 loop/zoom bugs -vs- Linux and "reverse engineering"?

Brian Foster blf at blf.utvinternet.ie
Mon May 2 10:45:15 IST 2005


 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



More information about the ILUG mailing list
Read this without the formatting.
                                                                                                    

 

Hosted by HEAnet


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!
RSS Version
Powered by Dell