Mailing List Archive

vncviewer/4.1.3 with -Log='*:stdout:100' crashes after session is closed ( Solaris )
This happens with version 4.1.3 on Solaris 10.

[partha@walle ~]$vncviewer -Log=*:stdout:100 -FullColour
geometry=1680x1050+0+0 :2

VNC Viewer Free Edition 4.1.3 for X - built Dec 3 2008 23:03:17
Copyright (C) 2002-2008 RealVNC Ltd.
See http://www.realvnc.com for information on VNC.

Mon Sep 12 19:27:49 2011
Config: set FullColour(Bool) to 1
Config: set geometry(String) to 1680x1050+0+0
CConn: connected to host localhost port 5902
CConnection: reading protocol version
CConnection: Server supports RFB protocol version 3.8
CConnection: Using RFB protocol version 3.8
CConnection: processing security types message
CConnection: Server offers security type VncAuth(2)
CConnection: Choosing security type VncAuth(2)
CConnection: processing security message

Mon Sep 12 19:27:51 2011
CConnection: processing security result message
CConnection: processing security result message
CConnection: Authentication success!
CConnection: reading server initialisation
CConnection: initialisation done
TXImage: Using shared memory XImage
TXImage: Using default colormap and visual, TrueColor, depth 24.
CConn: Using pixel format depth 24 (32bpp) little-endian rgb888
CConn: Using ZRLE encoding
DesktopWindow: no selection (1)
DesktopWindow: no selection (271)
PixelBuffer: reallocating managed buffer (16x16)
PixelBuffer: reallocating managed buffer (16x16)
PixelBuffer: reallocating managed buffer (16x16)
PixelBuffer: reallocating managed buffer (16x16)
DesktopWindow: no selection (1)
DesktopWindow: no selection (271)
DesktopWindow: cut buffer time is 0, later 0

Mon Sep 12 19:28:19 2011
DesktopWindow: no selection (1)
DesktopWindow: no selection (271)
DesktopWindow: cut buffer time is 0, later 0
Pure virtual function called
Abort (core dumped)

[partha@walle /local/cores]$pstack vncviewer___pid16113_i86pc_walle |
/local/CBE/SunStudio/SS12/bin/c++filt

core 'vncviewer___pid16113_i86pc_walle' of 16113: vncviewer
-Log=*:stdout:100 -FullColour geometry=1680x1050+0+0 :1
fef2b485 _lwp_kill (1, 6) + 15
feed26b7 raise (6) + 1f
feeb1e1d abort (80c5528, 8068b18, 8044d10, 80bb000, 8044d10,
80887a0) + cd
fecd6884 void __Crun::pure_error() (80c5528, 64, 80a573c, 8043d10) + 2c
080887a0 void rfb::Logger::write(int,const char*,const char*,void*)
(80c5528, 64, 80a573c, 80a5984, 8044d44) + 4c
08077d44 void rfb::LogWriter::debug(const char*,...) (80c3e28,
80a5984) + 34
0807a590 void TXImage::destroyXImage() (843dca0) + 38
08079d23 TXImage::~TXImage() (843dca0) + 3b
0807abcd __SLIP.DELETER__D (843dca0, 1) + 1d
0807ae80 TXImageCleanup::~TXImageCleanup #Nvariant 1() (80c3e98) + 40
0807aa4b __SLIP.FINAL__B (80c3f8c, 8044f40, fef9e000, fefa3ec0,
8044e84, feea4de2) + 1f
feeb2569 _exithandle (80bb000, 806b636, 1, 80bb000, 8044f24, 8044f24) + 4e
feea4de2 exit (80451e8, 8432f70) + 12
0807da1f void TXWindow::handleXEvent(_XEvent*) (8432f70, 8044f40) + a3
0807cb0c void TXWindow::handleXEvents(_XDisplay*) (84248f0) + a8
0806b76f void CConn::blockCallback() (80451e8) + 3b
080a2c3b int
rdr::FdInStream::readWithTimeoutOrCallback(void*,int,bool) (8433e28,
8433e68, 2000, 1) + 1f7
080a2a02 int rdr::FdInStream::overrun(int,int,bool) (8433e28, 1, 1, 1)
+ d2
0807885d main (5, 8047220, 8047238) + 4ed
08068ba2 ???????? (5, 804736c, 8047376, 8047388, 8047394, 80473ab)


This is due to the static order initialization/destruction fiasco
problem. I've attached a simple fix, which should fix this problem. Can
someone review the changes ?

--
Thanks,
Partha