Menu

#7 Index update fails on Windows

New
nobody
None
Medium
Defect
2012-06-22
2012-01-23
Anonymous
No

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.

Discussion

  • Anonymous

    Anonymous - 2012-01-23

    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.

     
  • Anonymous

    Anonymous - 2012-05-20

    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.

     
  • Anonymous

    Anonymous - 2012-05-24

    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)

     
  • Anonymous

    Anonymous - 2012-06-21

    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.

     

Log in to post a comment.

MongoDB Logo MongoDB