MantisBT - NetSurf
View Issue Details
0002397NetSurfAmiga-specificpublic2015-11-23 18:462017-10-16 22:41
Reporterxenic 
Assigned ToChris Young 
PrioritynormalSeveritycrashReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version3.4 
Target VersionFixed in Version3.7 
Fixed in CI build #3799
Reported in CI build #3222
URL of problem page
Summary0002397: Netsurf Dev version 3222 crashes if run from a write-protected partition when users directory is in the Netsurf directory.
DescriptionIf NetSurf is installed on a write-protected (locked) partition it will freeze the system and a cold reboot must be performed. The problem can be avoided by using the new USERSDIR tooltype to redirect the location of the Users directory but new users may not be aware of the purpose of the tooltype.
Steps To ReproduceInstall NetSurf and use the 'lock' command to write-protect the partition it's installed on.
Do not set the 'USERSDIR' tooltype to redirect the Users directory to another location.
Double-click the NetSurf icon to start the program.
Cancel any DOS requesters that appear.
NetSurf will open a notification specifying that it could not initialize.

The splash window will remain open and after a few seconds (sooner if mouse pointer moved around) the entire OS4 system freezes and necessitates a cold reboot.
Additional InformationSystem: X1000 running OS4.1FE
TagsNo tags attached.
Attached Files

Notes
(0001118)
Chris Young   
2015-11-24 20:26   
NetSurf only aborts abnormally if the user directory does not exist (or, rather, the cache control file does not exist):

(11.870537) content/llcache.c:3327 llcache_initialise: llcache initialising with a limit of 9437184 bytes
(11.876880) content/fs_backing_store.c:1395 read_control: opening control file "PROGDIR:Users/nslocktest/Cache/control"
(11.883631) content/fs_backing_store.c:1512 initialise: read control failed Not found
(11.889923) content/fs_backing_store.c:1347 write_control: writing control file "PROGDIR:Users/nslocktest/Cache/control"
(13.183614) amiga/misc.c:54 ami_misc_req: NetSurf failed to initialise
***Command 'Apps:Internet/NetSurf/NetSurf' returned with unfreed signals 1E000000!

NetSurf should abort earlier in the process if the user directory cannot be created (or if it is detected to be on a write-protected volume).
(0001119)
Chris Young   
2015-11-25 00:17   
Mostly fixed in #3225. Still getting some unfreed signals on exit.
(0001335)
xenic   
2016-02-22 22:41   
I D/L NetSurf 3.4 (version command says 3.60004) from OS4Depot for testing. The USERDIR command line argument doesn't appear to work and I get a "User directory must be on a writeable volume" requester. The USERDIR Tooltype works fine, as before. When Netsurf can't initialize it no longer freezes my system like it did previously. In addition to the unfreed signals you mentioned, Netsurf is attempting to open the font: "DejaVu Serif Italic.font" but fails because it doesn't exist on my OS4.1FE system partition. Maybe it could use "DejaVu Serif Oblique.font" instead.
(0001336)
Chris Young   
2016-02-22 23:20   
I've just tested it here and it is definitely working. Make sure you are calling the executable directly - the installation script installs a helper in REXX: which doesn't have any knowledge of that arg (I suggest you add it manually to the script on line 32 as launch-handler uses it). Also note that it's USERSDIR not USERDIR.

The font used is Italic, if that isn't found then it will use Oblique. The DejaVu font changed name some time back so I check for both. It looks for the newer one first as an update could potentially leave the old file installed. The new versions have some small caps characters that are missing from the ones provided with OS4 (the frontend uses designed characters for small caps only), I did request that the fonts provided were updated but nobody took any notice.
(0001337)
xenic   
2016-02-23 16:52   
Sorry about a bad bug report. I was reading USERSDIR but typing USERDIR (dyslexia?). Yes, the USERSDIR arg is working and thanks for adding it. As for the helper in REXX:, I removed it because my launch-handler prefs are set to use the "OpenURL" command. On my system, all URLOpen commands are forwarded to "OpenURL" which takes care of sending ARexx commands if a browser is already open. I only need to worry about one set of prefs and don't need an ARexx script for each browser (IBrowse, AWeb, NetSurf, OWB, Odyssey etc.).

Thanks for your work on NetSurf. It's a nice browser.
(0001459)
Chris Young   
2016-12-11 16:19   
The unfreed signals when NetSurf exits due to a write-protected volume, are now freed.
(0001675)
Vincent Sanders   
2017-10-16 22:41   
Thankyou for your report, this has been resolved in the 3.7 release

Issue History
2015-11-23 18:46xenicNew Issue
2015-11-24 13:02Vincent SandersAssigned To => Chris Young
2015-11-24 13:02Vincent SandersStatusnew => acknowledged
2015-11-24 13:02Vincent SandersProduct Version => 3.4
2015-11-24 20:26Chris YoungNote Added: 0001118
2015-11-24 20:26Chris YoungStatusacknowledged => confirmed
2015-11-25 00:17Chris YoungNote Added: 0001119
2016-02-22 22:41xenicNote Added: 0001335
2016-02-22 23:20Chris YoungNote Added: 0001336
2016-02-23 16:52xenicNote Added: 0001337
2016-12-11 16:19Chris YoungFixed in CI build # => 3799
2016-12-11 16:19Chris YoungNote Added: 0001459
2016-12-11 16:19Chris YoungStatusconfirmed => resolved
2016-12-11 16:19Chris YoungFixed in Version => 3.7
2016-12-11 16:19Chris YoungResolutionopen => fixed
2017-10-16 22:41Vincent SandersStatusresolved => closed
2017-10-16 22:41Vincent SandersNote Added: 0001675