h5开发网站,网站图标ico,建设一个电商网站的流程图,wordpress熊掌号主题MongoDB莫名崩溃的问题定位与解决纪实
国庆之前发布的软件版本一直运行正常#xff0c;国庆之后#xff0c;测试同事跑自动化测试脚本#xff0c;发现该软件频繁异常#xff0c;通过查看log发现#xff0c;该软件使用的MongoDB崩溃了。 该软件是个Windows的桌面软件…MongoDB莫名崩溃的问题定位与解决纪实
国庆之前发布的软件版本一直运行正常国庆之后测试同事跑自动化测试脚本发现该软件频繁异常通过查看log发现该软件使用的MongoDB崩溃了。 该软件是个Windows的桌面软件由于需要存储大量数据会后台启动MongoDB并以此作为数据存储库。 报错信息
## error 1
[thread1] WiredTiger error (16) [1697520288:390687][8764:140707646429280], log-server: __win_fs_rename, 125: D:\data5\mongodb\data\journal\WiredTigerTmplog.0000000002 to D:\data5\mongodb\data\journal\WiredTigerPreplog.0000000001: file-rename: MoveFileExW: 另一个程序正在使用此文件进程无法访问。\r\n: Resource device Raw: [1697520288:390687][8764:140707646429280], log-server: __win_fs_rename, 125: D:\data5\mongodb\data\journal\WiredTigerTmplog.0000000002 to D:\data5\mongodb\data\journal\WiredTigerPreplog.0000000001: file-rename: MoveFileExW: 另一个程序正在使用此文件进程无法访问。\r\n: Resource device## error 2
2023-10-12T15:17:52.0320800 W FTDC [ftdc] Uncaught exception in FileRenameFailed: 另一个程序正在使用此文件进程无法访问。 in full-time diagnostic data capture subsystem. Shutting down the full-time diagnostic data capture subsystem.原因分析
这是mongodb的数据目录里面的文件按理其他程序不会去操作这些文件难道是因为启动了多个mongod进程 措施重启电脑重新运行软件结果还是会有这个报错 已发布版本国庆之前都正常而且从来没出现过这个error莫非是系统有啥升级 咨询IT反馈系统没有升级 mongodb bug 直觉和理性告诉我应该不是不然为啥国庆节前没有出现过节后频繁出现。 类似案例查找
一顿搜索。。。结果99.99999%都是无用信息直到在mongodb社区发现这篇帖子 Mongod random crashes on Windows: FileRenameFailed
社区工作人员回复 Sorry you’re having difficulty with this issue, but unfortunately I believe the error FileRenameFailed originated from outside the server, so it’s typically an OS level issue.这句话基本印证了我的猜想不是mongodb的问题也不是我的软件问题
再继续。。看到最后个回复 I just had the same issue with mongodb 4.4.22. I enabled file auditing on windows and it appears Kaspersky is to blame: 卡巴斯基是罪魁祸首我电脑没装卡巴斯基但是装了“腾讯安全管家”欣喜若狂呀赶紧把安全管家退出了
但高兴的有点早测试下来mongodb还是会报错一样一样的。
不过这个回答还是给了有用信息I enabled file auditing on windows如果能监控下是哪个软件占用了程序就知道是谁在搞事情
问题是怎么监控呢
监控文件被哪些软件读写
通过本地组策略编辑器 修改 审核策略访问文件都增加审核“本地组策略编辑器” 怎么打开呢winr输入gpedit.msc回车 报错gpedit.msc不存在又是一顿搜索windows家庭版默认不开启gpedit.msc。。。 安装gpedit.mscpowershell运行如下命令
Get-ChildItem -Path C:\Windows\servicing\Packages\* |
Where-Object{($_.Name -like Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum)
-or ($_.Name -like Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum)} |
foreach {dism.exe /online /norestart /add-package:$_}修改审核策略 计算机配置-Windows 设置 - 安全设置 - 本地策略 - 审核策略 - 审核对象访问 添加待审核文件夹 选中D:\data5\mongodb\data\journal目录右键-属性-安全-高级-审核-添加添加Everyone - 应用保存 查看“事件查看器”中的审核日志 windows 搜索直接搜索“事件查看器”即可Windows日志-安全选中任意一条事件就能看到事件详细信息如下图所示 搜索被占用的文件名看看这个文件被哪些软件占用了也就是触发了访问审核的有审核日志的在事件查看器中按CtrlF搜索文件名 终于找到了罪魁祸首这个奇怪的exe再读写mongodb的文件 这是啥呢找ITIT说这是公司的安全管理软件。。。。得了终于找到证据了IT同事你上吧。。 最后IT同事通过修改这个软件的配置信息忽略mongodb文件夹的读写规避了这个问题。
参考资料
Mongod random crashes on Windows: FileRenameFailedComplete Guide to Windows File System Auditing - Varonis
后言
要理性分析并相信自己的专业判断。别人说的话不要全信如果你怀疑那要拿出证据来不然别人不会承认的。证明自己没错很难证明是别人的错更难。