|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0002747||NetSurf||RISC OS-specific||public||2020-04-12 20:16||2020-06-09 18:48|
|Platform||ARM||OS||RISC OS||OS Version||5.27 (29 March)|
|Target Version||Fixed in Version|
|Summary||0002747: NetSurf crash when opening window (browser, hotlist, global history).|
|Description||Whenever 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 Information||When 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.
|Tags||No tags attached.|
|Fixed in CI build #|
|Reported in CI build #|
|URL of problem page|
|Sorry, typo in the Description. It should be "NetSurf 3.10 CI build #5056".|
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.
Vincent Sanders (administrator)
backtrace is not terribly enlightening, looks like a null dereference. It is not reproducable in RPCEmu with RO 4.
Fatal signal received: Segmentation fault
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
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
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?
|Also to say, if I change the Images choice to "Use OS" everything is fine. If I press "Use Default" it immediately crashes.|
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.
|2020-04-12 20:16||dgr||New Issue|
|2020-04-12 20:16||dgr||File Added: Log2.txt|
|2020-04-12 20:17||dgr||File Added: Screenshot 2020-04-12 at 20.02.06.png|
|2020-04-12 20:31||dgr||Note Added: 0002176|
|2020-04-14 15:45||dgr||File Added: Log.txt|
|2020-04-14 15:45||dgr||Note Added: 0002177|
|2020-04-14 21:27||Vincent Sanders||Note Added: 0002178|
|2020-04-14 21:28||Vincent Sanders||Status||new => acknowledged|
|2020-04-16 17:23||dgr||Note Added: 0002181|
|2020-04-16 17:27||dgr||Note Added: 0002182|
|2020-06-09 18:48||dgr||Note Added: 0002266|