Ticket UUID: | 19ea026e43c243824c523eba9163ed6442436903 | |||
Title: | parallell 'source'ing files from linked directory fails randomly | |||
Type: | Patch | Version: | ||
Submitter: | bogdan1234 | Created on: | 2015-04-22 13:40:44 | |
Subsystem: | 27. Channel Types | Assigned To: | jan.nijtmans | |
Priority: | 7 High | Severity: | Severe | |
Status: | Closed | Last Modified: | 2015-04-23 12:21:38 | |
Resolution: | Accepted | Closed By: | oehhar | |
Closed on: | 2015-04-23 12:21:38 | |||
Description: |
Notice: whole analyze assumes tclWinFile.c from 0a2e3bb2d9 trunk. Suppose such situation on Windows: several Tcl executable instances (in my situation it was software which integrates Tcl inside) 'source' files at the same time from the same directory, which is symbolic link or mounted drive. (in my situation mentioned software was just installed into this linked directory) Problem is that in such situation TclpObjNormalizePath randomly fails at tclWinFile.c:2587 (exactly this line: handle = FindFirstFileW((WCHAR *) nativePath, &fData);), because at the same time other process opened the linked directory using NativeReadReparse function without FILE_SHARE_READ flag in CreateFile (see tclWinFile.c:671). I cannot find the reason to not give shared access for reading the directory in NativeReadReparse as it only reads Reparse Point. My patch corrects this problem (it passes FILE_SHARE_READ flag into CreateFile in NativeReadReparse). Please, consider this correction, or explain the reason why it cannot be used. | |||
User Comments: |
oehhar added on 2015-04-23 12:21:38:
Checked with Jan and APN. Test suite has no new issue, but [8f6132d6ee] was discovered. Committed to core-8-5-branch [7d39fa6f82] and trunk [990679a4a2]. Bug closed. Thank you, Harald |
Attachments:
- tclWinFile.patch [download] added by bogdan1234 on 2015-04-22 13:41:12. [details]