mirror of https://github.com/apache/cloudstack.git
cpvm: Fix CPVM not releasing CPU after closing console (#7826)
This commit is contained in:
parent
add64bd7e6
commit
f7345e861f
|
|
@ -113,30 +113,34 @@ public class ConsoleProxyNoVncClient implements ConsoleProxyClient {
|
|||
if (client.isVncOverWebSocketConnectionOpen()) {
|
||||
updateFrontEndActivityTime();
|
||||
}
|
||||
connectionAlive = client.isVncOverWebSocketConnectionAlive();
|
||||
connectionAlive = session.isOpen();
|
||||
try {
|
||||
Thread.sleep(1);
|
||||
} catch (Exception e) {
|
||||
s_logger.warn("Error on sleep for vnc over websocket", e);
|
||||
} catch (InterruptedException e) {
|
||||
s_logger.error("Error on sleep for vnc over websocket", e);
|
||||
}
|
||||
} else if (client.isVncOverNioSocket()) {
|
||||
byte[] bytesArr;
|
||||
int nextBytes = client.getNextBytes();
|
||||
bytesArr = new byte[nextBytes];
|
||||
client.readBytes(bytesArr, nextBytes);
|
||||
s_logger.trace(String.format("Read [%s] bytes from client [%s]", nextBytes, clientId));
|
||||
if (nextBytes > 0) {
|
||||
session.getRemote().sendBytes(ByteBuffer.wrap(bytesArr));
|
||||
updateFrontEndActivityTime();
|
||||
} else {
|
||||
connectionAlive = session.isOpen();
|
||||
}
|
||||
} else {
|
||||
b = new byte[100];
|
||||
readBytes = client.read(b);
|
||||
s_logger.trace(String.format("Read [%s] bytes from client [%s]", readBytes, clientId));
|
||||
if (readBytes == -1 || (readBytes > 0 && !sendReadBytesToNoVNC(b, readBytes))) {
|
||||
connectionAlive = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
connectionAlive = false;
|
||||
s_logger.info(String.format("Connection with client [%s] is dead.", clientId));
|
||||
} catch (IOException e) {
|
||||
s_logger.error("Error on VNC client", e);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue