Discussion:
Bug#932499: tigervnc-standalone-server: does not start in buster on arm64
Add Reply
Kevin Otte
2019-07-20 03:40:01 UTC
Reply
Permalink
Package: tigervnc-standalone-server
Version: 1.9.0+dfsg-3
Severity: important

This is Armbian buster running on an Odroid-C2. Confirmed package is
working in an amd64 VM.

***@donatello:~$ vncserver :1 -verbose -geometry 1024x600 -depth 16

/usr/bin/Xtigervnc :1 -desktop donatello.home.nivex.net:1 (kjotte) -auth
/home/kjotte/.Xauthority -geometry 1024x600 -depth 16 -rfbwait 30000
-rfbauth /home/kjotte/.vnc/passwd -rfbport 5901 -pn -localhost
-SecurityTypes VncAuth
vncserver: /usr/bin/Xtigervnc did not start up, please look into
'/home/kjotte/.vnc/donatello.home.nivex.net:1.log' to determine the
reason! -2
***@donatello:~$ cat .vnc/donatello.home.nivex.net\:1.log

Xvnc TigerVNC 1.9.0 - built Dec 1 2018 21:51:29
Copyright (C) 1999-2018 TigerVNC Team and many others (see README.rst)
See http://www.tigervnc.org for information on TigerVNC.
Underlying X server release 12003000, The X.Org Foundation


Sat Jul 20 03:03:40 2019
vncext: VNC extension running!
terminate called after throwing an instance of 'network::SocketException'
terminate called recursively
(EE)
(EE) Backtrace:
(EE) 0: /usr/bin/Xtigervnc (OsLookupColor+0x1a8) [0xaaaada67c9d0]
(EE) unw_get_proc_info failed: no unwind info found [-10]
(EE)
(EE)
Fatal server error:
(EE) Caught signal 6 (Aborted). Server aborting
(EE)
***@donatello:~$ rm .vnc/donatello.home.nivex.net\:1.log
***@donatello:~$ vncserver :1 -verbose -geometry 1024x600 -depth 16
-localhost no
/usr/bin/Xtigervnc :1 -desktop donatello.home.nivex.net:1 (kjotte) -auth
/home/kjotte/.Xauthority -geometry 1024x600 -depth 16 -rfbwait 30000
-rfbauth /home/kjotte/.vnc/passwd -rfbport 5901 -pn -SecurityTypes
VncAuth,TLSVnc

New 'donatello.home.nivex.net:1 (kjotte)' desktop at :1 on machine
donatello.home.nivex.net

Starting applications specified in /home/kjotte/.vnc/xstartup
Log file is /home/kjotte/.vnc/donatello.home.nivex.net:1.log

Use xtigervncviewer -SecurityTypes VncAuth,TLSVnc -passwd
/home/kjotte/.vnc/passwd donatello.home.nivex.net:1 to connect to the
VNC server.

/home/kjotte/.vnc/xstartup
***@donatello:~$

[attempted to connect from client, server crashes]

***@donatello:~$ cat .vnc/donatello.home.nivex.net\:1.log

Xvnc TigerVNC 1.9.0 - built Dec 1 2018 21:51:29
Copyright (C) 1999-2018 TigerVNC Team and many others (see README.rst)
See http://www.tigervnc.org for information on TigerVNC.
Underlying X server release 12003000, The X.Org Foundation


Sat Jul 20 03:04:29 2019
vncext: VNC extension running!
vncext: Listening for VNC connections on all interface(s), port 5901
vncext: created VNC server for screen 0
Openbox-Message: Unable to find a valid menu file
"/var/lib/openbox/debian-menu.xml"

Sat Jul 20 03:04:56 2019
Connections: accepted: [2606:a000:a442:9800:d553:9e7a:a19:6e28]::37304
SConnection: Client needs protocol version 3.8
SConnection: Client requests security type VeNCrypt(19)

Sat Jul 20 03:04:57 2019
SVeNCrypt: Client requests security type TLSVnc (258)
terminate called after throwing an instance of 'rdr::Exception'
terminate called recursively
(EE)
(EE) Backtrace:
(EE) 0: /usr/bin/Xtigervnc (OsLookupColor+0x1a8) [0xaaaaccb919d0]
(EE) unw_get_proc_info failed: no unwind info found [-10]
(EE)
(EE)
Fatal server error:
(EE) Caught signal 6 (Aborted). Server aborting
(EE)
XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":1"
after 2029 requests (2029 known processed) with 0 events remaining.
syswrite() on closed filehandle WH at /usr/bin/vncserver line 912.


