#106 Acronis软件:应用程序崩溃故障排查

iconRemoved User在 2020-1-17 下午4:49 编写 ( icon孙锋在 2020-6-11 下午6:04 更新 <历史> )
  编辑(登录)
  收藏
  响应调查   响应调查

  主题

操作系统:

Windows、Linux、Linux-based bootable media

在特定情况下,软件可能会崩溃。报告崩溃而不是尝试解决它非常重要。崩溃问题的正常工作流程如下:
1.发生崩溃。
2.向开发人员报告崩溃并向他们提供崩溃转储。
3.开发人员调查转储并找到根本原因。
4.修复程序。
为了使我们的开发团队能够对崩溃进行故障排查,他们需要本文中列出的进程转储和其他日志。

需要收集什么信息:

1.逐步说明问题
2.导致崩溃的操作日志
3.故障转储。选择与您的操作系统相对应的部分。

Windows

如何发现崩溃:

  • 对于Acronis进程或服务,Windows应用程序日志将出现类似的错误:
    clip-20200117144219.png
    如果日志中没有此类消息,则没有发生崩溃。
  • 操作失败,出现类似错误:
    意外失败后,活动状态已修复。服务器可能不可用。 由于服务重启,活动失败。基础层已被对等方断开连接。
  • 产品意外关闭
    clip-20200117144923.png
  • 在执行操作(例如,创建备份计划,浏览保管库等)时,您会突然转到欢迎屏幕。
  • 服务意外启动和停止。

如何收集故障转储:

使用 ProcDump 实用程序:
1.从Windows Sysinternals网站下载ProcDump;
2.创建一个用于存储转储的文件夹(例如C:\Dumps\);
3.解压缩存档文件并将procdump.exe放入创建的目录;
4.打开Windows命令行:单击开始->运行,然后输入cmd;
5.右键单击“ cmd”,然后选择“以管理员身份运行”;
6.在cmd中,使用cd命令切换到新创建的文件夹:
cd <路径到文件夹>

例如:cd C:\Dumps

7.发出以下命令:
procdump -e -w -ma <进程名称>,其中<进程名称>是崩溃进程的名称,例如service_process.exe

如果要收集启用了重复数据删除功能的Acronis存储节点(StorageServer.exe)转储,请不要使用“ -ma”。使用:
procdump -w -e StorageServer.exe

8.重现崩溃。
9.将故障转储收集到放置ProcDump的同一文件夹中。
如果Procdump命令procdump -e -w -ma 没有写入转储文件并通过消息“进程已退出”而停止,则在监视的时间范围内不会发生崩溃。

建议在提交案例之前检查崩溃过程的日志。有时日志中的错误是导致崩溃问题的根本原因,或者可以帮助您弄清问题。

有时当您需要收集随机崩溃的“ service_process”转储时会遇到问题。如果在这种情况下使用ProcDump实用程序,并且service_process在第一次运行时不会崩溃,ProcDump将以“进程已退出”退出,而不会收集转储。

Linux

如何发现崩溃:

  • 操作失败,出现类似错误:
    The activity state has been repaired after an unexpected failure.
    The server was probably unavailable.
    The activity has failed due to a restart of the service
    An underlying layer has disconnected by a peer.
  • 在执行操作(例如,创建备份计划,浏览保管库等)时,您会突然转到欢迎屏幕。
  • Syslog包含相应Acronis服务的段错误。机器的/ var / log / messages必须包含如下消息:
    Nov 22 08:39:32 localhost kernel: mms[15295]: segfault at 0 ip 00007ffe6210fa79 sp 00007fff87d2a7e0 error 4 in libDiskBundle.so[7ffe6143c000+240f000]

如何收集故障转储:

1.打开终端并以root用户身份登录。
2.通过在终端中发出以下命令来停止Acronis受管机器服务:
/etc/init.d/acronis_mms stop

systemctl stop acronis_mms


3.打开/usr/sbin/acronis_mms(例如,通过在终端中发出cat /usr/sbin/acronis_mms)并搜索包含LD_LIBRARY_PATH的字符串,它应与该字符串相同:
export LD_LIBRARY_PATH=/usr/lib/Acronis/BackupAndRecovery/system_libs64:/usr/lib/Acronis/BackupAndRecovery/Common64:/usr/lib/Acronis/Common64
记录或复制此命令。
4.运行步骤3中记下的导出命令。
5.然后运行:
ulimit -c unlimited
6.-c 表示核心转储的大小。
7.通过发出以下命令来启动Acronis Managed Machine服务:
/usr/lib/Acronis/BackupAndRecovery/mms
8.重现服务崩溃的问题。
9.应用程序崩溃后,将在当前工作目录中自动创建核心转储。

注意:如果您在/var/log/messages中看到类似以下的消息:

abrtd: Package 'BackupAndRecoveryAgent' isn't signed with a proper key

并且未创建核心文件,则应按以下方式更改已终止服务的配置:

vi /etc/abrt/abrt-action-save-package-data.conf

更改行:
OpenGPGCheck = no
ProcessUnpackaged = yes

保存对文件的更改并重现崩溃,现在应该正确创建核心文件了。

Acronis Virtual Appliance

如何发现崩溃:

设备重新启动。

