lucenenet-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Arne Claassen <ar...@mindtouch.com>
Subject Lucene.net 2.9.1 and mono
Date Thu, 01 Apr 2010 22:29:00 GMT
Hi, i'm new to the list, so if this falls under FAQ, please just point  
me in the right direction.

We've been using Lucene.net 1.9.1 for quite a while and I wanted to  
finally get us current with lucene, so i incorporated 2.9.1 into our  
code. Unfortunately, 2.9.1 crashes under mono 2.4. Has anyone else  
tried it on Mono? I downgraded to 2.4.0 which does work but has  
problems with unclean shutdown with SimpleFSLock on windows and linux,  
that NativeFSLock in 2.9.1 does not exhibit.

Before i go into the 2.9.1 issues in detail, in 2.40 is there a best  
practice for cleaning up lingering locks for SimpleFSLock other than  
manually looking for the lock file and clearing it out at startup?

Anyway, here are the 2.9.1 issues i came across. Being mono only  
issues i don't know if this helpful, but i thought i'd see if this  
rings a bell.

When no index exists yet, IndexWriter will die and completely take  
down the process with this:

** ERROR:(mini.c:3624):mini_method_compile: assertion failed: (tblock- 
 >native_offset)
Stacktrace:

   at Lucene.Net.Index.SegmentInfos.FinishCommit  
(Lucene.Net.Store.Directory) <0xffffffff>
   at Lucene.Net.Index.SegmentInfos.FinishCommit  
(Lucene.Net.Store.Directory) <0x000e4>
   at Lucene.Net.Index.SegmentInfos.Commit  
(Lucene.Net.Store.Directory) <0x00024>
   at Lucene.Net.Index.IndexWriter.Init  
(Lucene 
.Net 
.Store 
.Directory 
,Lucene 
.Net 
.Analysis 
.Analyzer 
,bool 
,bool 
,Lucene 
.Net 
.Index.IndexDeletionPolicy,bool,int,Lucene.Net.Index.DocumentsWriter/ 
IndexingChain,Lucene.Net.Index.IndexCommit) <0x001a3>
   at Lucene.Net.Index.IndexWriter.Init  
(Lucene 
.Net 
.Store 
.Directory 
,Lucene 
.Net 
.Analysis 
.Analyzer 
,bool 
,Lucene 
.Net 
.Index.IndexDeletionPolicy,bool,int,Lucene.Net.Index.DocumentsWriter/ 
IndexingChain,Lucene.Net.Index.IndexCommit) <0x00076>
   at Lucene.Net.Index.IndexWriter..ctor  
(Lucene 
.Net 
.Store 
.Directory,Lucene.Net.Analysis.Analyzer,Lucene.Net.Index.IndexWriter/ 
MaxFieldLength) <0x001c2>
   at Repro.Program.Main (string[]) <0x00089>
   at (wrapper runtime-invoke)  
Repro.Program.runtime_invoke_void_object (object,intptr,intptr,intptr)  
<0xffffffff>

If an index already exists both IndexWriter and IndexSearcher will  
throw an exception (without taking down the process this time) for  
NIOFSDirectory:

Unhandled Exception: System.NullReferenceException: Object reference  
not set to an instance of an object
   at Lucene.Net.Store.NIOFSDirectory+NIOFSIndexInput.ReadInternal  
(System.Byte[] b, Int32 offset, Int32 len) [0x00000]
   at Lucene.Net.Store.BufferedIndexInput.Refill () [0x00000]
   at Lucene.Net.Store.BufferedIndexInput.ReadByte () [0x00000]
   at Lucene.Net.Store.IndexInput.ReadInt () [0x00000]
   at Lucene.Net.Index.SegmentInfos+FindSegmentsFile.Run  
(Lucene.Net.Index.IndexCommit commit) [0x00000]
   at Lucene.Net.Index.DirectoryReader.Open  
(Lucene.Net.Store.Directory directory, IndexDeletionPolicy  
deletionPolicy, Lucene.Net.Index.IndexCommit commit, Boolean readOnly,  
Int32 termInfosIndexDivisor) [0x00000]
   at Lucene.Net.Index.IndexReader.Open (Lucene.Net.Store.Directory  
directory, IndexDeletionPolicy deletionPolicy,  
Lucene.Net.Index.IndexCommit commit, Boolean readOnly, Int32  
termInfosIndexDivisor) [0x00000]
   at Lucene.Net.Index.IndexReader.Open (Lucene.Net.Store.Directory  
directory) [0x00000]
   at Lucene.Net.Search.IndexSearcher..ctor  
(Lucene.Net.Store.Directory directory) [0x00000]
   at (wrapper remoting-invoke-with-check)  
Lucene.Net.Search.IndexSearcher:.ctor (Lucene.Net.Store.Directory)
   at Repro.Program.Main (System.String[] args) [0x00000]

I've also come across lock timeout with NativeFSLock on mono, but  
can't figure out how to repro this.

cheers,
Arne Claassen

MindTouch
San Diego, CA
http://twitter.com/sdether


Mime
View raw message