FailDBReader in Find in Files

If you are having a problem using Vault, post a message here.

Moderator: SourceGear

Post Reply
dsalter
Posts: 71
Joined: Wed Dec 15, 2010 9:02 am

FailDBReader in Find in Files

Post by dsalter » Mon Mar 14, 2016 12:51 pm

Vault 6.1.0

for the first time ever, I tred to do a Find in Files using the Vault Client. I get error 1104: FailDBReader:

An error occurred in Find in Files. Server Error: [1104] - A database error has occured (FailDBReader)

I checked the log and the error information is below. Any idea how I can fix this so I can do a "find in Files"?

----3/14/2016 1:49:28 PM dsalter2--menp800x5373thl.ad.wrha.mb.ca(172.19.66.41)--SSL Disabled Rolling Back a transaction at VaultServiceSQL.VaultSqlConn.RollbackTransaction()
at VaultServiceAPILib.VaultServiceAPI.FindinFiles(FindInFilesQuery q, List`1 listObjVerIDs, Dictionary`2& hashObjVerIDFileNameAndPaths, Boolean bCleanResultsForWebService, FindInFilesData[]& arFiFData)
at VaultServiceAPILib.VaultServiceAPI.FindInFiles(Int32 nUserID, FindInFilesByFolderQuery q, Boolean bCleanResultsForWebService, FindInFilesData[]& arFifData)
at VaultService.VaultService.FindInFilesByFolder(FindInFilesByFolderQuery q, Boolean bUseExceptions, FindInFilesData[]& arFifData)
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Web.Services.Protocols.LogicalMethodInfo.Invoke(Object target, Object[] values)
at System.Web.Services.Protocols.WebServiceHandler.Invoke()
at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()
at System.Web.Services.Protocols.SyncSessionlessHandler.ProcessRequest(HttpContext context)
at System.Web.Script.Services.ScriptHandlerFactory.HandlerWrapper.ProcessRequest(HttpContext context)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
at System.Web.HttpApplication.ApplicationStepManager.ResumeSteps(Exception error)
at System.Web.HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
at System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)
at System.Web.Hosting.ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType)

----3/14/2016 1:49:28 PM dsalter2--menp800x5373thl.ad.wrha.mb.ca(172.19.66.41)--SSL Disabled FindInFilesByFolder returned: FailDBReader

dsalter
Posts: 71
Joined: Wed Dec 15, 2010 9:02 am

Re: FailDBReader in Find in Files

Post by dsalter » Mon Mar 14, 2016 1:28 pm

In checking other posts, I turned off indexes and purged the data. I deleted the GUIds in the vaultservice cache folder. Restarted index and still fails. Here is the message in VaultService:


3/14/2016 2:24:50 PM <generic>: Failed to update the status message for repository 8. [System.Data.SqlClient.SqlException (0x80131904): Procedure or function 'spupdaterepositoryindexmessage' expects parameter '@adddbrowifmissing', which was not supplied.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
at System.Data.SqlClient.SqlDataReader.get_MetaData()
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)
at VaultIndexService.VaultIndexServiceSQL.UpdateRepositoryIndexStatusMessage(Int32 nRepID, String strStatusMsg, String& strOldStatusMsg)
ClientConnectionId:15626a42-4f08-42f2-a732-63338008d834] Procedure or function 'spupdaterepositoryindexmessage' expects parameter '@adddbrowifmissing', which was not supplied.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
at System.Data.SqlClient.SqlDataReader.get_MetaData()
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)
at VaultIndexService.VaultIndexServiceSQL.UpdateRepositoryIndexStatusMessage(Int32 nRepID, String strStatusMsg, String& strOldStatusMsg)

3/14/2016 2:24:51 PM <generic>: Ended index build for repository "8"

jclausius
Posts: 3702
Joined: Tue Dec 16, 2003 1:17 pm
Location: SourceGear
Contact:

Re: FailDBReader in Find in Files

Post by jclausius » Mon Mar 14, 2016 3:02 pm

It looks like there is a mismatch between the code the Vault Index Service is using and the actual database.

Can you run the following query on your Vault Server (where sgvaultindex should be installed):

SELECT * FROM sgvaultindex.dbo.schemaversion
GO

Also, what is the version of VaultIndexService.dll found on your Vault Server's installation, under ...\VaultService\VaultIndexService\bin
Jeff Clausius
SourceGear

dsalter
Posts: 71
Joined: Wed Dec 15, 2010 9:02 am

Re: FailDBReader in Find in Files

Post by dsalter » Mon Mar 14, 2016 3:10 pm

The version from the SQL is returned as 6.0.0.0

The DLL version shows 6.10.531 (which would be our client version).

We did move the DB from one server to another, then upgrade to 6.1.0, so i'm not sure what went wrong.

What would you recommend I do?

Thanks.

jclausius
Posts: 3702
Joined: Tue Dec 16, 2003 1:17 pm
Location: SourceGear
Contact:

Re: FailDBReader in Find in Files

Post by jclausius » Tue Mar 15, 2016 4:54 am

The database schema should be '6.0.0.1' for Vault 6.1.

You'll need to re-apply the upgrade to those databases. The easiest thing to do is to :

a) Make a backup of the existing sg* databases.
b) If you are using Vault's Shadow Folders, make a copy of the Vault Shadow Folder web.config file. This is found in a sub-directory of the main Vault Server's installation directory.
c) Look at IIS Admin Tool, and the 'identity' of the Vault related app pools. Make note of any custom values for those IIS App Pools.
d) Uninstall the Vault Server, and connect to the SQL Server instance. But when prompted, choose the option to KEEP the databases. Do not delete them.
e) Reinstall the 6.1 Vault Server, use the same SQL Server instance from step 'D'. When prompted, use the existing databases.
f) If necessary, reconfigure any of the Vault App Pools from step 'C'
g) If you had any Shadow Folders from step 'B', reconfigure them using the information in the web.config file as a guide.

This process will apply any database upgrades found missing in your installation.
Jeff Clausius
SourceGear

Post Reply