设备将具有一个名为“ core”的文件,或者在捕获的进程之后(例如,service_process.dmp)。在Acronis Backup&Recovery的“ /”文件夹中的vmProtect中,它位于/tmp中。

如何收集故障转储:

从Update 6(内部版本43994/43800)开始的Acronis Backup 11.7和Acronis Backup 11.5收集系统报告中的转储。

对于其他产品/版本:
1.安装WinSCP实用程序,您可以从http://winscp.net/eng/download.php获得该实用程序。
2.登录到vSphere Client,然后打开Acronis虚拟设备的控制台。写下或记住它的IP地址。
3.按:

  • Acronis Backup 11.5/11.7/12的Virtual Appliance中的CTRL + SHIFT + ALT + SPACE + F2
  • 在vmProtect中,先按CTRL + SHIFT + ALT + SPACE + F1,然后按ALT + F2
    这将带您进入命令行界面。

4.在控制台中,请输入以下命令:/bin/sshd
5.在安装它的计算机上启动WinSCP实用程序。
6.在主机字段中,键入您的Acronis Virtual ApplianceIP(在步骤2中记录),与vSphere控制台中的相同。默认的login:password为root:root(如果您通过Web控制台的Configure- > Agent Password更改了密码,则Acronis vmProtect中的密码可能会有所不同)。
7.协议应设置为SCP,然后单击登录。
8.您将获得一个窗口,其中包含设备的所有目录(类似于Windows Commander的界面),从Acronis Backup&Recovery Virtual Appliance中的“ /” 收集核心文件(vmProtect设备中的/tmp/core文件)。

基于Acronis Linux的可启动媒体

方法1

如何发现崩溃:

介质将意外重启。

如何收集故障转储:

如果媒体崩溃,请执行以下操作:

在BIOS系统上在UEFI系统上
1引导至Acronis引导选择屏幕 clip-20200117152852.png引导至黑白菜单 clip-20200117152916.png
2F11选择适当的启动选项
3删除单词“ quiet”,然后单击“确定”。clip-20200117153114.png按E编辑内核命令行 clip-20200117153149.png
4引导适当的介质:单击产品名称(例如,在本示例中为Acronis Backup)删除单词“ quiet”,然后按Enter
5媒体将启动到外壳 clip-20200117153300.png媒体将启动到外壳 clip-20200117153320.png

6.要启用网络连接,请发出asamba dhcp -i ethX(其中X是已连接电缆的网络接口的编号,最常见的是eth0)。发出 ifconfig并记下计算机具有的IP地址。
7.发出/bin/sshd以启动ssh守护程序。
8.使用SSH客户端连接到介质(例如WinSCP或Putty,由于GUI会挂起,您稍后将需要它来收集转储)
9.发出ulimit -c unlimited
-c 表示核心转储的大小。
10.发出export ACRONIS_SAFE_ASSERT=1

ACRONIS_SAFE_ASSERT=1 changes the flag to ASSERT_MODE_BREAK

11.发行/bin/product 它将启动产品GUI。
12.重现崩溃。现在,介质将不会重新启动,但会挂起或退出外壳。当崩溃重现时(媒体没有响应),请尝试单击CTRL + SHIFT + F2进入shell。如果可行,请在shell中执行:ls /
您也可以使用ssh客户端发出命令。
13.find / -iname "core"
这将向您显示要收集的核心转储的路径。
14.使用WinSCP(或另一个SSH客户端)下载核心文件:

  • 安装WinSCP实用程序,您可以从http://winscp.net/eng/download.php获得该实用程序
  • 在安装它的计算机上启动WinSCP实用程序。
  • 在主机字段中,输入您的Acronis可启动媒体IP。协议应设置为SCP。凭据是root:root
  • 从根目录(“ /”)收集核心文件

方法2

从基于Linux的媒体收集故障转储的替代方法。如果介质崩溃时您无法打开外壳,或者可以使用它手动使进程崩溃,则可以使用它。
1)按Alt + F2打开新的“终端”窗口
2)发出/bin/sshd以启动ssh守护程序
3)输入ifconfig | grep inet可以获取IP地址。输出将如下所示:

inet 192.168.194.135 netmask 255.255.255.0 broadcast 192.168.194.255

记录“ inet”之后的第一个IP地址
4)在另一台计算机上,下载Putty:https : //www.putty.org/
5)启动PuTTY。在“ 主机名”字段中,键入您在步骤3中获得的IP地址,然后按“ 打开”。PuTTY将连接到Acronis媒体环境
clip-20200117153931.png
6)当系统要求输入登录名和密码时,请指定登录名:root,密码:root
7)输入ps | grep product.bin
命令的输出将类似于
3348 pts/1 00:00:00 product.bin

第一列中的数字是进程ID。
8)发出以下命令:kill -6 <进程ID>
其中进程ID是在步骤7中获得的编号

例如:kill -6 3348
9)故障转储将自动收集
10)插入闪存驱动器并将故障转储复制到该驱动器

4.系统报告:
Acronis Backup 12.5:收集系统信息

如果此操作由于任何原因失败,则可以使用 AcronisInfo Utility
5.收集了信息后,请与安克诺斯联系。

更多内容:https://kb.acronis.com/content/45631


 添加评论