Eric Raible
1998-05-30 01:14:50 UTC
Hello All,
So I've done a bit more investigating of my shutdown problems, and have
found that they seem specific to my server, which is a _diskless_ win95
running WinVNC 3.3.2. My viewer is NT4.0 sp3 running vncviewer 3.3.2.
[Note that everything works as expected with a locally booted win95
from the same viewer, and in fact all other configurations I've tried.
My problems are somehow specific to the diskless win95 machines
we have around here.]
The basic problem seems to be that the "Close VNC" menu choice does
_not_ actually cause WinVNC to exit. After "closing", WinVNC is still
running, viewers remain connected, and can even disconnect then reconnect.
(A locally-generated) Ctrl-Alt-Delete reports that WinVNC is still running.
But what has changed is that the tray icon disappears, "WinVNC -about"
and "WinVNC -settings" both report that "No existing instance of WinVNC
could be contacted", but trying to restart WinVNC reports that
"Another instance of WinVNC is already running".
The only way to really kill it is with Ctrl-Alt-Delete.
It seems that the problem of viewers not shutting down on "Close VNC"
is simply because WinVNC does not really exit. When I Ctrl-Alt-Delete
kill it, then the remote viewers die as expected.
So does anyone have ideas of why WinVNC does not exit?
appears? The behaviour you describe is consistent with the system getting
bored waiting for WinVNC to quit because it's displaying a dialog and not
responding to WM_QUIT messages. When you click "Yes", WinVNC will shut
down cleanly but the OS doesn't notice and continues to display the
"WinVNC Tray Icon" dialog. You'll notice a similar effect with other
applictions - try opening Notepad and typing into it, then going to the
Applications tab of the Task Manager and telling it to close notepad.
Notepad will ask you whether you wish to save the changes you've made and
if you don't respond in a few seconds, a dialog will come up to tell you
that notepad isn't responding.
shutting down, Windows doesn't send a WM_QUIT message. It instead sends a
WM_ENDSESSION message. Once you've returned from the WM_ENDSESSION
message, the application can be killed any time after that, without
exiting the message loop and therefore without cleaning up properly.
next to me (over a VNC connection) and it worked fine. The WinVNC server
always tries to close down any connected clients before shutting down and
waits for them to exit before continuing. I haven't been able to get this
situation to hang WinVNC, though. What type of viewer are you connected
from when these problems occur? (Windows, Java, X, etc..)
The vncviewers not closing also shouldn't happen. They should always
close when the server closes.
So I've done a bit more investigating of my shutdown problems, and have
found that they seem specific to my server, which is a _diskless_ win95
running WinVNC 3.3.2. My viewer is NT4.0 sp3 running vncviewer 3.3.2.
[Note that everything works as expected with a locally booted win95
from the same viewer, and in fact all other configurations I've tried.
My problems are somehow specific to the diskless win95 machines
we have around here.]
The basic problem seems to be that the "Close VNC" menu choice does
_not_ actually cause WinVNC to exit. After "closing", WinVNC is still
running, viewers remain connected, and can even disconnect then reconnect.
(A locally-generated) Ctrl-Alt-Delete reports that WinVNC is still running.
But what has changed is that the tray icon disappears, "WinVNC -about"
and "WinVNC -settings" both report that "No existing instance of WinVNC
could be contacted", but trying to restart WinVNC reports that
"Another instance of WinVNC is already running".
The only way to really kill it is with Ctrl-Alt-Delete.
It seems that the problem of viewers not shutting down on "Close VNC"
is simply because WinVNC does not really exit. When I Ctrl-Alt-Delete
kill it, then the remote viewers die as expected.
So does anyone have ideas of why WinVNC does not exit?
Using WinVNC 3.3.2 on Win95, if I request a shutdown (using the start button)
first I get a dialog warning that there are connected users. That works fine.
However, if I answer "yes", a dialog tittled "WinVNC tray icon" that explains
how it is not responding appears on the server's monitor, but *doesn't* appear
in the still-connected vncviewer unless you move the mouse over each patch
of the dialog to get it to repaint (this is an instance where my recently posted
"Refresh Screen" patch comes in handy).
Does this happen even if you press "Yes" on the dialog the moment that itfirst I get a dialog warning that there are connected users. That works fine.
However, if I answer "yes", a dialog tittled "WinVNC tray icon" that explains
how it is not responding appears on the server's monitor, but *doesn't* appear
in the still-connected vncviewer unless you move the mouse over each patch
of the dialog to get it to repaint (this is an instance where my recently posted
"Refresh Screen" patch comes in handy).
appears? The behaviour you describe is consistent with the system getting
bored waiting for WinVNC to quit because it's displaying a dialog and not
responding to WM_QUIT messages. When you click "Yes", WinVNC will shut
down cleanly but the OS doesn't notice and continues to display the
"WinVNC Tray Icon" dialog. You'll notice a similar effect with other
applictions - try opening Notepad and typing into it, then going to the
Applications tab of the Task Manager and telling it to close notepad.
Notepad will ask you whether you wish to save the changes you've made and
if you don't respond in a few seconds, a dialog will come up to tell you
that notepad isn't responding.
What seems more appropriate is if you answer "yes" to the "connected users"
dialog then a "WinVNC -kill" would be simulated, to allow for a clean shutdown.
This is what currently happens, apart from the fact that when you'redialog then a "WinVNC -kill" would be simulated, to allow for a clean shutdown.
shutting down, Windows doesn't send a WM_QUIT message. It instead sends a
WM_ENDSESSION message. Once you've returned from the WM_ENDSESSION
message, the application can be killed any time after that, without
exiting the message loop and therefore without cleaning up properly.
The only way I've seen it work as desired is via WinVNC -kill and _then_ the
shutdown request. Right-click on the tray icon and then "Close VNC" gives
the same dialog about WinVNC tray Icon not responding.
I haven't seen this happen before. I just used Close VNC on the machineshutdown request. Right-click on the tray icon and then "Close VNC" gives
the same dialog about WinVNC tray Icon not responding.
next to me (over a VNC connection) and it worked fine. The WinVNC server
always tries to close down any connected clients before shutting down and
waits for them to exit before continuing. I haven't been able to get this
situation to hang WinVNC, though. What type of viewer are you connected
from when these problems occur? (Windows, Java, X, etc..)
The vncviewers not closing also shouldn't happen. They should always
close when the server closes.