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.

Reply via email to