From mboxrd@z Thu Jan 1 00:00:00 1970 From: wmorgan-sup@masanjin.net (William Morgan) Date: Sat, 24 Nov 2007 09:18:06 -0800 Subject: [sup-talk] More sup errors... In-Reply-To: <1195480287-sup-1830@ausone.inria.fr> References: <1195480287-sup-1830@ausone.inria.fr> Message-ID: <1195923981-sup-4149@south> Excerpts from nicolas.pouillard's message of Mon Nov 19 05:53:33 -0800 2007: > The problem was: ':20492 is out of range [0..20456] for IndexReader#[]' (error > type ArgumentError) > A backtrace follows: > /opt/local/lib/ruby/gems/1.8/gems/ferret-0.11.4/lib/ferret/index.rb:411:in > `[]': :20492 is out of range [0..20456] for IndexReader#[] (ArgumentError) [snip] > The problem was: 'State Error occured at :93 in xraise > Error occured in index.c:4142 - sr_get_lazy_doc > Document 9761 has already been deleted > > ' (error type Ferret::StateError) > A backtrace follows: > /opt/local/lib/ruby/gems/1.8/gems/ferret-0.11.4/lib/ferret/index.rb:411:in > `[]': State Error occured at :93 in xraise (Ferret::StateError) > Error occured in index.c:4142 - sr_get_lazy_doc > Document 9761 has already been deleted These errors (and the previous errors you reported about the non-matching message ids) suggest that Ferret is very confused---it's returning document ids (each message is stored as a Ferret "document") from a search that don't correspond to the right messages, or that correspond to documents that have already been deleted, or that are simply bigger than the max document id in the index. I suspect a bug in Ferret has somehow broken your index. Here's what I suggest. 0. Make a backup of ~/.sup in case something terrible happens. 1. Upgrade your Ferret gem to 11.5 (the latest). 2. sup-sync --all --optimize. (Might take a while.) If step #2 fails with the same Ferret errors, try: 3. sup-dump | bzip2 > /tmp/state.bz2 4. rm -rf ~/.sup/ferret # you did make a backup, right? 5. sup-sync --all --restore <(bzcat /tmp/state.bz2) # assumes bash But hopefully step #2 will work. And if we're lucky step #1 will fix whatever Ferret bug caused this. -- William