View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000685 | Subversion for OS/2 & eCS | Bug | public | 2019-03-12 02:45 | 2020-08-24 03:07 |
Reporter | LewisR | Assigned To | LewisR | ||
Priority | normal | Severity | minor | Reproducibility | sometimes |
Status | closed | Resolution | reopened | ||
Summary | 0000685: svn 1.7.21 (2018-12-30) error when rewinding (updating to previous rev) single file | ||||
Description | svn up -r nnnn <filename> should "roll back" or (using the term in the SVN book "unwind") the specified file to the specified revision. Unfortunately, this does not happen with the above build (or with 20190309). | ||||
Additional Information | I am returned to a prompt with one of the following: Under 4OS2: svn: E720006: Error closing directory: Incorrect internal file identifier. Under CMD or dash: Skipped '<filename>' Summary of conflicts: Skipped paths: 1 Under 1.7.16 (2014-08-09), the error is different, but consistent for all shells: svn: E070008: Error resolving case of '<filename>' Under 1.6.23 (2013-10-15), the error is also consistent: Skipped '<filename>' The same issue occurs when attempting to unwind the file by specific revision or date, and when attempting to move up one or more directory levels and specify the path to the file (even when minding the correct case of the letters in the pathname as well as the file). It is interesting to note that the following works with the latest (1.7.21) builds: svn cat -r PREV <filename> ><filename> It should be noted, though, that: svn up . in the directory of the unwound file does not update it to the current revision, though it can successfully be reverted. | ||||
Tags | No tags attached. | ||||
Attached Files | |||||
|
FWIW, the regression is probably in the Apache Runtime. The error message implies that one of the Dos APIs failed for some reason. The error number and message correspond to the OS/2 API error ERROR_INVALID_HANDLE and the "Incorrect internal file identifier" message is pulled from the OS0001.MSG. |
|
After I fixed whatever I managed to mess up yesterday, Dave Bashke's OS2TRACE shows the reason for the error pretty clearly. The code is attempting to close a handle that is not open. See svn.trc starting at line 398 The working directory is D:/sla_dev2/TestSVN and the svn command was svn up -rPREV testee testee is a committed file. svn.trc (18,590 bytes)
OS/2 API Trace Version 2.45.40 (25 Oct 2010), OS/2 Version 2.45 (c) Copyright IBM Corporation 1995, 2010. OS/2 API Trace Customization Options: -A NONE -B 256 -C OFF -D FILE -E OFF -F ALL -G ALL -I OFF -L 3 -T ON -U NONE -W ALL SVN.EXE (105E) starting at 12:26:53.54 on 03/12/2019 105E 0001 | Dos32QueryPathInfo Entry at 12:26:53.74, Return Address = 0x00091648 (SVN 0001:00081648) | Parameter 1: PSZ = 0x006A0548 ["D:\HOME/.subversion"] | Parameter 2: ULONG = 0x00000001 | Parameter 3: PVOID = 0x0059FA8B | Parameter 4: ULONG = 0x00000018 105E 0001 | Dos32QueryPathInfo Exit at 12:26:53.74 PASS | Return code: 0 (NO_ERROR) | Parameter 3: PVOID = 0x0059FA8B | fdateCreation = 03/14/2017 | ftimeCreation = 20:51:02 | fdateLastAccess = 03/14/2017 | ftimeLastAccess = 21:54:18 | fdateLastWrite = 05/06/2017 | ftimeLastWrite = 07:11:08 | cbFile = 0x00000000 | cbFileAlloc = 0x00000000 | attrFile = 0x00000010 105E 0001 | Dos32QueryPathInfo Entry at 12:26:53.74, Return Address = 0x00091648 (SVN 0001:00081648) | Parameter 1: PSZ = 0x006A0560 ["D:\HOME/.subversion/auth"] | Parameter 2: ULONG = 0x00000001 | Parameter 3: PVOID = 0x0059FA8B | Parameter 4: ULONG = 0x00000018 105E 0001 | Dos32QueryPathInfo Exit at 12:26:53.74 PASS | Return code: 0 (NO_ERROR) | Parameter 3: PVOID = 0x0059FA8B | fdateCreation = 03/14/2017 | ftimeCreation = 20:51:02 | fdateLastAccess = 03/14/2017 | ftimeLastAccess = 21:54:18 | fdateLastWrite = 01/24/2006 | ftimeLastWrite = 09:32:42 | cbFile = 0x00000000 | cbFileAlloc = 0x00000000 | attrFile = 0x00000010 105E 0001 | Dos32QueryPathInfo Entry at 12:26:53.74, Return Address = 0x00091648 (SVN 0001:00081648) | Parameter 1: PSZ = 0x006A0580 ["D:\HOME/.subversion/auth/svn.simple"] | Parameter 2: ULONG = 0x00000001 | Parameter 3: PVOID = 0x0059FA5B | Parameter 4: ULONG = 0x00000018 105E 0001 | Dos32QueryPathInfo Exit at 12:26:53.74 PASS | Return code: 0 (NO_ERROR) | Parameter 3: PVOID = 0x0059FA5B | fdateCreation = 03/14/2017 | ftimeCreation = 20:51:02 | fdateLastAccess = 03/14/2017 | ftimeLastAccess = 21:54:18 | fdateLastWrite = 07/31/2018 | ftimeLastWrite = 15:23:28 | cbFile = 0x00000000 | cbFileAlloc = 0x00001000 | attrFile = 0x00000010 105E 0001 | Dos32QueryPathInfo Entry at 12:26:53.74, Return Address = 0x00091648 (SVN 0001:00081648) | Parameter 1: PSZ = 0x006A05A8 ["D:\HOME/.subversion/auth/svn.username"] | Parameter 2: ULONG = 0x00000001 | Parameter 3: PVOID = 0x0059FA5B | Parameter 4: ULONG = 0x00000018 105E 0001 | Dos32QueryPathInfo Exit at 12:26:53.74 PASS | Return code: 0 (NO_ERROR) | Parameter 3: PVOID = 0x0059FA5B | fdateCreation = 03/14/2017 | ftimeCreation = 20:51:02 | fdateLastAccess = 03/14/2017 | ftimeLastAccess = 21:54:18 | fdateLastWrite = 07/31/2018 | ftimeLastWrite = 15:20:58 | cbFile = 0x00000000 | cbFileAlloc = 0x00001000 | attrFile = 0x00000010 105E 0001 | Dos32QueryPathInfo Entry at 12:26:53.74, Return Address = 0x00091648 (SVN 0001:00081648) | Parameter 1: PSZ = 0x006A05D0 ["D:\HOME/.subversion/auth/svn.ssl.server"] | Parameter 2: ULONG = 0x00000001 | Parameter 3: PVOID = 0x0059FA5B | Parameter 4: ULONG = 0x00000018 105E 0001 | Dos32QueryPathInfo Exit at 12:26:53.74 PASS | Return code: 0 (NO_ERROR) | Parameter 3: PVOID = 0x0059FA5B | fdateCreation = 03/14/2017 | ftimeCreation = 20:51:02 | fdateLastAccess = 03/14/2017 | ftimeLastAccess = 21:54:18 | fdateLastWrite = 01/12/2019 | ftimeLastWrite = 21:51:50 | cbFile = 0x00000000 | cbFileAlloc = 0x00001000 | attrFile = 0x00000010 105E 0001 | Dos32QueryPathInfo Entry at 12:26:53.74, Return Address = 0x00091648 (SVN 0001:00081648) | Parameter 1: PSZ = 0x006A05F8 ["D:\HOME/.subversion/auth/svn.ssl.client-passphrase"] | Parameter 2: ULONG = 0x00000001 | Parameter 3: PVOID = 0x0059FA5B | Parameter 4: ULONG = 0x00000018 105E 0001 | Dos32QueryPathInfo Exit at 12:26:53.74 PASS | Return code: 0 (NO_ERROR) | Parameter 3: PVOID = 0x0059FA5B | fdateCreation = 03/14/2017 | ftimeCreation = 20:51:02 | fdateLastAccess = 03/14/2017 | ftimeLastAccess = 21:54:18 | fdateLastWrite = 05/19/2009 | ftimeLastWrite = 16:40:02 | cbFile = 0x00000000 | cbFileAlloc = 0x00000000 | attrFile = 0x00000010 105E 0001 | Dos32QueryPathInfo Entry at 12:26:53.74, Return Address = 0x00091648 (SVN 0001:00081648) | Parameter 1: PSZ = 0x006A0658 ["D:\HOME/.subversion/README.txt"] | Parameter 2: ULONG = 0x00000001 | Parameter 3: PVOID = 0x0059FA8B | Parameter 4: ULONG = 0x00000018 105E 0001 | Dos32QueryPathInfo Exit at 12:26:53.74 PASS | Return code: 0 (NO_ERROR) | Parameter 3: PVOID = 0x0059FA8B | fdateCreation = 11/26/2015 | ftimeCreation = 23:02:36 | fdateLastAccess = 03/09/2019 | ftimeLastAccess = 18:49:00 | fdateLastWrite = 09/13/2010 | ftimeLastWrite = 19:19:48 | cbFile = 0x00001130 | cbFileAlloc = 0x00002000 | attrFile = 0x00000000 105E 0001 | Dos32QueryPathInfo Entry at 12:26:53.74, Return Address = 0x00091648 (SVN 0001:00081648) | Parameter 1: PSZ = 0x006A06A0 ["D:\HOME/.subversion/servers"] | Parameter 2: ULONG = 0x00000001 | Parameter 3: PVOID = 0x0059FA8B | Parameter 4: ULONG = 0x00000018 105E 0001 | Dos32QueryPathInfo Exit at 12:26:53.74 PASS | Return code: 0 (NO_ERROR) | Parameter 3: PVOID = 0x0059FA8B | fdateCreation = 11/26/2015 | ftimeCreation = 23:02:36 | fdateLastAccess = 03/12/2019 | ftimeLastAccess = 11:49:10 | fdateLastWrite = 02/04/2011 | ftimeLastWrite = 18:56:22 | cbFile = 0x00001EFD | cbFileAlloc = 0x00002000 | attrFile = 0x00000000 105E 0001 | Dos32QueryPathInfo Entry at 12:26:53.74, Return Address = 0x00091648 (SVN 0001:00081648) | Parameter 1: PSZ = 0x006A06E8 ["D:\HOME/.subversion/config"] | Parameter 2: ULONG = 0x00000001 | Parameter 3: PVOID = 0x0059FA8B | Parameter 4: ULONG = 0x00000018 105E 0001 | Dos32QueryPathInfo Exit at 12:26:53.74 PASS | Return code: 0 (NO_ERROR) | Parameter 3: PVOID = 0x0059FA8B | fdateCreation = 11/26/2015 | ftimeCreation = 23:02:36 | fdateLastAccess = 03/12/2019 | ftimeLastAccess = 11:49:10 | fdateLastWrite = 09/21/2011 | ftimeLastWrite = 11:45:50 | cbFile = 0x00001593 | cbFileAlloc = 0x00002000 | attrFile = 0x00000000 105E 0001 | Dos32Open Entry at 12:26:53.75, Return Address = 0x0011ECDF (SVN 0001:0010ECDF) | Parameter 1: PSZ = 0x006A0888 ["/etc/subversion/servers"] | Parameter 2: PHFILE = 0x0059FAA8 | Parameter 3: PULONG = 0x0059FAA4 | Parameter 4: ULONG = 0x00000000 | Parameter 5: ULONG = 0x00000000 | Parameter 6: ULONG = 0x00000001 | Parameter 7: ULONG = 0x000020C0 | Parameter 8: PEAOP2 = NULL 105E 0001 | Dos32Open Exit at 12:26:53.75 FAIL | Return code: 3 (ERROR_PATH_NOT_FOUND) | Parameter 2: PHFILE = 0x0059FAA8 [0x00000000] | Parameter 3: PULONG = 0x0059FAA4 [0x0000FFFF] | Parameter 8: PEAOP2 = NULL 105E 0001 | Dos32Open Entry at 12:26:53.79, Return Address = 0x0011ECDF (SVN 0001:0010ECDF) | Parameter 1: PSZ = 0x006A08C8 ["D:\HOME/.subversion/servers"] | Parameter 2: PHFILE = 0x0059FA68 | Parameter 3: PULONG = 0x0059FA64 | Parameter 4: ULONG = 0x00000000 | Parameter 5: ULONG = 0x00000000 | Parameter 6: ULONG = 0x00000001 | Parameter 7: ULONG = 0x000020C0 | Parameter 8: PEAOP2 = NULL 105E 0001 | Dos32Open Exit at 12:26:53.79 PASS | Return code: 0 (NO_ERROR) | Parameter 2: PHFILE = 0x0059FA68 [0x00000006] | Parameter 3: PULONG = 0x0059FA64 [0x00000001] | Parameter 8: PEAOP2 = NULL 105E 0001 | Dos32Close Entry at 12:26:53.81, Return Address = 0x0007817B (SVN 0001:0006817B) | Parameter 1: HFILE = 0x00000006 105E 0001 | Dos32Close Exit at 12:26:53.81 PASS | Return code: 0 (NO_ERROR) 105E 0001 | Dos32Open Entry at 12:26:53.81, Return Address = 0x0011ECDF (SVN 0001:0010ECDF) | Parameter 1: PSZ = 0x006B5680 ["/etc/subversion/config"] | Parameter 2: PHFILE = 0x0059FAA8 | Parameter 3: PULONG = 0x0059FAA4 | Parameter 4: ULONG = 0x00000000 | Parameter 5: ULONG = 0x00000000 | Parameter 6: ULONG = 0x00000001 | Parameter 7: ULONG = 0x000020C0 | Parameter 8: PEAOP2 = NULL 105E 0001 | Dos32Open Exit at 12:26:53.81 FAIL | Return code: 3 (ERROR_PATH_NOT_FOUND) | Parameter 2: PHFILE = 0x0059FAA8 [0x00000000] | Parameter 3: PULONG = 0x0059FAA4 [0x0000FFFF] | Parameter 8: PEAOP2 = NULL 105E 0001 | Dos32Open Entry at 12:26:53.81, Return Address = 0x0011ECDF (SVN 0001:0010ECDF) | Parameter 1: PSZ = 0x006B56C0 ["D:\HOME/.subversion/config"] | Parameter 2: PHFILE = 0x0059FA68 | Parameter 3: PULONG = 0x0059FA64 | Parameter 4: ULONG = 0x00000000 | Parameter 5: ULONG = 0x00000000 | Parameter 6: ULONG = 0x00000001 | Parameter 7: ULONG = 0x000020C0 | Parameter 8: PEAOP2 = NULL 105E 0001 | Dos32Open Exit at 12:26:53.81 PASS | Return code: 0 (NO_ERROR) | Parameter 2: PHFILE = 0x0059FA68 [0x00000006] | Parameter 3: PULONG = 0x0059FA64 [0x00000001] | Parameter 8: PEAOP2 = NULL 105E 0001 | Dos32Close Entry at 12:26:53.81, Return Address = 0x0007817B (SVN 0001:0006817B) | Parameter 1: HFILE = 0x00000006 105E 0001 | Dos32Close Exit at 12:26:53.81 PASS | Return code: 0 (NO_ERROR) 105E 0001 | Dos32QueryCurrentDisk Entry at 12:26:53.81, Return Address = 0x000B5772 (SVN 0001:000A5772) | Parameter 1: PULONG = 0x0059F990 | Parameter 2: PULONG = 0x0059F994 105E 0001 | Dos32QueryCurrentDisk Exit at 12:26:53.81 PASS | Return code: 0 (NO_ERROR) | Parameter 1: PULONG = 0x0059F990 [0x00000004] | Parameter 2: PULONG = 0x0059F994 [0x001531FF] 105E 0001 | Dos32QueryCurrentDir Entry at 12:26:53.81, Return Address = 0x000B57B0 (SVN 0001:000A57B0) | Parameter 1: ULONG = 0x00000004 | Parameter 2: PBYTE = 0x0059F99F | Parameter 3: PULONG = 0x0059F998 [0x00000101] 105E 0001 | Dos32QueryCurrentDir Exit at 12:26:53.81 PASS | Return code: 0 (NO_ERROR) | Parameter 2: PBYTE = 0x0059F99F ["sla_dev2\TestSVN"] | Parameter 3: PULONG = 0x0059F998 [0x00000101] 105E 0001 | Dos32QueryPathInfo Entry at 12:26:53.82, Return Address = 0x00091648 (SVN 0001:00081648) | Parameter 1: PSZ = 0x0059FA4C ["testee"] | Parameter 2: ULONG = 0x00000001 | Parameter 3: PVOID = 0x0059F84B | Parameter 4: ULONG = 0x00000018 105E 0001 | Dos32QueryPathInfo Exit at 12:26:53.85 PASS | Return code: 0 (NO_ERROR) | Parameter 3: PVOID = 0x0059F84B | fdateCreation = 04/15/2018 | ftimeCreation = 11:16:16 | fdateLastAccess = 03/11/2019 | ftimeLastAccess = 11:57:52 | fdateLastWrite = 04/15/2018 | ftimeLastWrite = 11:18:48 | cbFile = 0x00000008 | cbFileAlloc = 0x00001000 | attrFile = 0x00000000 105E 0001 | Dos32FindFirst Entry at 12:26:53.87, Return Address = 0x00091742 (SVN 0001:00081742) | Parameter 1: PSZ = 0x0059FA4C ["testee"] | Parameter 2: PHDIR = 0x0059F844 [0x00000001] | Parameter 3: ULONG = 0x00000036 | Parameter 4: PVOID = 0x0059F863 | Parameter 5: ULONG = 0x0000011D | Parameter 6: PULONG = 0x0059F840 [0x00000001] | Parameter 7: ULONG = 0x00000001 105E 0001 | Dos32FindFirst Exit at 12:26:53.87 PASS | Return code: 0 (NO_ERROR) | Parameter 2: PHDIR = 0x0059F844 [0x00000001] | Parameter 4: PVOID = 0x0059F863 | pFILEFINDBUF3[ 0 ] = 0x0059F863 | oNextEntryOffset = 0x00000000 | fdateCreation = 04/15/2018 | ftimeCreation = 11:16:16 | fdateLastAccess = 03/11/2019 | ftimeLastAccess = 11:57:52 | fdateLastWrite = 04/15/2018 | ftimeLastWrite = 11:18:48 | cbFile = 0x00000008 | cbFileAlloc = 0x00001000 | attrFile = 0x00000000 | cchName = 0x06 | achName = "testee" | Parameter 6: PULONG = 0x0059F840 [0x00000001] 105E 0001 | Dos32QueryCurrentDisk Entry at 12:26:53.87, Return Address = 0x000B5772 (SVN 0001:000A5772) | Parameter 1: PULONG = 0x0059F8C0 | Parameter 2: PULONG = 0x0059F8C4 105E 0001 | Dos32QueryCurrentDisk Exit at 12:26:53.87 PASS | Return code: 0 (NO_ERROR) | Parameter 1: PULONG = 0x0059F8C0 [0x00000004] | Parameter 2: PULONG = 0x0059F8C4 [0x001531FF] 105E 0001 | Dos32QueryCurrentDir Entry at 12:26:53.87, Return Address = 0x000B57B0 (SVN 0001:000A57B0) | Parameter 1: ULONG = 0x00000004 | Parameter 2: PBYTE = 0x0059F8CF | Parameter 3: PULONG = 0x0059F8C8 [0x00000101] 105E 0001 | Dos32QueryCurrentDir Exit at 12:26:53.87 PASS | Return code: 0 (NO_ERROR) | Parameter 2: PBYTE = 0x0059F8CF ["sla_dev2\TestSVN"] | Parameter 3: PULONG = 0x0059F8C8 [0x00000101] 105E 0001 | Dos32QueryPathInfo Entry at 12:26:53.87, Return Address = 0x00091648 (SVN 0001:00081648) | Parameter 1: PSZ = 0x006BC540 ["D:/sla_dev2/TestSVN/testee"] | Parameter 2: ULONG = 0x00000001 | Parameter 3: PVOID = 0x0059F81B | Parameter 4: ULONG = 0x00000018 105E 0001 | Dos32QueryPathInfo Exit at 12:26:53.87 PASS | Return code: 0 (NO_ERROR) | Parameter 3: PVOID = 0x0059F81B | fdateCreation = 04/15/2018 | ftimeCreation = 11:16:16 | fdateLastAccess = 03/11/2019 | ftimeLastAccess = 11:57:52 | fdateLastWrite = 04/15/2018 | ftimeLastWrite = 11:18:48 | cbFile = 0x00000008 | cbFileAlloc = 0x00001000 | attrFile = 0x00000000 105E 0001 | Dos32QueryPathInfo Entry at 12:26:53.87, Return Address = 0x00091648 (SVN 0001:00081648) | Parameter 1: PSZ = 0x006BC580 ["D:/sla_dev2/TestSVN/.svn"] | Parameter 2: ULONG = 0x00000001 | Parameter 3: PVOID = 0x0059F7EB | Parameter 4: ULONG = 0x00000018 105E 0001 | Dos32QueryPathInfo Exit at 12:26:53.89 PASS | Return code: 0 (NO_ERROR) | Parameter 3: PVOID = 0x0059F7EB | fdateCreation = 04/15/2018 | ftimeCreation = 11:10:20 | fdateLastAccess = 04/15/2018 | ftimeLastAccess = 11:10:20 | fdateLastWrite = 03/11/2019 | ftimeLastWrite = 11:20:22 | cbFile = 0x00000000 | cbFileAlloc = 0x00000000 | attrFile = 0x00000012 105E 0001 | Dos32QueryPathInfo Entry at 12:26:53.89, Return Address = 0x00091648 (SVN 0001:00081648) | Parameter 1: PSZ = 0x006BC5A0 ["D:/sla_dev2/TestSVN/.svn/wc.db"] | Parameter 2: ULONG = 0x00000001 | Parameter 3: PVOID = 0x0059F79B | Parameter 4: ULONG = 0x00000018 105E 0001 | Dos32QueryPathInfo Exit at 12:26:53.89 PASS | Return code: 0 (NO_ERROR) | Parameter 3: PVOID = 0x0059F79B | fdateCreation = 04/15/2018 | ftimeCreation = 11:10:20 | fdateLastAccess = 03/11/2019 | ftimeLastAccess = 11:57:52 | fdateLastWrite = 03/11/2019 | ftimeLastWrite = 11:20:22 | cbFile = 0x0001D000 | cbFileAlloc = 0x0001D000 | attrFile = 0x00000020 105E 0001 | Dos32FindFirst Entry at 12:26:53.97, Return Address = 0x0011756E (SVN 0001:0010756E) | Parameter 1: PSZ = 0x006BC7F8 ["D:/sla_dev2/TestSVN/testee/*"] | Parameter 2: PHDIR = 0x006BC6A0 [0xFFFFFFFF] | Parameter 3: ULONG = 0x00000037 | Parameter 4: PVOID = 0x006BC6A4 | Parameter 5: ULONG = 0x0000011D | Parameter 6: PULONG = 0x0059F9EC [0x00000001] | Parameter 7: ULONG = 0x00000001 105E 0001 | Dos32FindFirst Exit at 12:26:53.97 FAIL | Return code: 3 (ERROR_PATH_NOT_FOUND) | Parameter 2: PHDIR = 0x006BC6A0 [0x0000556D] | Parameter 4: PVOID = 0x006BC6A4 | Parameter 6: PULONG = 0x0059F9EC [0x00000001] 105E 0001 | Dos32FindClose Entry at 12:26:53.97, Return Address = 0x001174B8 (SVN 0001:001074B8) | Parameter 1: HDIR = 0x0000556D 105E 0001 | Dos32FindClose Exit at 12:26:53.97 FAIL | Return code: 6 (ERROR_INVALID_HANDLE) 105E 0001 | Dos32FindClose Entry at 12:26:54.01, Return Address = 0x001174B8 (SVN 0001:001074B8) | Parameter 1: HDIR = 0x0000556D 105E 0001 | Dos32FindClose Exit at 12:26:54.01 FAIL | Return code: 6 (ERROR_INVALID_HANDLE) SVN.EXE (105E) stopping at 12:26:54.01 on 03/12/2019 |
|
The attached should fix this trap. The code is assuming that DosFindFirst will set the value of thedir->handle to 0 if the API fails. The is not true. dir.c.diff (349 bytes)
diff --git a/file_io/os2/dir.c b/file_io/os2/dir.c index 3b08355..27d6f05 100644 --- a/file_io/os2/dir.c +++ b/file_io/os2/dir.c @@ -114,6 +114,7 @@ APR_DECLARE(apr_status_t) apr_dir_read(apr_finfo_t *finfo, apr_int32_t wanted, } thedir->validentry = FALSE; + thedir->handle = 0; if (rv) return APR_FROM_OS_ERROR(rv); |
|
http://smedley.id.au/tmp/subversion-1.7.21-os2-20190317.zip has the patch from Steven (not tested) |
|
Thanks Paul. Seems to work fine for both local and repo repos. |
|
Confirmed fixed. Kudos, guys. I can now update and rewind as expected (tested under 4OS2 as well as CMD and dash). I can specify a single filename, an absolute path, or a relative path. I can rewind a single file and then update that file's directory (and that file) by only specifying the directory name. Nice. |
|
Reopening due to some late-discovered side-effects of the proposed patch. Issue 1 (reported by David A): This version appears to be broken as it seems to now have broken the normal case sensitivity. [N.B.: I have not been able to confirm or deny this locally, mainly due to the next issue.] Issue 2: svn update at the root of the repository tree seems to cause some difficulties for sqlite: {0}[d:\] svn up d:\devel\arcaos\trunk Updating 'D:/devel/arcaos/trunk': svn: E200031: sqlite: attempt to write a readonly database svn: E200031: sqlite: attempt to write a readonly database svn: E200031: sqlite: attempt to write a readonly database svn: E200031: sqlite: attempt to write a readonly database This leaves the workspace in an inconsistent state, requiring cleanup before trying again. Results with other shells similar (the above was from 4OS2). |
|
The original patch was too agressive. It cleared the handle for all errors. It should have cleared the handle only when DosFindFirstFailed. dir.c.diif2 will avoid this. Be sure to revert the original dir.c.diff patch. The original patch had the side effect of bypassing all DosFindClose calls, so that we eventually run out of file handles. The sqlite error is simply a red-herring side effect of a file open failing. We are only going to see this error on large repositories. dir.c.diff2 (713 bytes)
diff --git a/file_io/os2/dir.c b/file_io/os2/dir.c index 3b08355..c2da136 100644 --- a/file_io/os2/dir.c +++ b/file_io/os2/dir.c @@ -79,6 +79,9 @@ APR_DECLARE(apr_status_t) apr_dir_read(apr_finfo_t *finfo, apr_int32_t wanted, rv = DosFindFirst(apr_pstrcat(thedir->pool, thedir->dirname, "/*", NULL), &thedir->handle, FILE_ARCHIVED|FILE_DIRECTORY|FILE_SYSTEM|FILE_HIDDEN|FILE_READONLY, &thedir->entry, sizeof(thedir->entry), &entries, FIL_STANDARD); + // 2019-03-13 SHL for #685 + if (rv) + thedir->handle = 0; } else { rv = DosFindNext(thedir->handle, &thedir->entry, sizeof(thedir->entry), &entries); } |
|
Reminder sent to: psmedley Please give the replacement patch a try when yoiu get a moment. |
|
Tried building tonight, but had a trap in OS2KRNL and system hangs trying to build after a reboot. Running chkdsk now... might be tomorrow before I have a new executable |
|
Updated build at http://smedley.id.au/tmp/subversion-1.7.21-os2-20190321.zip |
|
Thanks, Paul. Unfortunately, with 20190321, I still get: Updating 'J:/devel/arcaos': svn: E200031: sqlite: attempt to write a readonly database svn: E200031: sqlite: attempt to write a readonly database svn: E200031: sqlite: attempt to write a readonly database svn: E200031: sqlite: attempt to write a readonly database |
|
I have to suspect that the first patch (dir.c.diff) was not removed. If this is not it, I will test more here. |
|
Pretty sure it was removed, but perhaps the new apr.lib didn't install. I'll confirm this evening. |
|
It looks like the zip ships is shipping with an old svn.map. Please check this when you get a moment. Thanks. |
|
Very odd. It appears that the old patch is still in place. However, for some reason the generated code differs somewhat. Did you rebuild with a different gcc build? |
|
Nope, same gcc (8.2.0) |
|
http://smedley.id.au/tmp/subversion-1.7.21-os2-20190322.zip |
|
Sorry, Paul. With 20190322, I still get: svn: E200031: sqlite: attempt to write a readonly database when attempting to update the workspace root. The rewind operation works, and I can update that single file to the current rev, but a full update of the workspace fails. |
|
fyi, the dir.c I'm using is at http://smedley.id.au/tmp/dir.c |
|
This is: dir.c:128 thedir->handle = 0; leftover from the first patch. It needs to go away. |
|
uggh :( I swear I removed that line and checked it was gone ;( http://smedley.id.au/tmp/subversion-1.7.21-os2-20190323.zip |
|
Thanks. This appears to take care of the sqllite read only issue. I'm not sure, but I think there may be an unintended delete at: finfo->pool = thedir->pool; finfo->fname = NULL; - finfo->valid = 0; This will leave finfo->valid uninitialized for some code paths. |
|
Thanks - yes, that was an accidental delete - it's already fixed in today's build |
|
I think this one's the charm. If anything else crops up, I'll open fresh or re-open here, as appropriate, but 20190323 resolves the original issue and the unintended side-effect from the original patch. Thanks! |
Date Modified | Username | Field | Change |
---|---|---|---|
2019-03-12 02:45 | LewisR | New Issue | |
2019-03-12 18:45 | Steven Levine | Note Added: 0003256 | |
2019-03-12 20:17 | Steven Levine | File Added: svn.trc | |
2019-03-12 20:17 | Steven Levine | Note Added: 0003257 | |
2019-03-14 01:34 | Steven Levine | File Added: dir.c.diff | |
2019-03-14 01:34 | Steven Levine | Note Added: 0003258 | |
2019-03-17 06:25 | psmedley | Note Added: 0003259 | |
2019-03-17 06:58 | Steven Levine | Note Added: 0003260 | |
2019-03-17 20:08 | LewisR | Assigned To | => LewisR |
2019-03-17 20:08 | LewisR | Status | new => resolved |
2019-03-17 20:08 | LewisR | Resolution | open => fixed |
2019-03-17 20:08 | LewisR | Note Added: 0003261 | |
2019-03-19 14:26 | LewisR | Status | resolved => feedback |
2019-03-19 14:26 | LewisR | Resolution | fixed => reopened |
2019-03-19 14:26 | LewisR | Note Added: 0003262 | |
2019-03-19 14:26 | LewisR | Note Edited: 0003262 | |
2019-03-19 21:34 | Steven Levine | File Added: dir.c.diff2 | |
2019-03-19 21:34 | Steven Levine | Note Added: 0003263 | |
2019-03-20 02:08 | Steven Levine | Note Added: 0003264 | |
2019-03-20 08:44 | psmedley | Note Added: 0003265 | |
2019-03-21 08:18 | psmedley | Note Added: 0003266 | |
2019-03-21 14:57 | LewisR | Note Added: 0003267 | |
2019-03-21 14:58 | LewisR | Note Edited: 0003267 | |
2019-03-21 22:44 | Steven Levine | Note Added: 0003268 | |
2019-03-21 22:52 | psmedley | Note Added: 0003269 | |
2019-03-21 23:15 | Steven Levine | Note Added: 0003270 | |
2019-03-22 01:04 | Steven Levine | Note Added: 0003271 | |
2019-03-22 01:08 | psmedley | Note Added: 0003272 | |
2019-03-22 08:30 | psmedley | Note Added: 0003273 | |
2019-03-22 14:56 | LewisR | Note Added: 0003274 | |
2019-03-22 19:45 | psmedley | Note Added: 0003275 | |
2019-03-22 22:19 | Steven Levine | Note Added: 0003276 | |
2019-03-23 01:32 | psmedley | Note Added: 0003277 | |
2019-03-23 02:45 | Steven Levine | Note Added: 0003278 | |
2019-03-23 02:58 | psmedley | Note Added: 0003279 | |
2019-03-23 13:58 | LewisR | Status | feedback => resolved |
2019-03-23 13:58 | LewisR | Note Added: 0003280 | |
2020-08-24 03:07 | psmedley | Status | resolved => closed |