3826: Rebuilding search index fails
- NotABug
- Review Board
| erik*****@gmai***** (Google Code) (Is this you? Claim this profile.) | |
What version are you running?
2.0.11
What's the URL of the page containing the problem?
N/A
What steps will reproduce the problem?
1. sudo -u www-data rb-site manage /var/www/reviewboard rebuild_index
What is the expected output? What do you see instead?
I expect the command to succeed, instead I get the following error:
Traceback (most recent call last):
File "/usr/local/bin/rb-site", line 9, in <module>
load_entry_point('ReviewBoard==2.0.11', 'console_scripts', 'rb-site')()
File "/usr/local/lib/python2.7/dist-packages/ReviewBoard-2.0.11-py2.7.egg/reviewboard/cmdline/rbsite.py", line 1877, in main
command.run()
File "/usr/local/lib/python2.7/dist-packages/ReviewBoard-2.0.11-py2.7.egg/reviewboard/cmdline/rbsite.py", line 1806, in run
site.run_manage_command(args[0], args[1:])
File "/usr/local/lib/python2.7/dist-packages/ReviewBoard-2.0.11-py2.7.egg/reviewboard/cmdline/rbsite.py", line 654, in run_manage_command
execute_from_command_line([__file__, cmd] + params)
File "/usr/local/lib/python2.7/dist-packages/Django-1.6.7-py2.7.egg/django/core/management/__init__.py", line 399, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python2.7/dist-packages/Django-1.6.7-py2.7.egg/django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.7/dist-packages/Django-1.6.7-py2.7.egg/django/core/management/base.py", line 242, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/local/lib/python2.7/dist-packages/Django-1.6.7-py2.7.egg/django/core/management/base.py", line 285, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python2.7/dist-packages/django_haystack-2.1.0-py2.7.egg/haystack/management/commands/rebuild_index.py", line 15, in handle
call_command('clear_index', **options)
File "/usr/local/lib/python2.7/dist-packages/Django-1.6.7-py2.7.egg/django/core/management/__init__.py", line 159, in call_command
return klass.execute(*args, **defaults)
File "/usr/local/lib/python2.7/dist-packages/Django-1.6.7-py2.7.egg/django/core/management/base.py", line 285, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python2.7/dist-packages/django_haystack-2.1.0-py2.7.egg/haystack/management/commands/clear_index.py", line 49, in handle
backend.clear()
File "/usr/local/lib/python2.7/dist-packages/django_haystack-2.1.0-py2.7.egg/haystack/backends/whoosh_backend.py", line 227, in clear
self.setup()
File "/usr/local/lib/python2.7/dist-packages/django_haystack-2.1.0-py2.7.egg/haystack/backends/whoosh_backend.py", line 121, in setup
self.index = self.storage.open_index(schema=self.schema)
File "/usr/local/lib/python2.7/dist-packages/Whoosh-2.6.0-py2.7.egg/whoosh/filedb/filestore.py", line 176, in open_index
return indexclass(self, schema=schema, indexname=indexname)
File "/usr/local/lib/python2.7/dist-packages/Whoosh-2.6.0-py2.7.egg/whoosh/index.py", line 421, in __init__
TOC.read(self.storage, self.indexname, schema=self._schema)
File "/usr/local/lib/python2.7/dist-packages/Whoosh-2.6.0-py2.7.egg/whoosh/index.py", line 632, in read
check_size("int", _INT_SIZE)
File "/usr/local/lib/python2.7/dist-packages/Whoosh-2.6.0-py2.7.egg/whoosh/index.py", line 626, in check_size
sz = stream.read_varint()
File "/usr/local/lib/python2.7/dist-packages/Whoosh-2.6.0-py2.7.egg/whoosh/filedb/structfile.py", line 191, in read_varint
return read_varint(self.read)
File "/usr/local/lib/python2.7/dist-packages/Whoosh-2.6.0-py2.7.egg/whoosh/util/varints.py", line 102, in read_varint
b = ord(readfn(1))
TypeError: ord() expected a character, but string of length 0 found
What operating system are you using? What browser?
Ubuntu 12.04
I assume this bug isn't very helpful since you would probably like to see the data in the existing index (as would I) but I am not familiar with whoosh or haystack at all so I'll need some pointers on where to start.
I blew away all the files in the search directory and re-ran the rebuild_index command and this time it worked. I still have the bad files if we would like to analyze.
I suspect it was just some file corruption. We haven't seen any other reports of this so I'm going to assume it's not really a bug.
-
- New + NotABug