MantisBT - NetSurf
View Issue Details
0002747NetSurfRISC OS-specificpublic2020-04-12 19:162020-06-09 17:48
Reporterdgr 
Assigned To 
PrioritynormalSeveritycrashReproducibilityalways
StatusacknowledgedResolutionopen 
PlatformARMOSRISC OSOS Version5.27 (29 March)
Product Version3.9 
Target VersionFixed in Version 
Fixed in CI build #
Reported in CI build #
URL of problem page
Summary0002747: NetSurf crash when opening window (browser, hotlist, global history).
DescriptionWhenever trying to open the browser window, hotlist window or global history window I get a "NetSurf has detected a serious error and must exit" error.

Can reproduce consistently with both NetSurf 3.9 and NetSurf 3.9 CI build #5056.

This is a relatively vanilla install of RISC OS with only a few modifications such as system font.
Additional InformationWhen opening the browser window, part of the window is drawn before the fatal error appears.

Log file is from 3.9 CI build #5056 after opening the browser window (select click NetSurf icon from iconbar).

I have successfully used NetSurf on RISC OS 5 previously but re-imaged my SD card using the official Pi image and then upgrading to RISC OS 5.27 (29 March 2020) and replacing !Boot (and associated applications) with the nightly HardDisc4 image at that time.
TagsNo tags attached.
Attached Filestxt Log2.txt (16,975) 2020-04-12 19:16
https://bugs.netsurf-browser.org/mantis/file_download.php?file_id=651&type=bug
png Screenshot 2020-04-12 at 20.02.06.png (334,444) 2020-04-12 19:17
https://bugs.netsurf-browser.org/mantis/file_download.php?file_id=652&type=bug
txt Log.txt (56,770) 2020-04-14 14:45
https://bugs.netsurf-browser.org/mantis/file_download.php?file_id=653&type=bug

Notes
(0002176)
dgr   
2020-04-12 19:31   
Sorry, typo in the Description. It should be "NetSurf 3.10 CI build #5056".
(0002177)
dgr   
2020-04-14 14:45   
After some experimenting, this crash is related to the colour depth. I mostly access RISC OS headless and connect to it via VNC. I run AnyMode so I can select a suitable WimpMode so I don't need to scale the VNC window too much on the machine I access RISC OS from.

NetSurf will crash if the colour depth is 64 thousand colours. Selecting 16 million or 256 and the crash doesn't occur.

I can be using NetSurf in 16 million colours and then change to 64 thousand colours and it'll crash immediately.

I have attached another log from NetSurf 3.10 Dev CI #5057 where I ran NetSurf using 16 million colours and then changed it to 64 thousand colours to trigger the crash.
(0002178)
Vincent Sanders   
2020-04-14 20:27   
backtrace is not terribly enlightening, looks like a null dereference. It is not reproducable in RPCEmu with RO 4.


Fatal signal received: Segmentation fault

Stack backtrace:

Running thread 0x7cf51c (Main Thread)
  ( 7ddee0) pc: 59e4c4 lr: 1b1960 sp: 7ddee4 __write_backtrace()
  ( 7ddf08) pc: 1b18e4 lr: 59edf0 sp: 7ddf0c ro_gui_signal()
  ( 7ddf30) pc: 59edd8 lr: 59eacc sp: 7ddf34 __unixlib_exec_sig()
  ( 7ddfa0) pc: 59e5e4 lr: 59f3d8 sp: 7ddfa4 __unixlib_raise_signal()
  ( 7ddfb0) pc: 59f2dc lr: 7dcac0 sp: 7dca74 __h_cback()

  Register dump at 007ddfb4:

    a1: 10 a2: 10 a3: ffffff a4: 3fb
    v1: 4 v2: 0 v3: 2 v4: ffffff09
    v5: a7e v6: f81f sl: f6d3ced6 fp: 4785bfc0
    ip: 1 sp: 7dca74 lr: 7dcac0 pc: 2050e8ec
    cpsr: 20000113

  2050e8d8 : ...� : e31a0002 : TST R10,0000002
  2050e8dc : -... : 0a00002d : BEQ &2050E998
  2050e8e0 : . �� : e49b2004 : LDR R2,[R11],#4
  2050e8e4 : .0�� : e49a3002 : LDR R3,[R10],0000002
  2050e8e8 : .�,� : e22cc001 : EOR R12,R12,#1
  2050e8ec : "L�� : e1b04c22 : MOVS R4,R2,LSR #24
  2050e8f0 : %..� : da000025 : BLE &2050E98C
  2050e8f4 : �A�� : e08e41a4 : ADD R4,R14,R4,LSR #3
  2050e8f8 : .`�� : e1a06002 : MOV R6,R2

Invalid pc address fffffc
(0002181)
dgr   
2020-04-16 16:23   
Seems to be Tinct that's the problem.

*Where on one of the memory locations in the register dump points the finger of blame at the Tinct module.

If I load NetSurf using 16M colours, then RMKill Tinct and then change to 64K colours the crash doesn't occur.

Similarly if I comment out the RMEnsure for Tinct in !Run, I can run NetSurf in 64K colours without a crash.

Tinct seems to have an issue with 64K colours but only with RISC OS 5 since it doesn't seem possible to reproduce this under RISC OS 4.

Let me know if there's anything further I can do to help debug. Although if the issue is with Tinct I'm guessing it's a non-fixable issue?
(0002182)
dgr   
2020-04-16 16:27   
Also to say, if I change the Images choice to "Use OS" everything is fine. If I press "Use Default" it immediately crashes.
(0002266)
dgr   
2020-06-09 17:48   
There's at least one other person who is encountering this crash due to Tinct and RO5. Also reported on the ROOL forums: https://www.riscosopen.org/forum/forums/5/topics/15352?page=2#posts-103139

I think it has been mentioned that Tinct isn't needed with RO5 (RO5 natively implements what Tinct implements). So maybe the choices are drop support for unsupportable OS' therefore removing the need for Tinct or force NetSurf to only "Use OS" for the Images choice when the OS is RO5.

Issue History
2020-04-12 19:16dgrNew Issue
2020-04-12 19:16dgrFile Added: Log2.txt
2020-04-12 19:17dgrFile Added: Screenshot 2020-04-12 at 20.02.06.png
2020-04-12 19:31dgrNote Added: 0002176
2020-04-14 14:45dgrFile Added: Log.txt
2020-04-14 14:45dgrNote Added: 0002177
2020-04-14 20:27Vincent SandersNote Added: 0002178
2020-04-14 20:28Vincent SandersStatusnew => acknowledged
2020-04-16 16:23dgrNote Added: 0002181
2020-04-16 16:27dgrNote Added: 0002182
2020-06-09 17:48dgrNote Added: 0002266