Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 05 Jun 2019 09:02:44 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 238333] bhyve random crash in rfb.c on FreeBSD current (after r346011)
Message-ID:  <bug-238333-227@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D238333

            Bug ID: 238333
           Summary: bhyve random crash in rfb.c on FreeBSD current (after
                    r346011)
           Product: Base System
           Version: CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: bin
          Assignee: bugs@FreeBSD.org
          Reporter: olevole@olevole.ru

After -O0 flag removal (
https://svnweb.freebsd.org/base?view=3Drevision&revision=3Dr346011 ) bhyve =
process
begins to crash with an active VNC session.

Not all VNC clients can crash. It seems that it depends on the default sett=
ings
(some use the default compression by default, some do not), for example, it
does not cause problems when using vncviewer (without any arguments) from
tigervnc-viewer, but is well reproduced using KDE's KRDC: net/krdc ).

When you connect to VNC console via KRDC bhyve process crashed with SIGBUS:

pid 88831 (bhyve), jid 0, uid 0: exited on signal 10 (core dumped)

Backtrace:

Thread 29 "rfbout" received signal SIGBUS, Bus error.
[Switching to LWP 101756 of process 93578]
memcpy () at /usr/src/lib/libc/amd64/string/memmove.S:306
306             MEMMOVE erms=3D0 overlap=3D1 begin=3DMEMMOVE_BEGIN end=3DME=
MMOVE_END

(gdb) bt
#0  memcpy () at /usr/src/lib/libc/amd64/string/memmove.S:306
#1  0x00000008002c85dc in flush_pending (strm=3D<optimized out>) at
/usr/src/sys/contrib/zlib/deflate.c:741
#2  deflate (strm=3D0x800bb1030, flush=3D2) at
/usr/src/sys/contrib/zlib/deflate.c:787
#3  0x000000000023f141 in rfb_send_rect (rc=3D<optimized out>, cfd=3D<optim=
ized
out>, gc=3D<optimized out>, x=3D0, y=3D0, w=3D128, h=3D32) at
/usr/src/usr.sbin/bhyve/rfb.c:355
#4  rfb_send_screen (rc=3D<optimized out>, cfd=3D6, all=3D<optimized out>) =
at
/usr/src/usr.sbin/bhyve/rfb.c:600
#5  0x000000000023f5c7 in rfb_wr_thr (arg=3D0x800bb1000) at
/usr/src/usr.sbin/bhyve/rfb.c:730
#6  0x000000080064b726 in thread_start (curthread=3D0x800be1000) at
/usr/src/lib/libthr/thread/thr_create.c:291
#7  0x0000000000000000 in ?? ()
Backtrace stopped: Cannot access memory at address 0x7fffdc9e3000

(gdb) p len
$1 =3D 9600016

print sizeof(strm)
$2 =3D 8

(gdb) print sizeof(s)
$3 =3D 8

There are no problems when bhyve is compiled without optimization (-O0), so=
 we
do not see this problem in FreeBSD <=3D 12.0, but the problem occurs in
FreeBSD-current

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-238333-227>