-- System Information:
Debian Release: 10.0
APT prefers stable
APT policy: (500, 'stable')
Architecture: arm64 (aarch64)
Foreign Architectures: armhf

Kernel: Linux 4.19.57-meson64 (SMP w/4 CPU cores; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=ANSI_X3.4-1968)
(ignored: LC_ALL set to C), LANGUAGE=en_US.UTF-8
(charmap=ANSI_X3.4-1968) (ignored: LC_ALL set to C)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages tigervnc-standalone-server depends on:
ii libaudit1 1:2.8.4-3
ii libbsd0 0.9.1-2
ii libc6 2.28-10
ii libfile-readbackwards-perl 1.05-2
ii libgcc1 1:8.3.0-6
ii libgcrypt20 1.8.4-5
ii libgl1 1.1.0-1
ii libgnutls30 3.6.7-4
ii libjpeg62-turbo 1:1.5.2-2+b1
ii libpam0g 1.3.1-5
ii libpixman-1-0 0.36.0-1
ii libselinux1 2.8-1+b1
ii libstdc++6 8.3.0-6
ii libsystemd0 241-5
ii libunwind8 1.2.1-9
ii libx11-6 2:1.6.7-1
ii libxau6 1:1.0.8-1+b2
ii libxdmcp6 1:1.1.2-3
ii libxfont2 1:2.0.3-1
ii libxshmfence1 1.3-1
ii perl 5.28.1-6
ii x11-xkb-utils 7.7+4
ii xauth 1:1.0.10-1
ii xkb-data 2.26-2
ii zlib1g 1:1.2.11.dfsg-1

Versions of packages tigervnc-standalone-server recommends:
ii libgl1-mesa-dri 18.3.6-2
pn tigervnc-common <none>
pn x11-xserver-utils <none>
pn xfonts-base <none>

Versions of packages tigervnc-standalone-server suggests:
pn xfonts-100dpi | xfonts-75dpi <none>
pn xfonts-scalable <none>

-- no debconf information
Bernhard Übelacker
2019-07-21 13:50:01 UTC
Reply
Permalink
Dear Maintainer,
this looks like the same issue reported in #923962.
I have reassigned that bug to libunwind8, but that
did not receive an answer yet.
More details in [1].

@Kevin Otte: Could you confirm that you did not set a view-only password?
Because doing so could be a workaround.

Kind regards,
Bernhard


