Viber可执行文件在Ubuntu 20.10 / 21.04上崩溃。

我一直在使用从https://download.cdn.viber.com/cdn/desktop/Linux/viber.deb下载的官方Viber桌面版.deb包)至少在4个正常的Ubuntu版本(18.10到20.04)上没有问题。几天前,我从Ubuntu 20.04升级到了20.10,现在/opt/viber/Viber可执行文件在启动时崩溃,并在终端上显示以下消息:
Segmentation fault (core dumped)

系统日志如下:

Oct 27 19:04:42 xxx kernel: [ 3782.065767] Viber[25573]: segfault at 0 ip 00007ff5e4804bc5 sp 00007fff2e7dc3b0 error 4 in iHD_drv_video.so[7ff5e46eb000+348000]
Oct 27 19:04:42 xxx kernel: [ 3782.065771] Code: 01 48 83 f8 42 75 e6 31 db 66 41 89 9f 58 0c 00 00 49 8b 5f 28 8b 83 f0 1d 00 00 85 c0 0f 84 ba 01 00 00 48 8b b3 e8 1d 00 00 <81> 3e 00 00 01 00 48 89 75 c8 0f 85 a3 01 00 00 44 8d 70 f0 4d 63

在系统的/var/crash目录中也会生成崩溃转储文件。
我已经从Viber的网站重新安装了最新版本。
我已经从主目录中删除了~/.ViberPC~/.cache/Viber Media S.à r.l目录,但问题仍然存在。
有其他用户遇到同样的问题吗?

更新

我联系了viber.com。起初,他们建议完全删除并重新安装。然而,这是我已经做过的事情。在我告知他们后,他们要求我发送崩溃转储文件,我也将其发送给了他们。

目前,Ubuntu版的Viber版本为13.3.1,自2020年7月以来没有进行更新。因此,在发布更新之前,我们将一直使用这个版本。

暂时的解决办法是在崩溃后重试启动Viber,直到它不再崩溃为止。看起来崩溃是相当随机的,有10%的几率Viber能够成功启动而不崩溃。因此,我编写了以下Bash函数,并将其添加到我的~/.bash_aliases文件的末尾:

function vib
{
  while ! /usr/bin/pgrep -i Viber ; do
    nohup /opt/viber/Viber >/tmp/vib.out 2>/tmp/vib.err &
    sleep 3
  done
}

要启动Viber,我只需在终端中输入vib,然后等待它启动。

更新(2021年10月)

这个问题似乎在Viber 16.1.0.37版本中已经解决:

https://download.cdn.viber.com/cdn/desktop/Linux/viber.deb


看看/var/crash里的垃圾堆吧 - 它是一个文本文件。 - waltinator
您正在使用与Ubuntu无关的专有程序。请考虑联系开发人员寻求支持。 - xiota
1我确实联系过。如果有回应的话,我会在这里发布更多信息。 - FedKad
@FedonKadifeli 我帮不上太多忙,但想问一下你的问题是否和我的一样:当我通过手机Viber发送一个视频文件(.mp4)给别人,然后在Ubuntu上尝试打开同一个聊天时,Ubuntu上的Viber会崩溃。你也是这种情况吗? - Томица Кораћ
1@ТомицаКораћ 不是的。这只发生在Ubuntu 20.10上,与聊天中是否有视频无关。Viber在启动过程中崩溃,即在显示任何窗口之前。您使用的是哪个版本的Ubuntu? - FedKad
@FedonKadifeli 我在PopOS 20.10中也遇到了完全相同的情况。最新的AppImage Viber会出现这样的崩溃。经过3-4次尝试后,它才能正常启动。有任何更新吗? - mitsos1os
1谢谢你建议我试着启动它直到不崩溃的方法:D 我可以确认这对我也有效。虽然有点傻,但至少它(偶尔)能正常工作 xD - Nikola Ivanov Nikolov
这个问题似乎在Viber 16.1.0.37版本中已经解决了。 - FedKad
刚刚下载了最新的.deb(版本为16.1.0.37),安装后在Ubuntu 20.04上一直以100%的概率崩溃,就是一直都这样。 - bpgergo
5个回答

