Error listed in the Accelerator Client for the affected Index Volume(s):
Index Search failed: %1 Index: %3 Internal reference: %2 (0xc0041c0e)
EV Event Log entry on the Accelerator Server:
Log Name: Veritas Enterprise Vault
Source: Enterprise Vault
Event ID: 41315
Task Category: None
Level: Warning
Description:
A search failed with error "Elasticsearch failed to complete search request".
Archive:
Archive ID: 123ABC456DEF789GHI123ABC456DEF789GHI0000EVSiteAlias
Index volume ID: 123456
User:
|Maximum results: 10000
|Timeout (seconds): 3600
Sort order: snum
V-437-41315
DTrace of the AcceleratorService process on the Accelerator Server:
[1234] (AcceleratorService) <5678> EV:M Response received. Result = <0xc0041c0e>, Status = 500
[1234] (AcceleratorService) <5678> EV:H CIndexQueryServerSearch::Search2. Request FAILED HR=0xc0041c0e.
[1234] (AcceleratorService) <5678> EV:L WinHttpRequest::Shutdown entry. Closing Winhttp handle
[1234] (AcceleratorService) <5678> EV:L WinHttpHandle: Closing handle.
[1234] (AcceleratorService) <5678> EV:L WinHttpRequest::Callback from WinHttp. Code=0x800, context=0x0FCDE254
[1234] (AcceleratorService) <5678> EV:L WinHttpRequest::OnCallback. WINHTTP_CALLBACK_STATUS_HANDLE_CLOSING.
DTrace of the EVIndexQueryServer process on the EV Index Servers (formatted for easier reading):
[1234] (EVIndexQueryServer) <123> EV-H {SearchInfoAccessor.GetValueFromSource} Loading search infos related to Archive(123ABC456DEF789GHI123ABC456DEF789GHI0000EVSiteAlias), SearcHash(X) and IndexVolume(1234ABCD12AB34CD56EF123456ABCDEF0_123456)
[1234] (EVIndexQueryServer) <123> EV-H {SqliteUtility} Exception while getting data from SQlite DB - Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 1: 'no such table: SearchInfo'.
| at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
| at Microsoft.Data.Sqlite.SqliteCommand.
| at Microsoft.Data.Sqlite.SqliteCommand.
| at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
| at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
| at Symantec.EnterpriseVault.Indexing.Search.SqliteUtility.GetSearchInfos(String archiveId, String searchHash, String indexVolumeName)
[1234] (EVIndexQueryServer) <123> EV-H {ESSearch.ExecuteOptimizedSearch} Elasticsearch optimised search failed to complete search request with error: Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 1: 'no such table: SearchInfo'.
| at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
| at Microsoft.Data.Sqlite.SqliteCommand.
| at Microsoft.Data.Sqlite.SqliteCommand.
| at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
| at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
| at Symantec.EnterpriseVault.Indexing.Search.SqliteUtility.GetSearchInfos(String archiveId, String searchHash, String indexVolumeName)
| at Symantec.EnterpriseVault.Indexing.Search.SearchInfoAccessor.GetValueFromSource(String[] keys)
| at Symantec.EnterpriseVault.Indexing.Search.SearchDataAccessor`1.GetValue(Boolean& fromCache, String[] keys)
| at Symantec.EnterpriseVault.Indexing.Search.ESOptimizedSearch.GetSearchInfoMatchingToInputs(ESOptimizedSearchInputs searchInputs, List`1& searchInfoList)
| at Symantec.EnterpriseVault.Indexing.Search.ESOptimizedSearch.GetLockObject(ESOptimizedSearchInputs searchInputs)
| at Symantec.EnterpriseVault.Indexing.Search.ESSearch.ExecuteOptimizedSearch(ESQuery esQuery, Source source, String indexvolumeName, String index, String[] storedFields, Int32 startResultsFrom, Int32 resultsWindowSize, Boolean logQuery, Int32 timeoutInSec, String computerEntryId, Int64& totalHits, TruncationReason& truncationReason)
[1234] (EVIndexQueryServer) <123> EV-M {SearchPipeline} TraceTimer [Xms] [X/20] Completed EngineSearchCommand, search , ID , user
[1234] (EVIndexQueryServer) <123> EV-L {SourcesInUse} Remove: Source 1234ABCD12AB34CD56EF123456ABCDEF0_123456 is no longer in use. 0 total sources in use.
[1234] (EVIndexQueryServer) <123> EV-H {SearchTask} Exception: Elasticsearch failed to complete search request Info:Search X failed, Attempt=1 Diag: Type:Symantec.EnterpriseVault.Indexing.Search.SearchExecutionFailedException ST:
at Symantec.EnterpriseVault.Indexing.Search.ESSearch.ExecuteOptimizedSearch(ESQuery esQuery, Source source, String indexvolumeName, String index, String[] storedFields, Int32 startResultsFrom, Int32 resultsWindowSize, Boolean logQuery, Int32 timeoutInSec, String computerEntryId, Int64& totalHits, TruncationReason& truncationReason)
| at Symantec.EnterpriseVault.Indexing.Search.ESSearch.PerformSearch(Search search, Source source)
| at Symantec.EnterpriseVault.Indexing.Search.ESSearch.DoSearch(Search search, Source source)
| at Symantec.EnterpriseVault.Indexing.Search.SearchBase.Search(Search search, Source source)
| at Symantec.EnterpriseVault.Indexing.Search.EngineSearchCommand.Execute(SearchPipelineContext context)
| at Symantec.EnterpriseVault.Indexing.Search.SearchPipeline.Execute(SearchPipelineContext context)| at Symantec.EnterpriseVault.Indexing.Search.SearchTask.Execute() Inner:None
[1234] (EVIndexQueryServer) <123> EV-L {SearchTaskThread} TraceTimer [Xms] ThreadMain: Search execution has completed
[1234] (EVIndexQueryServer) <123> EV-H {SearchTaskProcessor} Search X failed, but not due to 'too busy' or intermittent error, so not re-queuing.
[1234] (EVIndexQueryServer) <567> EV-H {IndexQueryServerSearch} Exception: Elasticsearch failed to complete search request
Info:Exception occurred during the execution of the pipeline for source 123ABC456DEF789GHI123ABC456DEF789GHI0000EVSiteAlias/X
Diag: Type:Symantec.EnterpriseVault.Indexing.Search.SearchExecutionFailedException
ST: at Symantec.EnterpriseVault.Indexing.Search.ESSearch.ExecuteOptimizedSearch(ESQuery esQuery, Source source, String indexvolumeName, String index, String[] storedFields, Int32 startResultsFrom, Int32 resultsWindowSize, Boolean logQuery, Int32 timeoutInSec, String computerEntryId, Int64& totalHits, TruncationReason& truncationReason)
| at Symantec.EnterpriseVault.Indexing.Search.ESSearch.PerformSearch(Search search, Source source)
| at Symantec.EnterpriseVault.Indexing.Search.ESSearch.DoSearch(Search search, Source source)
| at Symantec.EnterpriseVault.Indexing.Search.SearchBase.Search(Search search, Source source)
| at Symantec.EnterpriseVault.Indexing.Search.EngineSearchCommand.Execute(SearchPipelineContext context)
| at Symantec.EnterpriseVault.Indexing.Search.SearchPipeline.Execute(SearchPipelineContext context)
| at Symantec.EnterpriseVault.Indexing.Search.SearchTask.Execute()
Inner:None
[1234] (EVIndexQueryServer) <567> EV-H {SearchService} Exception: Elasticsearch failed to complete search request
Info:SearchService.Search failed.
Diag: Type:Symantec.EnterpriseVault.Indexing.Search.SearchExecutionFailedException
ST: at Symantec.EnterpriseVault.Indexing.Search.IndexQueryServerSearch.HandleErrors(SearchTask task)
| at Symantec.EnterpriseVault.Indexing.Search.IndexQueryServerSearch.Search(Search search, String callerLogin)
| at Symantec.EnterpriseVault.Indexing.Search.SearchService.Search(Search search)
Inner:None
[1234] (EVIndexQueryServer) <567> EV-L {IndexVolumes} GetIndexVolumeInfo from cache:
[1234] (EVIndexQueryServer) <567> EV~W
|Event ID: 41315 A search failed with error "Elasticsearch failed to complete search request".
|Archive:
|Archive ID: 123ABC456DEF789GHI123ABC456DEF789GHI0000EVSiteAlias
|Index volume ID: 123456
|User:
|Maximum results: 10000
|Timeout (seconds): 3600
|Sort order: snum
[1234] (EVIndexQueryServer) <567> EV-M {SearchTracking} [TRACKING] OUTGOING SEARCH RESPONSE ID=[1234ABCD-12AB-34CD-56EF-123456ABCDEF] DESTINATIONSERVER=unknown DESTINATIONPROCESS=unknown INDEXVOLUME=unknown
[1234] (EVIndexQueryServer) <567> EV-H {IndexServerSearch} Exception: Elasticsearch failed to complete search request
Info:Search2 failed.
Diag: Type:Symantec.EnterpriseVault.Indexing.Search.SearchExecutionFailedException
ST: at Symantec.EnterpriseVault.Indexing.Search.IndexQueryServerSearch.HandleErrors(SearchTask task)
| at Symantec.EnterpriseVault.Indexing.Search.IndexQueryServerSearch.Search(Search search, String callerLogin)
| at Symantec.EnterpriseVault.Indexing.Search.SearchService.Search(Search search)
| at Symantec.EnterpriseVault.Indexing.Search.IndexServerSearch.Search2(String searchEntityId, String query, Int32 startResult, Int32 maximumResults, Int32 options, String sortBy, Int32 resultsPropertySet, String extraResultProperties, String resultsProcessingInstruction, Int32 resultsFormatOptionsNOTUSED, String authToken, Int32 timeoutSecs)
Inner:None
[1234] (EVIndexQueryServer) <567> EV-H {IndexServerSearchService} Exception: Elasticsearch failed to complete search request
Info:Search via HTTP/POST failed.
Diag:HRESULT: c0041c0e Type:System.Runtime.InteropServices.COMException
ST: at Symantec.EnterpriseVault.Indexing.Search.IndexServerSearch.Search2(String searchEntityId, String query, Int32 startResult, Int32 maximumResults, Int32 options, String sortBy, Int32 resultsPropertySet, String extraResultProperties, String resultsProcessingInstruction, Int32 resultsFormatOptionsNOTUSED, String authToken, Int32 timeoutSecs)
| at Symantec.EnterpriseVault.Indexing.Search.IndexServerSearchService.Search(Stream postBodyStream)
Inner:None
From version 14.4 onwards, there is a new Accelerator Configuration Setting that optimizes Searches for ElasticSearch (ES) indices:
Name: Enable optimized searches on Elasticsearch index volumes
Section: Search
Description: If true, enabled the optimzed searches on ElasticSsearch Index Volumes in Enterprise Vault Archives.
Default Value: Enabled.
This Setting makes use of a temporary SQLite database created specifically for the Search. The error is caused by a missing table in the temporary database. Causes can include issues encountered when creating the database's schema, a corrupted database file, multi-threading issues whereby the thread that writes to the file runs before the thread that creates the database schema, antivirus, etc.
To temporarily work around the issue and allow the Search to complete:
1. Open the Accelerator Client with an account having rights to edit Configuration Settings, such as the Vault Service Account (VSA), and navigate to Configuration | Settings | Search.
2. Disable the Enable optimized searches on Elasticsearch index volumes Setting.
3. Acknowledge the prompt to restart services, Customer Background Tasks, etc.
4. Restart the Enterprise Vault Accelerator Manager Service.
5. Run a new Search or Resubmit the Search.
To resolve the issue:
1. On the EV Indexing Server servicing the Archive in question:
1.1. Stop the EV Indexing Service.
1.2. Locate and delete the file SQLiteCache_
1.3. Start the EV Indexing Service.
2. On the Accelerator Server:
2.1. Open the Accelerator Client with an account having rights to edit Configuration Settings, such as the Vault Service Account (VSA), and navigate to Configuration | Settings | Search.
2.2. Check the Enable optimized searches on Elasticsearch index volumes Setting and enable it if disabled.
2.3. Acknowledge the prompt to restart services, Customer Background Tasks, etc.
2.4. Restart the Enterprise Vault Accelerator Manager Service.
2.5. Run a new Search or Resubmit the Search.