elasticsearch 升级到TFS 2018更新2后搜索失败,elasticsearch,tfs,elasticsearch,Tfs" /> elasticsearch 升级到TFS 2018更新2后搜索失败,elasticsearch,tfs,elasticsearch,Tfs" />

elasticsearch 升级到TFS 2018更新2后搜索失败

elasticsearch 升级到TFS 2018更新2后搜索失败,elasticsearch,tfs,elasticsearch,Tfs,将TFS服务器升级到2018 Update 2后,在我们的一个环境中,搜索和索引似乎已中断 任何搜索都会显示“我们在处理您的请求时遇到意外错误”,我已经完成了所有疑难解答文档,以清理和重新索引所有集合。还将搜索包完全重新安装到单独的服务器上,我们运行搜索和索引,以确保运行的版本正确 TFS应用程序服务器上的事件日志中记录了大量异常: 事件(81277)已完成,状态为FailedAndry。事件81277 消息“BeginBulkIndex PushEventNotification:已完成” 由

将TFS服务器升级到2018 Update 2后,在我们的一个环境中,搜索和索引似乎已中断

任何搜索都会显示“我们在处理您的请求时遇到意外错误”,我已经完成了所有疑难解答文档,以清理和重新索引所有集合。还将搜索包完全重新安装到单独的服务器上,我们运行搜索和索引,以确保运行的版本正确

TFS应用程序服务器上的事件日志中记录了大量异常:

事件(81277)已完成,状态为FailedAndry。事件81277 消息“BeginBulkIndex PushEventNotification:已完成” 由于异常,操作未成功完成 Microsoft.VisualStudio.Services.Search.Common.FeederException:大量 文件被Elasticsearch拒绝,此作业失败。故障原因: Microsoft.VisualStudio.Services.Search.Common.SearchPlatformException: ES异常:[HTTP状态代码:[200]批量API_错误:[索引 返回404\u索引:codesearchshared\u 1\u 0\u类型: SourceNodeDopeFileContractV3\u版本:0错误:类型: 类型\缺少\异常原因:“类型[SourceNodeDopeFileContractV3] 失踪“

另一种异常类型也记录了很多次,表明无法索引工作项:

Microsoft.VisualStudio.Services.Search.Common.SearchPlatformException: ES异常:[HTTP状态代码:[200]批量\u API\u错误:[更新] 返回404_索引:workitemsearchshared_0_2_类型:workItemContract _版本:0错误:类型:类型\u缺少\u异常原因:“类型[workItemContract]缺少”更新返回404\u索引: workitemsearchshared\u 0\u 2\u类型:workItemContract\u版本:0错误: 类型:类型\缺失\异常原因:“类型[workItemContract]缺失”

异常似乎表明某些类型注册丢失,如workItemContract和SourceNodeEdupeFileContractv3,但我在搜索服务器安装日志中找不到任何错误


有人对如何解决此问题并使弹性搜索恢复到工作状态提出了一些建议吗?

根据您的错误信息和TFS版本,此问题类似于

尝试以下问题中的解决方案:

似乎我在下面的注册表中有一个无效/有问题的设置 更新/安装未修复的密钥

HKEY\U LOCAL\U MACHINE\SOFTWARE\Wow6432Node\Apache软件 基金会 2.0\elasticsearch-service-x64\Parameters\Java\Options

所含价值:

-Xms0m -Xmx0m

将两者从'0m'更改为'1g'修复了问题。就我而言 了解“0m”默认为4GB,这可能会与我的服务器冲突 只有2.8GB的内存。我将按照 最低要求

也许配置工具可以警告此问题或设置 对可能发生的事情的价值


还可以看看这篇文章,它可能会有所帮助:

我们通过完全卸载然后重新安装与搜索相关的所有内容来解决这个问题

  • 已从web admin中的扩展管理中的所有集合中卸载所有代码/工作/Wiki扩展
  • 已从TFS管理控制台中删除TFS搜索服务功能
  • 使用PowerShell脚本从单独的搜索服务器卸载了elasticsearch服务。\Configure-TFSSearch.ps1-操作删除
  • 重新启动TFS作业代理服务

  • 已使用从所有集合数据库中删除与搜索相关的旧数据库内容

    从[Search]中删除[tbl_IndexingUnit]

    从[搜索]中删除。[tbl_IndexingUnitChangeEvent]

    从[搜索]中删除。[tbl_IndexingUnitChangeEventArchive]

    从[搜索]中删除。[待定]

    从[搜索]中删除[tbl_TreeStore]

    从[Search]中删除[tbl_DisabledFiles]

    从[搜索]中删除。[tbl_ItemLevelFailures]

    从[搜索]中删除。[tbl_ResourceLockTable]

  • 重新启动TFS作业代理服务

  • 重新启动搜索服务器

  • 使用现有搜索服务器从TFS管理控制台运行配置搜索功能向导

  • 根据PowerShell脚本的说明安装搜索包

    .\Configure-TFSSearch.ps1-操作安装-TFSSearchInstallPath D:\ES-tfssearchindepath D:\ESDATA-Port 9200-Verbose

  • 从TFS管理控制台完成搜索配置向导,启用对所有现有集合的代码搜索

  • 检查服务是否正在运行并测试了从web应用程序进行搜索,结果正常


  • [这篇文章指的是azure devops服务器2019年至2020年的升级]

    我也有 “我们在处理您的请求时遇到意外错误” 对于任何搜索-这是在将azure devops服务器2019迁移到2020后在一个新框上进行的(无法在同一个框上执行升级)

    http://localhost:9200/_cat/health?v 以红色状态显示唯一群集TFS\u Search\u AZURE-DEVOPS

    在我的特殊情况下,所有内容都在同一个框中-windows 2019+sql server 2019+搜索服务

    按照Salmi的指示进行操作,但不幸的是,这并没有解决问题

    在我的例子中,解决方案是重建弹性搜索索引(和):

  • 重新指数回购
  • 要重新索引Git或TFVC存储库,请对您的Azure DevOps服务器或具有管理权限的TFS版本执行相应版本的脚本重新索引CodeRepository.ps1。系统会提示您输入:[括号中的我的值]
    Azure DevOps服务器或TFS配置数据库所在的SQL server实例名称为[Azure DevOps]
    Azure DevOps服务器或TFS集合数据库[TFS\u DefaultCollection]的名称
    Azure DevOps服务器或TFS配置数据库[TFS]的名称