2019-09-23 09:51 CEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0003355WHDLoad[All Projects] Generalpublic2017-04-10 10:13
Reporterarisklapachi 
Assigned ToWeplProject InfoHD-Installer for OS-Killer
http://whdload.de/
 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
Product Version18.2 
Target Version18.3Fixed in Version18.3 
Summary0003355: Broken saving/logging/dumping if slave is on read-only disk.
DescriptionIf game slave is run from read-only medium (7z archive in my case), then saving, dumping and logging will fail even if SavePath and CoreDumpPath options are set to writable locations on different disk (mapped directory on host).
No problems creating or editing files in SavePath/CoreDumpPath from shell, however.
TagsNo tags attached.
MachineUAE
CPU68020
CPUSpeed50
ChipSetAGA
GFXCardNone
ChipMem2 MB
FastMem0 MB
WorkbenchOS 3.0
KickROM40 - Kick 3.1
KickSoftNone
WHDLoad18.1
Attached Files

-Relationships
+Relationships

-Notes

note ~0004798

Wepl (manager)

Please explain this more detailed.
Does WHDLoad an error message?

note ~0004799

Wepl (manager)

<j2348513@trbvm.com>:
174.37.94.132 does not like recipient.
Remote host said: 550 5.1.1 <j2348513@trbvm.com>: Recipient address rejected: User unknown in virtual alias table
Giving up on 174.37.94.132.

note ~0004804

arisklapachi (reporter)

No error messages, game continues to work as if nothing happened. For example, as soon as I press Return after entering save name in Cannon Fodder, screen instantly fades back to save menu without visible disk activity and load game menu is empty afterwards.
If I save in everything-writable scenario, "--<>CannonFodder<>--" directory is created in SavePath (visible on host as "__uae___--__CannonFodder__--"), and then restart with game medium read-only, the game can load existing saves but can't rewrite them or create new ones.
(Sorry for 10minutemail.com)

note ~0004805

Wepl (manager)

You are right. That's the way it is currently implemented.
WHDLoad checks at startup if the data directory is read-only and if it is all write operations are disabled.
Please check http://whdload.de/whdload/whd183.lha .
I have disabled the read-only-check if SavePath is active.

note ~0004806

arisklapachi (reporter)

Games can save now, thank you.
I guess logging/dumping functions better be left as-is.

note ~0004820

arisklapachi (reporter)

Not sure if it's within this ticket's scope, but after finishing a game in Nuclear War I get a following popup (using the executable you provided):

DOS-Error #214
(disk is write protected)
on deleting "HighScores"

At that moment the only "HighScores" file (which is part of stock distribution) was in "Data" subdir inside the archive I run the game from. If I delete the file from archive and then play to the end, there's no error and highscores are saved to SaveDir, so it appears that scores are updated by deleting and rewriting the file from scratch.
PS: If no record was made during play, highscores are recreated with contents identical to stock file.

Implementation of some sort of database to keep track of "deleted" or "moved" files would help with this, but probably will clutter up the code too much for single complex non-amiga-ish use case.

note ~0004821

Wepl (manager)

This should only happen if the SaveDir was not created before.

Deletes cannot be implemented in a clear way together with the SavePath feature.
Currently (see autodocs) WHDLoad will try to delete in the first data directory. But the SavePath is only the first data directory if it exists already at startup or after creation by WHDLoad which is performed at the first write operation.

But thanks for the report, it is a bug that WHDLoad tries to delete in the non SavePath.
I have fixed it now. It now silently ignores the Delete if SavePath is used and SavePath is not yet created.
Please try http://whdload.de/whdload/whd183.lha

Besides that the game should not delete a file for rewriting it because this will cause WHDLoad to switch to the operating system. So please make also a report for the game to have the Delete removed.

note ~0004830

arisklapachi (reporter)

Several errors pop up when saving things in Worms DC.
When saving teams, happens even if no edits were made:
    DOS-Error #203
    (object already exists)
    on writing "TWTEAMS/BJORN".