[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=923962#15


(gdb) bt
#0 __GI_raise (sig=***@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x0000ffffb65058e8 in __GI_abort () at abort.c:79
#2 0x0000aaaad98a64dc in OsAbort () at ././unix/xserver/os/utils.c:1350
#3 0x0000aaaad98abc24 in AbortServer () at ././unix/xserver/os/log.c:879
#4 0x0000aaaad98ac984 in FatalError (f=***@entry=0xaaaad98cb890 "Caught signal %d (%s). Server aborting\n") at ././unix/xserver/os/log.c:1017
#5 0x0000aaaad98a38b4 in OsSigHandler (unused=<optimized out>, sip=0xffffca477910, signo=6) at ././unix/xserver/os/osinit.c:156
#6 OsSigHandler (signo=6, sip=0xffffca477910, unused=<optimized out>) at ././unix/xserver/os/osinit.c:110
#7 <signal handler called>
#8 __GI_raise (sig=***@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#9 0x0000ffffb65058e8 in __GI_abort () at abort.c:79
#10 0x0000ffffb67caac4 in __gnu_cxx::__verbose_terminate_handler () at ../../../../src/libstdc++-v3/libsupc++/vterminate.cc:50
#11 0x0000ffffb67c88ac in __cxxabiv1::__terminate (handler=<optimized out>) at ../../../../src/libstdc++-v3/libsupc++/eh_terminate.cc:47
#12 0x0000ffffb67c88f8 in std::terminate () at ../../../../src/libstdc++-v3/libsupc++/eh_terminate.cc:57
#13 0x0000ffffb67c8c10 in __cxxabiv1::__cxa_rethrow () at ../../../../src/libstdc++-v3/libsupc++/eh_throw.cc:133
#14 0x0000ffffb67caa60 in __gnu_cxx::__verbose_terminate_handler () at ../../../../src/libstdc++-v3/libsupc++/vterminate.cc:80
#15 0x0000ffffb67c88ac in __cxxabiv1::__terminate (handler=<optimized out>) at ../../../../src/libstdc++-v3/libsupc++/eh_terminate.cc:47
#16 0x0000ffffb67c88f8 in std::terminate () at ../../../../src/libstdc++-v3/libsupc++/eh_terminate.cc:57
#17 0x0000ffffb67c8bb0 in __cxxabiv1::__cxa_throw (obj=***@entry=0xaaab185fb590, tinfo=0xaaaad993adf8 <typeinfo for rdr::Exception>, dest=0xaaaad97fb7e8 <rdr::Exception::~Exception()>) at ../../../../src/libstdc++-v3/libsupc++/eh_throw.cc:95
#18 0x0000aaaad98344d4 in rfb::PlainPasswd::PlainPasswd (this=0xffffca478fa0, obfPwd=...) at ./common/rfb/Password.cxx:46
#19 0x0000aaaad9823144 in rfb::VncAuthPasswdParameter::getVncAuthPasswd (this=<optimized out>, password=0xffffca479030, readOnlyPassword=0xffffca479038) at ./common/rfb/SSecurityVncAuth.cxx:149
#20 0x0000aaaad98235a8 in rfb::SSecurityVncAuth::processMsg (this=0xaaab1866a040, sc=<optimized out>) at ./common/rfb/SSecurityVncAuth.cxx:93
#21 0x0000aaaad981b348 in rfb::SConnection::processSecurityMsg (this=0xaaab18668f60) at ./common/rfb/SConnection.cxx:213
#22 0x0000aaaad9827f64 in rfb::VNCSConnectionST::processMessages (this=0xaaab18668f60) at ./common/rfb/VNCSConnectionST.cxx:151
#23 0x0000aaaad9805178 in XserverDesktop::handleSocketEvent (this=***@entry=0xaaab182bbf70, fd=***@entry=10, sockserv=0xaaab182cdd50, read=***@entry=true, write=***@entry=false) at ././unix/xserver/hw/vnc/XserverDesktop.cc:428
#24 0x0000aaaad980528c in XserverDesktop::handleSocketEvent (this=0xaaab182bbf70, fd=10, read=<optimized out>, write=<optimized out>) at ././unix/xserver/hw/vnc/XserverDesktop.cc:377
#25 0x0000aaaad98a42d8 in ospoll_wait (ospoll=0xaaab182bbb80, timeout=<optimized out>) at ././unix/xserver/os/ospoll.c:651
#26 0x0000aaaad989d090 in WaitForSomething (are_ready=0) at ././unix/xserver/os/WaitFor.c:208
#27 0x0000aaaad9855774 in Dispatch () at ././unix/xserver/dix/dispatch.c:421
#28 0x0000aaaad985aae8 in dix_main (argc=20, argv=0xffffca47a4b8, envp=0xffffca47a560) at ././unix/xserver/dix/main.c:276
#29 0x0000ffffb6505d24 in __libc_start_main (main=0xaaaad9729150 <main>, argc=20, argv=0xffffca47a4b8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=<optimized out>) at ../csu/libc-start.c:308
#30 0x0000aaaad972a9c0 in _start () at /usr/include/c++/8/bits/stl_tree.h:210
Kevin Otte
2019-07-21 15:40:02 UTC
Reply
Permalink
I have now tried with and without a view-only password. I receive the
same error in both cases.
Post by Bernhard Übelacker
Dear Maintainer,
this looks like the same issue reported in #923962.
I have reassigned that bug to libunwind8, but that
did not receive an answer yet.
More details in [1].
@Kevin Otte: Could you confirm that you did not set a view-only password?
Because doing so could be a workaround.
Kind regards,
Bernhard
[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=923962#15
Bernhard Übelacker
2019-07-21 20:40:01 UTC
Reply
Permalink
Hello Kevin Otte,
Post by Kevin Otte
I have now tried with and without a view-only password. I receive the
same error in both cases.
just to be sure, you got also the "Backtrace" message when
you answered the following question on vncserver start with yes?

Would you like to enter a view-only password (y/n)? y

Kind regards,
Bernhard
Kevin Otte
2019-07-22 01:40:01 UTC
Reply
Permalink
That is correct.
Post by Bernhard Übelacker
Hello Kevin Otte,
Post by Kevin Otte
I have now tried with and without a view-only password. I receive the
same error in both cases.
just to be sure, you got also the "Backtrace" message when
you answered the following question on vncserver start with yes?
Would you like to enter a view-only password (y/n)? y
Kind regards,
Bernhard
Bernhard Übelacker
2019-07-22 09:50:01 UTC
Reply
Permalink
Post by Kevin Otte
That is correct.
Strange, because in my VM I received just the
Backtrace when using no view-only password.
One thing to note, I used the same password for
regular and view-only ...
Kevin Otte
2019-07-22 13:50:02 UTC
Reply
Permalink
Most interesting. If I set the main and view-only passwords to the same
value as you suggest, the server starts up and I am able to connect.

As soon as I disconnect the client, the server again crashes with a
backtrace:

***@donatello:~$ cat .vnc/donatello.home.nivex.net\:1.log
Xvnc TigerVNC 1.9.0 - built Dec 1 2018 21:51:29
Copyright (C) 1999-2018 TigerVNC Team and many others (see README.rst)
See http://www.tigervnc.org for information on TigerVNC.
Underlying X server release 12003000, The X.Org Foundation


Mon Jul 22 13:36:17 2019
vncext: VNC extension running!
vncext: Listening for VNC connections on local interface(s), port 5901
vncext: created VNC server for screen 0
Openbox-Message: Unable to find a valid menu file
"/var/lib/openbox/debian-menu.xml"

Mon Jul 22 13:36:21 2019
Connections: accepted: 127.0.0.1::56910
SConnection: Client needs protocol version 3.8
SConnection: Client requests security type VncAuth(2)
VNCSConnST: Server default pixel format depth 16 (16bpp) little-endian
rgb565
VNCSConnST: Client pixel format depth 16 (16bpp) little-endian rgb565
terminate called after throwing an instance of 'rdr::EndOfStream'
terminate called recursively
(EE)
(EE) Backtrace:
(EE) 0: /usr/bin/Xtigervnc (OsLookupColor+0x1a8) [0xaaaac575c9d0]
(EE) unw_get_proc_info failed: no unwind info found [-10]
(EE)
(EE)
Fatal server error:
(EE) Caught signal 6 (Aborted). Server aborting
(EE)
XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":1"
after 4245 requests (4245 known processed) with 0 events remaining.
syswrite() on closed filehandle WH at /usr/bin/vncserver line 912.


Additionally, I discovered that if you provide the wrong password from
the client, the server will crash with a nearly identical traceback, the
only change being where terminate is called:

terminate called after throwing an instance of 'rfb::AuthFailureException'

So it appears that any exception thrown will cause the server to crash.
Post by Bernhard Übelacker
Post by Kevin Otte
That is correct.
Strange, because in my VM I received just the
Backtrace when using no view-only password.
One thing to note, I used the same password for
regular and view-only ...
Bernhard Übelacker
2019-07-22 22:10:02 UTC
Reply
Permalink
Post by Kevin Otte
As soon as I disconnect the client, the server again crashes with a
I was told in the upstream report [1], mentioned in #923962,
that the crash on disconnect is known and handled upstream in [2].

[1] https://github.com/TigerVNC/tigervnc/issues/800
[2] https://github.com/TigerVNC/tigervnc/issues/812
Post by Kevin Otte
Additionally, I discovered that if you provide the wrong password from
the client, the server will crash with a nearly identical traceback, the
terminate called after throwing an instance of 'rfb::AuthFailureException'
So it appears that any exception thrown will cause the server to crash.
That might strengthen the hypothesis of an issue in libunwind8 ...
Bernhard Übelacker
2019-08-04 18:50:02 UTC
Reply
Permalink
Control: fixed -1 tigervnc/1.9.0+dfsg-1


Dear Maintainer,
I tried to have another look at it and collected some more details.

I found version 1.9.0+dfsg-1 did not suffer from this crash
(and had no dependency to libunwind8).

I wondered how there the exception handling worked there and found
that e.g. _Unwind_RaiseException is supplied from libgcc_s.so.1,
while in the crashing process it is called in libunwind8.

Therefore another workaround is by forcing the load of libgcc_s.so.1
before libunwind8 by using LD_PRELOAD.

LD_PRELOAD=/lib/aarch64-linux-gnu/libgcc_s.so.1 /usr/bin/Xtigervnc :1 -desktop debian:1 -auth /home/benutzer/.Xauthority -geometry 1024x600 -depth 16 -rfbwait 30000 -rfbauth /home/benutzer/.vnc/passwd -rfbport 5901 -pn -localhost -SecurityTypes VncAuth

Before I had experimented with the git version of libunwind and
pointing LD_LIBRARY_PATH to it. This did also not crash as long as
libunwind got configured without the switch --enable-cxx-exceptions.
Without that switch the resulting library has no _Unwind_RaiseException,
therefore also the function from libgcc_s.so.1 is used.

In the end I still think libunwind8 is causing this,
but until this is fixed, tigervnc might consider dropping the
dependency at aarch64 and configure with --disable-libunwind.

Kind regards,
Bernhard

Loading...