View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
---|---|---|---|---|---|---|---|---|---|
0002301 | NetSurf | Amiga-specific | public | 2015-04-01 18:29 | 2016-02-16 15:30 | ||||
Reporter | Chris Young | ||||||||
Assigned To | Vincent Sanders | ||||||||
Severity | minor | Reproducibility | always | ||||||
Status | closed | Resolution | fixed | ||||||
Platform | Amiga | OS | AmigaOS | OS Version | 4.1 | ||||
Product Version | 3.4 | ||||||||
Target Version | Fixed in Version | 3.4 | |||||||
Summary | 0002301: Backing store not creating 'm' dir and block writes not working | ||||||||
Description | The backing store is not creating the 'm' directory even though the 'd' directory and files are present. The mblk and dblk directories only contain one 0-byte file 'A'. | ||||||||
Steps To Reproduce | Run NetSurf, browse a few pages, and quit. | ||||||||
Additional Information | Logfile attached. Listing of cache directory after quitting also attached - filtered to show files only, root of cache is as follows: Directory "Apps:Internet/NetSurf/Users/chris/Cache" on Wednesday 01-Apr-15 blocks 4096 ----rw-d Today 18:19:43 entries 8160 ----rw-d Today 18:19:43 mblk Dir ----rwed Today 18:07:45 d Dir ----rwed Today 18:16:25 dblk Dir ----rwed Today 18:07:45 CACHEDIR.TAG 191 ----rw-d Today 18:07:36 control 12 ----rw-d Today 18:07:36 4 files - 12K bytes - 3 directories - 36 blocks used | ||||||||
Tags | No tags attached. | ||||||||
Fixed in CI build # | 2695 | ||||||||
Reported in CI build # | 2690 | ||||||||
URL of problem page | |||||||||
Attached Files |
|
Notes | |
Vincent Sanders (administrator) 2015-04-01 20:24 |
ok, firstly, the lack of an m directory was fine. The cache never tried to create one! all the metadata filers were less than a kilobyte long and were therefore being stored in the block files. Which is where we actually hit the issue. these three lines from the log tell me what the issue is: content/fs_backing_store.c set_store_entry 933: url:http://www.google.co.uk/favicon.ico first attempt to store a data object content/fs_backing_store.c store_open 1058: opening PROGDIR:Users/chris/Cache/dblk/A which succeeded at opening the block file content/fs_backing_store.c store_write_block 1609: Write failed -1 of 5430 bytes from 0x54bf6420 at 0x2000 block 1 errno 29 from the ppc sys/errno.h #define ESPIPE 29 /* Illegal seek */ so errno 29 is telling us that the pwrite operation was trying to seek to offset 0x2000 (8k) into the block file and write the 5430 bytes of data and got told it could not seek there. On other operating systems seeking past the end of a file opened for writing simply extends the file. Is this the not case on amigaos 4? |
Chris Young (developer) 2015-04-01 23:27 |
No, you can't seek past the end of a file. I just double-checked that in the autodocs (http://wiki.amigaos.net/amiga/autodocs/dos.txt): "ChangeFilePosition() beyond the limits of the file will cause failure." |
Vincent Sanders (administrator) 2015-04-02 00:02 |
ok so, how about an amigaos wrapper that tries the seek and if it gets errno 29 calls the ChangeFileSize() to extend to the offset, retries the lseek and then does a write. I already added a wrapper for RISC OS in utils/config.h and utils/utils.c so extending it for amigaos would seem relatively straightforward |
Chris Young (developer) 2015-04-02 00:11 |
That sounds like it should work. |
Vincent Sanders (administrator) 2015-04-02 17:44 |
ok added a universal pread/pwrite implementation to libnsutils as it was horribly hacky and removed the compat cruft from NetSurf itself. The new implementation of pwrite *should* work on amigaos now. Please can you start from a clean cache again and post the log to the bug so I can check? |
Chris Young (developer) 2015-04-02 19:20 |
Attached. The mblk and dblk 'A' file now has size, so looks good. |
Vincent Sanders (administrator) 2015-04-02 19:50 |
phew. all looks good and the 1.5megabytes/sec overall write rate looks a lot healthier than previous scheme. Thanks for your patience and testing, sorry we had a bit of a rough start. I do hope this improves things for you though please let me know on list either way. |
Vincent Sanders (administrator) 2016-02-16 15:30 |
Confirmed resolved in 3.4 release |
Issue History | |||
Date Modified | Username | Field | Change |
---|---|---|---|
2015-04-01 18:29 | Chris Young | New Issue | |
2015-04-01 18:29 | Chris Young | Status | new => assigned |
2015-04-01 18:29 | Chris Young | Assigned To | => Vincent Sanders |
2015-04-01 18:29 | Chris Young | File Added: ns.log.gz | |
2015-04-01 18:29 | Chris Young | File Added: ns-cache-dir.txt.gz | |
2015-04-01 18:35 | Chris Young | Additional Information Updated | View Revisions |
2015-04-01 20:24 | Vincent Sanders | Note Added: 0000814 | |
2015-04-01 20:24 | Vincent Sanders | Status | assigned => feedback |
2015-04-01 20:24 | Vincent Sanders | Description Updated | View Revisions |
2015-04-01 20:24 | Vincent Sanders | Additional Information Updated | View Revisions |
2015-04-01 23:27 | Chris Young | Note Added: 0000815 | |
2015-04-01 23:27 | Chris Young | Status | feedback => assigned |
2015-04-02 00:02 | Vincent Sanders | Note Added: 0000816 | |
2015-04-02 00:02 | Vincent Sanders | Status | assigned => feedback |
2015-04-02 00:11 | Chris Young | Note Added: 0000817 | |
2015-04-02 00:11 | Chris Young | Status | feedback => assigned |
2015-04-02 17:44 | Vincent Sanders | Note Added: 0000818 | |
2015-04-02 17:44 | Vincent Sanders | Status | assigned => feedback |
2015-04-02 19:19 | Chris Young | File Added: ns.log-new.gz | |
2015-04-02 19:20 | Chris Young | Note Added: 0000819 | |
2015-04-02 19:20 | Chris Young | Status | feedback => assigned |
2015-04-02 19:50 | Vincent Sanders | Fixed in CI build # | => 2695 |
2015-04-02 19:50 | Vincent Sanders | Note Added: 0000820 | |
2015-04-02 19:50 | Vincent Sanders | Status | assigned => resolved |
2015-04-02 19:50 | Vincent Sanders | Resolution | open => fixed |
2015-04-02 19:50 | Vincent Sanders | Fixed in Version | => 3.4 |
2016-02-16 15:30 | Vincent Sanders | Note Added: 0001321 | |
2016-02-16 15:30 | Vincent Sanders | Status | resolved => closed |