Hello everyone,
I'm recently seeing this error a lot:
** Traceback details
Traceback (most recent call last):
File "/usr/lib64/python2.6/site-packages/invenio/webinterface_handler.py",
line 424, in _handler
return root._traverse(req, path, False, guest_p)
File "/usr/lib64/python2.6/site-packages/invenio/webinterface_handler.py",
line 252, in _traverse
result = _check_result(req, obj(req, form))
File "/usr/lib64/python2.6/site-packages/invenio/websearch_webinterface.py",
line 525, in __call__
out = perform_request_search(req, **argd)
File "/usr/lib64/python2.6/site-packages/invenio/search_engine.py", line
5282, in perform_request_search
return prs_perform_search(kwargs=kwargs, **kwargs)
File "/usr/lib64/python2.6/site-packages/invenio/search_engine.py", line
5293, in prs_perform_search
return prs_search(kwargs=kwargs, **kwargs)
File "/usr/lib64/python2.6/site-packages/invenio/search_engine.py", line
5465, in prs_search
output = prs_search_common(kwargs=kwargs, **kwargs)
File "/usr/lib64/python2.6/site-packages/invenio/search_engine.py", line
6214, in prs_search_common
prs_search_hosted_collections(kwargs=kwargs, **kwargs)
File "/usr/lib64/python2.6/site-packages/invenio/search_engine.py", line
5702, in prs_search_hosted_collections
(hosted_colls_results, hosted_colls_timeouts) =
calculate_hosted_collections_results(req, [p, p1, p2, p3], f, hosted_colls,
verbose, ln, CFG_HOSTED_COLLECTION_TIMEOUT_ANTE_SEARCH)
File
"/usr/lib64/python2.6/site-packages/invenio/websearch_external_collections.py",
line 348, in calculate_hosted_collections_results
verbosity_level)
File
"/usr/lib64/python2.6/site-packages/invenio/websearch_external_collections.py",
line 381, in calculate_hosted_collections_search_params
basic_search_units = create_basic_search_units(None, pattern, field)
File "/usr/lib64/python2.6/site-packages/invenio/search_engine.py", line 801,
in create_basic_search_units
if f and p[0] == '"' and p[-1] == '"':
IndexError: string index out of range
I've noted that the problem arises only when all the following are true:
- Externally hosted collections
- The &f in the search uri has a value (ie &f=title, &f=year, etc). The
same searches in the 'any field' index work without errors.
- The search-for value must be empty
- Search is performed from within the external collection (see below for
explanation)
Steps to replicate:
1. Go inside an externally hosted collection (do NOT just click search
in the top collection and then select the external collection from the
dropdown menu, as the error does NOT(!) appear).
2. Select a search index other than 'any field'
3. Leave the search-for term, empty
4. Hit search
Can you verify my findings? If so, I should probably create a ticket...
Best regards,
Theodoros Theodoropoulos
ps. btw, I don't think it's a timeout issue because the same search in
the other invenio server that hosts the collection returns results
almost instantly.