Index update fails on Windows
Brought to you by:
chrsmithdemos
Originally created by: fuz...@gmail.com
What steps will reproduce the problem?
1. cindex any/path
2. cindex
3.
What is the expected output?
The index is updated.
What do you see instead?
After merging the master index with the updated index, the rename of .csearchindex~~ to .csearchindex fail. This is possibly due to open file handles.
What version of the product are you using? On what operating system?
Windows 7, 64 bit
Please provide any additional information below.
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: michael....@gmail.com
This may be related - I noticed a number of temp files are not cleaned up on the Windows version. This is probably because UnmapViewOfFile does not appear to be used, and the handle returned by CreateFileMapping isn't closed. I would probably add this info to mmapData and give it a Close() method, which I would use right before removing the file.
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: osman.br...@gmail.com
Hahahaha. I decided to try and fix the bugs in the code to make this work. I'm still at it. First, the checked in code doesn't compile out of the box anymore, due to a missing typecast. That's just the beginning, though. During a simple index update, the code generates about a dozen intermediate/temporary files. *None* of them are correctly cleaned up. I'm guessing the only reason any of this code works at all on *ix systems is due to the lack of file locking. Sadly, the code has almost no error checking performed on critical file system operations, and none of the abstractions used for file-system objects (Index, IndexWriter) even had the ability to close cleanly - they basically only had API to open/read/write, with the assumption that the OS would let you call Remove on the open file when you were done.
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: fuz...@gmail.com
I've attached a patch that fixes this, plus the compile error. It also changes the path used to store the index (e.g. use APPDATA instead of HOME environment variable)
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: michael....@gmail.com
Thanks - the patch definitely helps - the search index is updated and renamed correctly. Two things though - mmap_linux.go needs a copy of unmmapFile, and the temporary files generated as a part of the index process are not deleted.
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: michael....@gmail.com
This patch seems to get the temp files deleted.