Skip to content

QEMU RFB extension#596

Merged
DirectXMan12 merged 3 commits intonovnc:masterfrom
danielhb:master
Aug 29, 2016
Merged

QEMU RFB extension#596
DirectXMan12 merged 3 commits intonovnc:masterfrom
danielhb:master

Conversation

@danielhb
Copy link
Contributor

These three patches implements the QEMU Extended Key Event message support in noVNC. This extension is able to deal with any keyboard layout when noVNC connects to a VNC server that implements this extension.

@danielhb
Copy link
Contributor Author

@DirectXMan12 @samhed hi there! Is there any plan or ETA for this pull request to be accepted?

@samhed
Copy link
Member

samhed commented Apr 26, 2016

Hi, sorry for the delay.
I can do a code review I'm the upcoming days, but I will not have time to test the QEMU specific parts myself anytime soon.
By a quick glance it looks like the main codepath isn't affected too much, which is promising!

Would it be possible to divide the commits by functionality instead of by file?

@danielhb
Copy link
Contributor Author

Yeah, the idea was to get as far away as possible from the existing
noVNC codepath
to avoid changing anything unrelated with the QEMU extension.

I can rearrange the commits, sure. But dividing them by functionality
would mean to
simply squash them into a single commit because there is only one new
feature being
added. If that's fine with you I'll go ahead and do it, together with a
rebase with
current noVNC master.

On 04/26/2016 03:04 PM, Samuel wrote:

Hi, sorry for the delay.
I can do a code review I'm the upcoming days, but I will not have time
to test the QEMU specific parts myself anytime soon.
By a quick glance it looks like the main codepath isn't affected too
much, which is promising!

Would it be possible to divide the commits by functionality instead of
by file?


You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
#596 (comment)

@samhed
Copy link
Member

samhed commented Apr 26, 2016

Fair enough, don't change that. I'll look further into this later this week.

@danielhb
Copy link
Contributor Author

I appreciate that @samhed ! Let me know if you have any questions about the code or with your testing.

@samhed
Copy link
Member

samhed commented Apr 29, 2016

I have looked through your code and it looks good! But as I said, I have mainly read your code. The only thing I have tested is that the normal code path works. I do not have the time to test the actual QEMU extension.

@samhed samhed removed their assignment Apr 29, 2016
@danielhb
Copy link
Contributor Author

I understand. Let me know if you need helping testing it. I believe there are at least 2 people testing it in the #21 bug too.

@mwaibel01
Copy link

i got a disconnect after i try press any key... with this fork.

@danielhb
Copy link
Contributor Author

danielhb commented May 9, 2016

@mwaibel01 what browser type/version have you used?

@mwaibel01
Copy link

@danielhb Firefox 46.0.1 / Chrome 50.0.2661.94 m on Windows

@danielhb
Copy link
Contributor Author

danielhb commented May 9, 2016

Strange, I've tested with Windows 10 (Chrome and Opera) and haven't experienced any disconnect issues. I'll have another look

@danielhb
Copy link
Contributor Author

danielhb commented May 9, 2016

I've tested here again with Chrome in Windows 10 and I didn't have any disconnect issues. Only way I can see a disconnect is when I open the VNC client from virt-manager with a noVNC session started. In fact, as far as I've tested noVNC does not connect at all when a desktop VNC client is already opened.