If "CLEAR TEAMS" was used before saving teams:
    DOS-Error #205
    (object not found)
    on deleting "TWTEAMS/BJORN".

When attempting to save options as "DEFAULT" (overwriting default option file):
    DOS-Error #205
    (object not found)
    on deleting "TWOPTIONS/DEFAULT.OPT".

Here's directory tree with installed game, just in case: http://pastebin.com/vtk03J9y
BTW, can't find NuclearWar in projects dropdown list.

note ~0004851

Wepl (manager)

Last edited: 2016-02-09 23:48

View 2 revisions

Which WHDLoad version did you use?

note ~0004852

arisklapachi (reporter)

Last edited: 2016-02-10 02:30

View 2 revisions

WHDLoad 18.3.5741 (25.01.2016) and WormsDC install 1.2 (21.08.2011).

note ~0004853

Wepl (manager)

The third case is clear, the game tries to delete a file which is not in the savepath.
I can't reproduce case 1 and 2.
Please use option FileLog and attach the resulting .whdl_log here.

note ~0004854

arisklapachi (reporter)

Last edited: 2016-02-14 12:37

View 3 revisions

Case 1: http://pastebin.com/gs9g7Le8
Case 2: http://pastebin.com/iTB5qxiv

EDIT: Updated 2nd link, pasted first log into it incidentally. Also just found out that clear-then-save error is reproducible only after doing the 1st case, in result of which "TWTEAMS\ANDY" file is created in SaveDir.

note ~0004860

Wepl (manager)

I still can't reproduce case 1/2.
Make a coredump in case 1 and attach the .whdl_register here.
Don't use pastebin, attach it to this issue.

note ~0005051

Wepl (manager)

Please try new beta at http://whdload.de/whdload/whd183.lha
This should fix all the mentioned problems.
+Notes

-Issue History
Date Modified Username Field Change
2016-01-14 07:52 arisklapachi New Issue
2016-01-17 14:13 Wepl Assigned To => Wepl
2016-01-17 14:13 Wepl Status new => assigned
2016-01-17 14:28 Wepl Note Added: 0004798
2016-01-17 14:28 Wepl Status assigned => feedback
2016-01-17 14:36 Wepl Note Added: 0004799
2016-01-18 01:16 arisklapachi Note Added: 0004804
2016-01-18 01:16 arisklapachi Status feedback => assigned
2016-01-18 20:55 Wepl Note Added: 0004805
2016-01-18 20:56 Wepl Product Version 18.0 => 18.2
2016-01-18 20:59 Wepl Fixed in Version => 18.3beta
2016-01-18 20:59 Wepl Target Version => 18.3
2016-01-19 10:38 arisklapachi Note Added: 0004806
2016-01-25 13:28 arisklapachi Note Added: 0004820
2016-01-25 21:59 Wepl Note Added: 0004821
2016-02-06 05:59 arisklapachi Note Added: 0004830
2016-02-09 23:48 Wepl Note Added: 0004851
2016-02-09 23:48 Wepl Note Edited: 0004851 View Revisions
2016-02-10 02:30 arisklapachi Note Added: 0004852
2016-02-10 02:30 arisklapachi Note Edited: 0004852 View Revisions
2016-02-11 22:17 Wepl Note Added: 0004853
2016-02-11 23:01 arisklapachi Note Added: 0004854
2016-02-11 23:46 arisklapachi Note Edited: 0004854 View Revisions
2016-02-14 12:37 arisklapachi Note Edited: 0004854 View Revisions
2016-02-14 17:56 Wepl Note Added: 0004860
2016-07-06 00:50 Wepl Note Added: 0005051
2016-11-18 01:38 Wepl Status assigned => resolved
2016-11-18 01:38 Wepl Resolution open => fixed
2017-04-10 10:13 Wepl Status resolved => closed
2017-04-10 10:13 Wepl Fixed in Version 18.3beta => 18.3
+Issue History