似乎发生了使用免费的 intel-media-va-driver 时出现段错误,但对于其他程序而言,使用 intel-media-va-driver-non-free 则没有这个问题:https://bugs.launchpad.net/ubuntu/+source/gthumb/+bug/1903569

尝试像这样替换免费驱动程序:

apt install intel-media-va-driver-non-free

1这对我有用,谢谢! - panta82
我曾经与其他应用程序(比如我经常使用的mplayer)发生过崩溃。这个修复方案解决了所有问题。感谢你的发现! - user582175
这对我也起作用了!谢谢你。 - skryvets

我有同样的问题。

奇怪但对我有效:运行Viber并带上参数--help

cd /opt/viber
./Viber --help

编辑快捷方式 /usr/share/applications/viber.desktop

1它曾经起作用过一次,但第二次却没有起作用。即使更改了快捷方式,也没有解决问题。 - lefterav
不,我不认为这个方法有效。我尝试了几次cd /opt/viber ; ./Viber --help,但大多数情况下它仍然会崩溃。 - FedKad

/usr/share/applications/viber.desktop 中, 我得到了 Exec=/opt/viber/Viber %u 我将其替换为 Exec=/opt/viber/Viber,现在它似乎可以正常启动(没有崩溃)

不,有时候还是会在开始阶段失败。 - Viktor

当通过snap viber-mtd安装时,该应用程序会出现崩溃的情况:
$ /snap/bin/viber-mtd.viber
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
Qt: Session management error: None of the authentication protocols specified are supported
sh: 1: xdg-mime: not found
Qt WebEngine ICU data not found at /snap/viber-mtd/17/opt/viber/resources. Trying parent directory...
Qt WebEngine resources not found at /snap/viber-mtd/17/opt/viber/resources. Trying parent directory...
[31099:31099:1115/085234.003880:FATAL:credentials.cc(155)] Check failed: NamespaceUtils::DenySetgroups(). : Permission denied
#0 0x7f4f8d63111e base::debug::StackTrace::StackTrace()
#1 0x7f4f8d641bde logging::LogMessage::~LogMessage()
#2 0x7f4f8d641e99 logging::ErrnoLogMessage::~ErrnoLogMessage()
#3 0x7f4f8e333f7c sandbox::(anonymous namespace)::SetGidAndUidMaps()
#4 0x7f4f8e3345d5 sandbox::Credentials::CanCreateProcessInNewUserNS()
#5 0x7f4f8d2a4de5 content::ZygoteHostImpl::Init()
#6 0x7f4f8cf57314 content::BrowserMainLoop::EarlyInitialization()
#7 0x7f4f8cf5b190 content::BrowserMainRunnerImpl::Initialize()
#8 0x7f4f8cd60d19 QtWebEngineCore::WebEngineContext::WebEngineContext()
#9 0x7f4f8cd62135 QtWebEngineCore::WebEngineContext::current()
#10 0x7f4f8ccff931 QtWebEngineCore::BrowserContextAdapter::defaultContext()
#11 0x7f4f95018618 QQuickWebEngineProfile::defaultProfile()
#12 0x0000006ac8bf ApplicationPrivate::preRunningInitialization()
#13 0x0000006a6504 ViberApplication::start()
#14 0x00000067e25b ViberMain()
#15 0x7f4f89d05840 __libc_start_main
#16 0x0000004d7047 <unknown>

尝试了几种方法后,我最终发现以这种方式成功启动了应用程序。
$ /snap/viber-mtd/current/opt/viber/Viber

似乎现在以这种方式启动时运行良好。

1好的。但这是一种不同的使用方法。但是,我正在使用.deb版本。 - FedKad
好吧。这个应用程序似乎实现得很差,任何意外情况似乎都会使其崩溃。因此,尝试不同的调用应用程序的方式,就像我所做的那样,最终可能会找到避开雷区的方法。 - Waxrat
好的,我会看一下。但是在我的情况下,Viber 大约有 20% 的调用可以正常运行,这些调用都是以完全相同的方式执行的。所以问题(在我的情况下)似乎完全是随机的! - FedKad

尝试了各种方法,对我来说,使用非官方的Viber快照是有效的。虽然没有暗色主题,但至少可以正常运行。