Can you provide the console logs to help debug what might be happening? Also, does this behavior exists only with these pull request? There are a few bugs about disconnect issues in noVNC ( #567 for example) that aren't related to the work done here.

Thanks!

@mwaibel01
Copy link

Msg: Connected (encrypted) to: VM Console
util.js:216 XVP extensions enabled (version 1)
util.js:216 First FBU latency: 60
util.js:216 QEMU Key Event extension enabled
util.js:216 First FBU latency: 106
util.js:216 Timing of full FBU, curr: 389, total: 389, cnt: 1, avg: 389
util.js:216 full FBU round-trip, cur: 508, total: 508, cnt: 1, avg: 508
util.js:214 bufferedAmount: 6
util.js:214 onMouseButton down, x: 620, y: 463, bmask: 1
util.js:214 onMouseButton up, x: 620, y: 463, bmask: 1
util.js:214 >> Keyboard.allKeysUp
util.js:214 << Keyboard.allKeysUp
util.js:214 onMouseButton down, x: 690, y: 536, bmask: 1
util.js:214 onMouseButton up, x: 690, y: 536, bmask: 1
util.js:214 onMouseButton down, x: 728, y: 523, bmask: 1
util.js:214 onMouseButton up, x: 728, y: 523, bmask: 1
util.js:214 onKeyPress down, keysym: undefined(undefined)
websock.js:292 WebSocket connection to 'wss://domain.com/websockify' failed: One or more reserved bits are on: reserved1 = 0, reserved2 = 1, reserved3 = 1
util.js:214 >> WebSock.onerror: [object Event]
rfb.js:218 WebSocket on-error event
util.js:214 << WebSock.onerror: [object Event]
util.js:214 >> WebSock.onclose
rfb.js:197 WebSocket on-close event
rfb.js:415 >> Keyboard.allKeysUp
rfb.js:415 onKeyPress up, keysym: undefined(undefined)
rfb.js:594 WebSocket is already in CLOSING or CLOSED state.Websock.flush @ websock.js:201RFB._handleKeyPress @ rfb.js:594Keyboard._handleRfbEvent @ input.js:54(anonymous function) @ keyboard.js:408QEMUKeyEventDecoder.releaseAll @ keyboard.js:351Keyboard._allKeysUp @ input.js:110Keyboard.ungrab @ input.js:140RFB._cleanupSocket @ rfb.js:415RFB._updateState @ rfb.js:463RFB._fail @ rfb.js:543(anonymous function) @ rfb.js:213(anonymous function) @ websock.js:320
rfb.js:415 << Keyboard.allKeysUp
rfb.js:473 Msg: Server disconnected (code: 1006)Util.Error @ util.js:220RFB._updateState @ rfb.js:473RFB._fail @ rfb.js:543(anonymous function) @ rfb.js:213(anonymous function) @ websock.js:320
rfb.js:519 Error while connected.Util.Error @ util.js:220RFB._updateState @ rfb.js:519RFB._fail @ rfb.js:543(anonymous function) @ rfb.js:213(anonymous function) @ websock.js:320
util.js:214 << WebSock.onclose
rfb.js:415 >> Keyboard.allKeysUp
rfb.js:415 << Keyboard.allKeysUp
rfb.js:475

@mwaibel01
Copy link

yes only with this pull request...

@danielhb
Copy link
Contributor Author

danielhb commented May 9, 2016

@mwaibel01 first, thanks for your time in testing this pull request and reporting this issue.

Only reason I may think about this happening here and not on master was that this pull request was done almost a month ago and there were lots of changes that weren't present here, and at least one of the missing patches seems to be dealing with this issue, I guess.

I just updated this pull request with current noVNC master. I appreciate if you can have another go (it was a forced updated so I believe it's easier to just clone it again). If the issue still persists, then I would ask you to copy/paste the console logs again, both from this pull request and from noVNC master, so I can try to understand the difference in behavior. I know it's a lot of work but unfortunately I couldn't reproduce this issue here so, if it still happens, your logs are the only material I have to debug.

Thanks again!

@mwaibel01
Copy link

@danielhb Hi, after a new clone i cant establish any connection:

Data URI scheme cursor supported util.js:216:43

RFB.constructor util.js:214:43
Display.constructor util.js:214:43
User Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0 OWASMIME/4.0500 util.js:214:43
Browser: gecko 19 util.js:214:43
Setting viewport to full display region util.js:214:43
<< Display.constructor util.js:214:43
Using native WebSockets util.js:216:43
Keyboard.allKeysUp util.js:214:43
<< Keyboard.allKeysUp util.js:214:43
Setting viewport to full display region util.js:214:43
Msg: noVNC ready: native WebSockets, canvas rendering util.js:218:43
<< RFB.constructor util.js:214:43
Keyboard.allKeysUp util.js:214:43
<< Keyboard.allKeysUp util.js:214:43
util.js:218:43
RFB.connect util.js:214:43
"connecting to wss://server:443//websockify" util.js:216:43
Detected binaryType support in WebSockets util.js:216:43
<< RFB.connect util.js:214:43
WebSock.onopen util.js:214:43
Server choose sub-protocol: binary util.js:216:43
Msg: Starting VNC handshake util.js:218:43
<< WebSock.onopen util.js:214:43
Server ProtocolVersion: 003.008 util.js:216:43
Msg: Sent ProtocolVersion: 003.008 util.js:218:43
Server security types: [object Uint8Array] util.js:214:43
Msg: Authenticating using scheme: 22 util.js:218:43
bufferedAmount: 1 util.js:214:43
util.js:218:43
Msg: Authentication OK util.js:218:43
Screen: 1280x800, bpp: 32, depth: 24, big_endian: 0, true_color: 1, red_max: 255, green_max: 255, blue_max: 255, red_shift: 16, green_shift: 8, blue_shift: 0 util.js:216:43
Setting viewport to full display region util.js:214:43
Msg: Connected (encrypted) to: VM Console - Test Kunde util.js:218:43
XVP extensions enabled (version 1) util.js:216:43
First FBU latency: 72 util.js:216:43
QEMU Key Event extension enabled util.js:216:43
missed -258: function () {
[native code]
} rfb.js:1203:21
QEMU Key Event extension enabled util.js:216:43
recv_message, caught exception:
name: ReferenceError
message: common_XT_scancode is not defined
RFB.encodingHandlers.QEMUExtendedKeyEvent@https://server/vnc/include/rfb.js:2208:17
RFB.prototype._framebufferUpdate@https://server/vnc/include/rfb.js:1204:27
RFB.prototype._normal_msg@https://server/vnc/include/rfb.js:1123:31
RFB.prototype._handle_message@https://server/vnc/include/rfb.js:560:25
Websock.prototype._recv_message@https://server/vnc/include/websock.js:400:21
util.js:220:43

WebSocket on-error event util.js:218:43
More data to process, creating timer util.js:214:43
More data to process, existing timer util.js:214:43
bufferedAmount: 10 util.js:214:43
More data to process, existing timer util.js:214:43
SetColorMapEntries util.js:214:43
colourMap: 0,32,0,120,120,5,28,0,0,121,0,121,125,170,121 util.js:214:43
Registered 5 colourMap entries util.js:216:43
More data to process, existing timer util.js:214:43

Keyboard.allKeysUp util.js:214:43
<< Keyboard.allKeysUp util.js:214:43
Closing WebSocket connection util.js:216:43
Msg: Disconnected: illegal server message type 125 util.js:220:43

Error while connected. util.js:220:43

sock.rQslice(0, 30): [object Uint8Array] util.js:214:43
More data to process, creating timer util.js:214:43
Got data while disconnected util.js:220:43

Keyboard.allKeysUp util.js:214:43
<< Keyboard.allKeysUp util.js:214:43
util.js:218:43
WebSock.onclose util.js:214:43
WebSocket on-close event util.js:218:43
Received onclose while disconnected (code: 1000) util.js:220:43

<< WebSock.onclose

@mwaibel01
Copy link

@danielhb Here the console log from novnc-master without the patch:

Data URI scheme cursor supported util.js:216:43

RFB.constructor util.js:214:43
Display.constructor util.js:214:43
User Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0 OWASMIME/4.0500 util.js:214:43
Browser: gecko 19 util.js:214:43
Setting viewport to full display region util.js:214:43
<< Display.constructor util.js:214:43
Using native WebSockets util.js:216:43
Keyboard.allKeysUp util.js:214:43
<< Keyboard.allKeysUp util.js:214:43
Setting viewport to full display region util.js:214:43
Msg: noVNC ready: native WebSockets, canvas rendering util.js:218:43
<< RFB.constructor util.js:214:43
Keyboard.allKeysUp util.js:214:43
<< Keyboard.allKeysUp util.js:214:43
util.js:218:43
RFB.connect util.js:214:43
"connecting to wss://server:443//websockify" util.js:216:43
Detected binaryType support in WebSockets util.js:216:43
<< RFB.connect util.js:214:43
WebSock.onopen util.js:214:43
Server choose sub-protocol: binary util.js:216:43
Msg: Starting VNC handshake util.js:218:43
<< WebSock.onopen util.js:214:43
Server ProtocolVersion: 003.008 util.js:216:43
Msg: Sent ProtocolVersion: 003.008 util.js:218:43
Server security types: [object Uint8Array] util.js:214:43
Msg: Authenticating using scheme: 22 util.js:218:43
bufferedAmount: 1 util.js:214:43
util.js:218:43
bufferedAmount: 16 util.js:214:43
Msg: Authentication OK util.js:218:43
Screen: 1280x800, bpp: 32, depth: 24, big_endian: 0, true_color: 1, red_max: 255, green_max: 255, blue_max: 255, red_shift: 16, green_shift: 8, blue_shift: 0 util.js:216:43
Setting viewport to full display region util.js:214:43
Msg: Connected (encrypted) to: VM Console - Test Kunde util.js:218:43
XVP extensions enabled (version 1) util.js:216:43
First FBU latency: 80 util.js:216:43
Timing of full FBU, curr: 108, total: 108, cnt: 1, avg: 108 util.js:216:43
full FBU round-trip, cur: 191, total: 191, cnt: 1, avg: 191 util.js:216:43
bufferedAmount: 10 util.js:214:43
bufferedAmount: 46 util.js:214:43
bufferedAmount: 52 util.js:214:43
bufferedAmount: 22 util.js:214:43
onMouseButton down, x: 470, y: 203, bmask: 1 util.js:214:43
onMouseButton up, x: 470, y: 203, bmask: 1 util.js:214:43
bufferedAmount: 10 util.js:214:43
onKeyPress down, keysym: 97(97) util.js:214:43
onKeyPress up, keysym: 97(97) util.js:214:43
bufferedAmount: 10 util.js:214:43
Keyboard.allKeysUp util.js:214:43
<< Keyboard.allKeysUp util.js:214:43
bufferedAmount: 10

@danielhb
Copy link
Contributor Author

@mwaibel01 thanks for testing. I am seeing a tangible error in the middle of the trace but it's strange I cannot reproduce it here. How are you running noVNC? Are you launching with:

./utils/launch.sh --vnc localhost:5905

From the command line?

You've said you're testing on Windows. Are you running noVNC source code from Windows too?

@mwaibel01
Copy link

@danielhb Hi no i run it from centos. with ./launch.sh --cert cert.pem with default setting to 5900 and apache with wsproxy

@danielhb
Copy link
Contributor Author

@mwaibel01 I've updated the pull request. I believe at least one of the error messages you're seeing is gone. If possible please try with a clean clone again.

Thanks!

@mwaibel01
Copy link

@danielhb after a new clean clone:

RFB.constructor util.js:214:43
Display.constructor util.js:214:43
User Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0 OWASMIME/4.0500 util.js:214:43
Browser: gecko 19 util.js:214:43
Setting viewport to full display region util.js:214:43
<< Display.constructor util.js:214:43
Using native WebSockets util.js:216:43
Keyboard.allKeysUp util.js:214:43
<< Keyboard.allKeysUp util.js:214:43
Setting viewport to full display region util.js:214:43
Msg: noVNC ready: native WebSockets, canvas rendering util.js:218:43
<< RFB.constructor util.js:214:43
Keyboard.allKeysUp util.js:214:43
<< Keyboard.allKeysUp util.js:214:43
util.js:218:43
RFB.connect util.js:214:43
"connecting to wss://server:443//websockify" util.js:216:43
Detected binaryType support in WebSockets util.js:216:43
<< RFB.connect util.js:214:43
WebSock.onopen util.js:214:43
Server choose sub-protocol: binary util.js:216:43
Msg: Starting VNC handshake util.js:218:43
<< WebSock.onopen util.js:214:43
Server ProtocolVersion: 003.008 util.js:216:43
Msg: Sent ProtocolVersion: 003.008 util.js:218:43
Server security types: [object Uint8Array] util.js:214:43
Msg: Authenticating using scheme: 22 util.js:218:43
bufferedAmount: 1 util.js:214:43
util.js:218:43
bufferedAmount: 16 util.js:214:43
Msg: Authentication OK util.js:218:43
Screen: 1280x800, bpp: 32, depth: 24, big_endian: 0, true_color: 1, red_max: 255, green_max: 255, blue_max: 255, red_shift: 16, green_shift: 8, blue_shift: 0 util.js:216:43
Setting viewport to full display region util.js:214:43
Msg: Connected (encrypted) to: VM Console - Test Kunde util.js:218:43
bufferedAmount: 90 util.js:214:43
XVP extensions enabled (version 1) util.js:216:43
First FBU latency: 71 util.js:216:43
QEMU Key Event extension enabled util.js:216:43
missed -258: function () {
[native code]
} rfb.js:1203:21
QEMU Key Event extension enabled util.js:216:43
recv_message, caught exception:
name: TypeError
message: this._keyboard.setQEMUVNCKeyboardHandler is not a function
RFB.encodingHandlers.QEMUExtendedKeyEvent@https://server/vnc/include/rfb.js:2376:17
RFB.prototype._framebufferUpdate@https://server/vnc/include/rfb.js:1204:27
RFB.prototype._normal_msg@https://server/vnc/include/rfb.js:1123:31
RFB.prototype._handle_message@https://server/vnc/include/rfb.js:560:25
Websock.prototype._recv_message@https://server/vnc/include/websock.js:400:21
util.js:220:43

WebSocket on-error event util.js:218:43
More data to process, creating timer util.js:214:43
bufferedAmount: 10 util.js:214:43
More data to process, existing timer util.js:214:43
bufferedAmount: 10 util.js:214:43
More data to process, existing timer util.js:214:43
SetColorMapEntries util.js:214:43
colourMap: 0,32,0,120,120,5,28,0,0,121,0,121,125,170,121 util.js:214:43
Registered 5 colourMap entries util.js:216:43
More data to process, existing timer util.js:214:43

Keyboard.allKeysUp util.js:214:43
<< Keyboard.allKeysUp util.js:214:43
Closing WebSocket connection util.js:216:43
Msg: Disconnected: illegal server message type 125 util.js:220:43

Error while connected. util.js:220:43

sock.rQslice(0, 30): [object Uint8Array] util.js:214:43
More data to process, creating timer util.js:214:43
Got data while disconnected util.js:220:43

Keyboard.allKeysUp util.js:214:43
<< Keyboard.allKeysUp util.js:214:43
util.js:218:43
WebSock.onclose util.js:214:43
WebSocket on-close event util.js:218:43
Received onclose while disconnected (code: 1000) util.js:220:43

<< WebSock.onclose

@danielhb
Copy link
Contributor Author

@mwaibel01 please do the following test: using my pull request as is, instead of testing using Firefox or Chrome, use Internet Explorer or Edge. This will fail the browser verification and the message "QEMU Key Event extension enabled" would not appear, falling back to regular noVNC code.

Let me know if it works (= connects to VNC session, can send any key presses even if wrong).

@mwaibel01
Copy link

@danielhb in IE the connection works and keypress with wrong layout.
In Edge Connection works but no key press.

@dkelson
Copy link

dkelson commented Aug 24, 2016

Any update on this? I'd love to see it merged.

@DirectXMan12
Copy link
Member

I'll try and do a code review and test in the next few days. I agree -- I'd love to see this as well.

include/rfb.js Outdated
this._viewportHasMoved = false;

// QEMU Extended Key Event support - default to false
this._QEMU_Extended_Key_Event = false;
Copy link
Member

@DirectXMan12 DirectXMan12 Aug 24, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please don't mix camelCase and snake_case (e.g. use _qemuExtendedKeyEvent or _qemuExtKeyEventSupported). Additionaly, it's probably not a bad idea to put "supported" somewhere in the field name, as well.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch, haven't realized I mixed cases here. I will change it to _qemuExtKeyEventSupported in the next pass

This new file contains the XT scancode mapping that
the extension will use in rfb.js file.

Signed-off-by: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com>
In input.js, a new keyboard handler was added to deal exclusively
with the QEMU key event extension. '_onKeyPress()' signature
was changed to allow the same method to treat both cases.

The extension will only be enabled if the browser has support
for the KeyboardEvent.code property.

Changes in rfb.js:

- added a new extension code, QEMUExtendedKeyEvent, value -258.

- handleKeyPress now receives 'keyevent' instead of 'keysym' and
'down'. Both values are retrieved from keyevent as they were
in the previous signature. This method now can send QEMU RFB
extended key messages if the flag was set to 'true'.

- tests/test.rfb.js were changed folowing the onKeyPress() signature
change.

- added a new function to send the QEMU extended key message.

Signed-off-by: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com>
Added a 'QEMUKeyEventDecoder' method to deal with the
key events generated when the QEMU extension is active. Another
method, 'TrackQEMUKeyState', was also created with this same
goal.

Although both methods have similaries with the existing methods
'KeyEventDecoder' and 'TrackKeyState', specially when dealing
with 'supress' and 'releaseall', the logic behind the QEMU extension
does not required keysym generation for most cases (some NumPad keys
are an exception) and, as such, there is no need to treat 'keyPressed'
events and to handle char modifiers.

'TrackQEMUKeyState' also handles a Windows scenario where the
'AltGR' key generates CtrlLeft and AltRight keystrokes. The solution
was to avoid this specific combination to be sent to the VNC server,
discarding the extra 'CtrlLeft' key. Considering that the user can
send CtrlLeft+AltLeft, CtrlRight+AltRight and even CtrlRight+AltLeft,
this workaround to allow Windows users to use AltGR in their noVNC
sessions is worthwhile.

Signed-off-by: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com>
@danielhb
Copy link
Contributor Author

@DirectXMan12 updated the pull request with your review comments

@DirectXMan12
Copy link
Member

thanks! I'll take a look later this evening or early next week, and then get it merged.

@DirectXMan12
Copy link
Member

right, so, I tested this briefly (switched over to a DE layout locally, and watched as the current noVNC failed to handle the output of my - and y keys, while with the patch they came over fine) with my copy of QEmu, and it seems to work beautifully. 🎉

@samhed @kanaka any last thoughts, or shall I merge this?

@kanaka
Copy link
Member

kanaka commented Aug 29, 2016

LGTM

@DirectXMan12 DirectXMan12 merged commit f4f4e89 into novnc:master Aug 29, 2016
@devicenull
Copy link
Contributor

This doesn't appear to work for me. After upgrading to HEAD, I get a bunch of messages in my VMs console:

 atkbd.c: Unknown key released (translated set 2, code 0x0 on isa0060/serio0).

If I enable debug messages, I see a lot of messages like this in the browser's console:

onKeyPress down, keysym: undefined(undefined)
onKeyPress up, keysym: undefined(undefined)

This is with Chrome 53 (beta), and the VM is running CentOS 6

@devicenull
Copy link
Contributor

Did some further testing with Firefox 50.0a2 and Ubuntu 16.04 (as the VM) and I'm still seeing the same thing. Is there a special configuration required on the guest in order to get this functional?

@danielhb
Copy link
Contributor Author

danielhb commented Sep 1, 2016

If you are using the qemu keyboard option when starting the guest, remove it

Em 01/09/2016 6:26 PM, "devicenull" notifications@github.com escreveu:

Did some further testing with Firefox 50.0a2 and Ubuntu 16.04 (as the VM)
and I'm still seeing the same thing. Is there a special configuration
required on the guest in order to get this functional?


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#596 (comment), or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA053Ii0hPJgi0zLOIJIQtcfTasQGMD9ks5ql0L_gaJpZM4IESKT
.

@devicenull
Copy link
Contributor

devicenull commented Sep 1, 2016

I have no keyboard args on my qemu command line. I have this line in my libvirt xml, which was automatically added by libvirt:

<input type='keyboard' bus='ps2'/

@danielhb
Copy link
Contributor Author

danielhb commented Sep 3, 2016

If you provide more information (debug messages from noVNC, which distro you`re using as hypervisor, etc) I can help with debugging

@DirectXMan12 DirectXMan12 added this to the v0.7.0 milestone Sep 16, 2016
@ionutbiru
Copy link

ionutbiru commented Oct 16, 2016

Hello Daniel,
Openstack Ansible the Newton branch is using master from 20.09.2016 and with this version of novnc, I'm seeing this issue. I'm not sure how to debug but I'm willing to help if you tell me how.

I'm using a quest ubuntu 14, with qemu 2.5 from ubuntu cloud archive. Also I have compute nodes that still have variants of started machines with qemu 2.0.

As a side note, libvirt.xml is managed by openstack here is an example:

<domain type="kvm">
  <uuid>e1dd1c22-7007-4ad2-b7e9-6018fd0b3dcd</uuid>
  <name>instance-00000005</name>
  <memory>524288</memory>
  <vcpu>4</vcpu>
  <metadata>
    <nova:instance xmlns:nova="http://openstack.org/xmlns/libvirt/nova/1.0">
      <nova:package version="14.0.0"/>
      <nova:name>test</nova:name>
      <nova:creationTime>2016-10-13 13:17:55</nova:creationTime>
      <nova:flavor name="test">
        <nova:memory>512</nova:memory>
        <nova:disk>5</nova:disk>
        <nova:swap>0</nova:swap>
        <nova:ephemeral>0</nova:ephemeral>
        <nova:vcpus>4</nova:vcpus>
      </nova:flavor>
      <nova:owner>
        <nova:user uuid="b2a721756d604020b400b7bf9fc51849">admin</nova:user>
        <nova:project uuid="6173d514c77f470c9fff46fa5ad6e0ef">admin</nova:project>
      </nova:owner>
      <nova:root type="image" uuid="b1507ff6-fbce-4ef8-a649-217ba0ec94fb"/>
    </nova:instance>
  </metadata>
  <sysinfo type="smbios">
    <system>
      <entry name="manufacturer">OpenStack Foundation</entry>
      <entry name="product">OpenStack Nova</entry>
      <entry name="version">14.0.0</entry>
      <entry name="serial">e465bdb1-649d-4ade-89bb-0e7f9a7cc4a6</entry>
      <entry name="uuid">e1dd1c22-7007-4ad2-b7e9-6018fd0b3dcd</entry>
      <entry name="family">Virtual Machine</entry>
    </system>
  </sysinfo>
  <os>
    <type>hvm</type>
    <boot dev="hd"/>
    <smbios mode="sysinfo"/>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cputune>
    <shares>4096</shares>
  </cputune>
  <clock offset="utc">
    <timer name="pit" tickpolicy="delay"/>
    <timer name="rtc" tickpolicy="catchup"/>
    <timer name="hpet" present="no"/>
  </clock>
  <cpu mode="host-model" match="exact">
    <topology sockets="4" cores="1" threads="1"/>
  </cpu>
  <devices>
    <disk type="file" device="disk">
      <driver name="qemu" type="raw" cache="none" discard="unmap"/>
      <source file="/var/lib/nova/instances/e1dd1c22-7007-4ad2-b7e9-6018fd0b3dcd/disk"/>
      <target bus="virtio" dev="vda"/>
    </disk>
    <interface type="bridge">
      <mac address="fa:16:3e:07:f7:f6"/>
      <model type="virtio"/>
      <source bridge="brq38880a52-82"/>
      <target dev="tap3f6a9869-21"/>
    </interface>
    <serial type="file">
      <source path="/var/lib/nova/instances/e1dd1c22-7007-4ad2-b7e9-6018fd0b3dcd/console.log"/>
    </serial>
    <serial type="pty"/>
    <input type="tablet" bus="usb"/>
    <graphics type="vnc" autoport="yes" keymap="en-us" listen="ip"/>
    <video>
      <model type="cirrus"/>
    </video>
    <memballoon model="virtio">
      <stats period="10"/>
    </memballoon>
  </devices>
</domain>

@ionutbiru
Copy link

Sorry for the noise on this pull request. I just found #666

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants