* tests/qtest: Is vnc-display-test supposed to work on Darwin? @ 2022-12-02 9:49 Philippe Mathieu-Daudé 2022-12-05 7:51 ` Marc-André Lureau 0 siblings, 1 reply; 10+ messages in thread From: Philippe Mathieu-Daudé @ 2022-12-02 9:49 UTC (permalink / raw) To: Marc-André Lureau Cc: QEMU Developers, Thomas Huth, Daniel P. Berrangé Hi, The vnc-display-test is failing on Darwin: tests/qtest/vnc-display-test:45038): ERROR **: 10:42:35.488: vnc-error: Unsupported auth type 17973672 Is it supposed to pass, or should we skip it similarly to Windows? Thanks, Phil. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: tests/qtest: Is vnc-display-test supposed to work on Darwin? 2022-12-02 9:49 tests/qtest: Is vnc-display-test supposed to work on Darwin? Philippe Mathieu-Daudé @ 2022-12-05 7:51 ` Marc-André Lureau 2023-01-19 11:01 ` Philippe Mathieu-Daudé 0 siblings, 1 reply; 10+ messages in thread From: Marc-André Lureau @ 2022-12-05 7:51 UTC (permalink / raw) To: Philippe Mathieu-Daudé Cc: QEMU Developers, Thomas Huth, Daniel P. Berrangé Hi On Fri, Dec 2, 2022 at 1:51 PM Philippe Mathieu-Daudé <philmd@linaro.org> wrote: > > Hi, > > The vnc-display-test is failing on Darwin: > > tests/qtest/vnc-display-test:45038): ERROR **: 10:42:35.488: vnc-error: > Unsupported auth type 17973672 It is supposed to pass. Can you share more details? It doesn't look like an endianness issue, at first sight.. > Is it supposed to pass, or should we skip it similarly to Windows? (I hope it'll cover Windows soon) -- Marc-André Lureau ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: tests/qtest: Is vnc-display-test supposed to work on Darwin? 2022-12-05 7:51 ` Marc-André Lureau @ 2023-01-19 11:01 ` Philippe Mathieu-Daudé 2023-01-19 11:16 ` Daniel P. Berrangé 0 siblings, 1 reply; 10+ messages in thread From: Philippe Mathieu-Daudé @ 2023-01-19 11:01 UTC (permalink / raw) To: Marc-André Lureau Cc: QEMU Developers, Thomas Huth, Daniel P. Berrangé, Gerd Hoffmann On 5/12/22 08:51, Marc-André Lureau wrote: > On Fri, Dec 2, 2022 at 1:51 PM Philippe Mathieu-Daudé <philmd@linaro.org> wrote: >> >> The vnc-display-test is failing on Darwin: >> >> tests/qtest/vnc-display-test:45038): ERROR **: 10:42:35.488: vnc-error: >> Unsupported auth type 17973672 > > It is supposed to pass. Can you share more details? It doesn't look > like an endianness issue, at first sight.. Adding '-trace vnc*' and setting _VNC_DEBUG in "vnc.h" I get: # Start of vnc-display tests vnc_server_dpy_recreate VNC server dpy recreate dpy=0x130008000 size=640x480 fmt=537004168 Initializing VNC server with no auth vnc_auth_init VNC auth init state=0x130008000 websock=0 auth=1 subauth=0 Initializing VNC server with no auth vnc_auth_init VNC auth init state=0x130008000 websock=1 auth=1 subauth=0 vnc_client_connect VNC client connect state=0x130050000 ioc=0x13f7077f0 Client sioc=0x13f7077f0 ws=0 auth=1 subauth=0 New client on socket 0x13f7077f0 vnc_set_share_mode/0x13f7077f0: undefined -> connecting Write Plain: Pending output 0x14880a400 size 4096 offset 12. Wait SSF 0 Wrote wire 0x14880a400 12 -> 12 Read plain 0x0 size 0 offset 0 Read wire 0x13f8c8c00 4096 -> 12 Client request protocol version 3.8 Write Plain: Pending output 0x14880a400 size 4096 offset 2. Wait SSF 0 Wrote wire 0x14880a400 2 -> 2 Bail out! FATAL-ERROR: vnc-error: Unsupported auth type 5489072 Read plain 0x13f8c8c00 size 4096 offset 0 Read wire 0x13f8c8c00 4096 -> 1 vnc_auth_reject VNC client auth rejected state=0x130050000 method expected=1 got=176 Write Plain: Pending output 0x14880a400 size 4096 offset 30. Wait SSF 0 Wrote wire 0x14880a400 30 -> 30 Closing down client sock: protocol error vnc_client_disconnect_start VNC client disconnect start state=0x130050000 ioc=0x13f7077f0 vnc_set_share_mode/0x13f7077f0: connecting -> disconnected vnc_client_disconnect_finish VNC client disconnect finish state=0x130050000 ioc=0x13f7077f0 ** (tests/qtest/vnc-display-test:8465): ERROR **: 11:59:18.613: vnc-error: Unsupported auth type 5489072 Trace/BPT trap: 5 Does that help? What else can I do to gather more info? >> Is it supposed to pass, or should we skip it similarly to Windows? > > (I hope it'll cover Windows soon) > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: tests/qtest: Is vnc-display-test supposed to work on Darwin? 2023-01-19 11:01 ` Philippe Mathieu-Daudé @ 2023-01-19 11:16 ` Daniel P. Berrangé 2023-01-19 11:21 ` Philippe Mathieu-Daudé 2023-01-19 11:29 ` Philippe Mathieu-Daudé 0 siblings, 2 replies; 10+ messages in thread From: Daniel P. Berrangé @ 2023-01-19 11:16 UTC (permalink / raw) To: Philippe Mathieu-Daudé Cc: Marc-André Lureau, QEMU Developers, Thomas Huth, Gerd Hoffmann On Thu, Jan 19, 2023 at 12:01:18PM +0100, Philippe Mathieu-Daudé wrote: > On 5/12/22 08:51, Marc-André Lureau wrote: > > On Fri, Dec 2, 2022 at 1:51 PM Philippe Mathieu-Daudé <philmd@linaro.org> wrote: > > > > > > The vnc-display-test is failing on Darwin: > > > > > > tests/qtest/vnc-display-test:45038): ERROR **: 10:42:35.488: vnc-error: > > > Unsupported auth type 17973672 > > > > It is supposed to pass. Can you share more details? It doesn't look > > like an endianness issue, at first sight.. > > Adding '-trace vnc*' and setting _VNC_DEBUG in "vnc.h" I get: > > # Start of vnc-display tests > vnc_server_dpy_recreate VNC server dpy recreate dpy=0x130008000 size=640x480 > fmt=537004168 > Initializing VNC server with no auth > vnc_auth_init VNC auth init state=0x130008000 websock=0 auth=1 subauth=0 > Initializing VNC server with no auth > vnc_auth_init VNC auth init state=0x130008000 websock=1 auth=1 subauth=0 > vnc_client_connect VNC client connect state=0x130050000 ioc=0x13f7077f0 > Client sioc=0x13f7077f0 ws=0 auth=1 subauth=0 > New client on socket 0x13f7077f0 > vnc_set_share_mode/0x13f7077f0: undefined -> connecting > Write Plain: Pending output 0x14880a400 size 4096 offset 12. Wait SSF 0 > Wrote wire 0x14880a400 12 -> 12 > Read plain 0x0 size 0 offset 0 > Read wire 0x13f8c8c00 4096 -> 12 > Client request protocol version 3.8 > Write Plain: Pending output 0x14880a400 size 4096 offset 2. Wait SSF 0 > Wrote wire 0x14880a400 2 -> 2 > Bail out! FATAL-ERROR: vnc-error: Unsupported auth type 5489072 ^^^^ This specific message is comnig from the gtk-vnc client rather than QEMU Still doesn't tell us if the flaw is server or client side. The logs from QEMU are insufficient. In theory it should be reporting auth type == 0 though, for 'no auth' configs. > Read plain 0x13f8c8c00 size 4096 offset 0 > Read wire 0x13f8c8c00 4096 -> 1 > vnc_auth_reject VNC client auth rejected state=0x130050000 method expected=1 > got=176 > Write Plain: Pending output 0x14880a400 size 4096 offset 30. Wait SSF 0 > Wrote wire 0x14880a400 30 -> 30 > Closing down client sock: protocol error > vnc_client_disconnect_start VNC client disconnect start state=0x130050000 > ioc=0x13f7077f0 > vnc_set_share_mode/0x13f7077f0: connecting -> disconnected > vnc_client_disconnect_finish VNC client disconnect finish state=0x130050000 > ioc=0x13f7077f0 > > ** (tests/qtest/vnc-display-test:8465): ERROR **: 11:59:18.613: vnc-error: > Unsupported auth type 5489072 > Trace/BPT trap: 5 > > Does that help? What else can I do to gather more info? Modify vnc-display-test.c to call vnc_util_set_debug(TRUE); before vnc_connection_new(), to get the gtk-vnc debug logs to stderr too. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: tests/qtest: Is vnc-display-test supposed to work on Darwin? 2023-01-19 11:16 ` Daniel P. Berrangé @ 2023-01-19 11:21 ` Philippe Mathieu-Daudé 2023-01-19 11:33 ` Daniel P. Berrangé 2023-01-19 11:29 ` Philippe Mathieu-Daudé 1 sibling, 1 reply; 10+ messages in thread From: Philippe Mathieu-Daudé @ 2023-01-19 11:21 UTC (permalink / raw) To: Daniel P. Berrangé Cc: Marc-André Lureau, QEMU Developers, Thomas Huth, Gerd Hoffmann On 19/1/23 12:16, Daniel P. Berrangé wrote: > On Thu, Jan 19, 2023 at 12:01:18PM +0100, Philippe Mathieu-Daudé wrote: >> On 5/12/22 08:51, Marc-André Lureau wrote: >>> On Fri, Dec 2, 2022 at 1:51 PM Philippe Mathieu-Daudé <philmd@linaro.org> wrote: >>>> >>>> The vnc-display-test is failing on Darwin: >>>> >>>> tests/qtest/vnc-display-test:45038): ERROR **: 10:42:35.488: vnc-error: >>>> Unsupported auth type 17973672 >>> >>> It is supposed to pass. Can you share more details? It doesn't look >>> like an endianness issue, at first sight.. >> >> Adding '-trace vnc*' and setting _VNC_DEBUG in "vnc.h" I get: >> Bail out! FATAL-ERROR: vnc-error: Unsupported auth type 5489072 > > ^^^^ This specific message is comnig from the gtk-vnc client rather > than QEMU > > Still doesn't tell us if the flaw is server or client side. The > logs from QEMU are insufficient. In theory it should be reporting > auth type == 0 though, for 'no auth' configs. >> Does that help? What else can I do to gather more info? > > Modify vnc-display-test.c to call vnc_util_set_debug(TRUE); > before vnc_connection_new(), to get the gtk-vnc debug logs > to stderr too. Here you go: vnc_server_dpy_recreate VNC server dpy recreate dpy=0x1588b8000 size=640x384 fmt=537004168 vnc_auth_init VNC auth init state=0x1588b8000 websock=0 auth=1 subauth=0 vnc_auth_init VNC auth init state=0x1588b8000 websock=1 auth=1 subauth=0 vnc_client_connect VNC client connect state=0x1484b0000 ioc=0x152e667f0 # gtk-vnc-DEBUG: ../src/vncconnection.c Init VncConnection=0x14f0168b0 gtk-vnc-DEBUG: 12:20:30.482: ../src/vncconnection.c Init VncConnection=0x14f0168b0 # gtk-vnc-DEBUG: ../src/vncconnection.c Thinking about auth type 1 gtk-vnc-DEBUG: 12:20:30.482: ../src/vncconnection.c Thinking about auth type 1 # gtk-vnc-DEBUG: ../src/vncconnection.c Decided on auth type 1 gtk-vnc-DEBUG: 12:20:30.482: ../src/vncconnection.c Decided on auth type 1 # gtk-vnc-DEBUG: ../src/vncconnection.c Open fd=4 gtk-vnc-DEBUG: 12:20:30.482: ../src/vncconnection.c Open fd=4 # gtk-vnc-DEBUG: ../src/vncconnection.c Open coroutine starting gtk-vnc-DEBUG: 12:20:30.482: ../src/vncconnection.c Open coroutine starting # gtk-vnc-DEBUG: ../src/vncconnection.c Started background coroutine gtk-vnc-DEBUG: 12:20:30.484: ../src/vncconnection.c Started background coroutine # gtk-vnc-DEBUG: ../src/vncconnection.c Connecting to FD 4 gtk-vnc-DEBUG: 12:20:30.484: ../src/vncconnection.c Connecting to FD 4 # gtk-vnc-DEBUG: ../src/vncconnection.c Emit main context 16 gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Emit main context 16 # gtk-vnc-DEBUG: ../src/vncconnection.c Protocol initialization gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Protocol initialization # gtk-vnc-DEBUG: ../src/vncconnection.c Schedule greeting timeout 0x14f0155e0 gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Schedule greeting timeout 0x14f0155e0 # gtk-vnc-DEBUG: ../src/vncconnection.c Remove timeout 0x14f0155e0 gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Remove timeout 0x14f0155e0 # gtk-vnc-DEBUG: ../src/vncconnection.c Server version: 3.8 gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Server version: 3.8 # gtk-vnc-DEBUG: ../src/vncconnection.c Sending full greeting gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Sending full greeting # gtk-vnc-DEBUG: ../src/vncconnection.c Using version: 3.8 gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Using version: 3.8 # gtk-vnc-DEBUG: ../src/vncconnection.c Possible auth 1 gtk-vnc-DEBUG: 12:20:30.589: ../src/vncconnection.c Possible auth 1 # gtk-vnc-DEBUG: ../src/vncconnection.c Emit main context 14 gtk-vnc-DEBUG: 12:20:30.589: ../src/vncconnection.c Emit main context 14 # gtk-vnc-DEBUG: ../src/vncconnection.c Waiting for auth type gtk-vnc-DEBUG: 12:20:30.589: ../src/vncconnection.c Waiting for auth type # gtk-vnc-DEBUG: ../src/vncconnection.c Choose auth 10486192 gtk-vnc-DEBUG: 12:20:30.589: ../src/vncconnection.c Choose auth 10486192 # gtk-vnc-DEBUG: ../src/vncconnection.c Checking if credentials are needed gtk-vnc-DEBUG: 12:20:30.589: ../src/vncconnection.c Checking if credentials are needed # gtk-vnc-DEBUG: ../src/vncconnection.c No credentials required gtk-vnc-DEBUG: 12:20:30.589: ../src/vncconnection.c No credentials required # gtk-vnc-DEBUG: ../src/vncconnection.c Emit main context 12 gtk-vnc-DEBUG: 12:20:30.589: ../src/vncconnection.c Emit main context 12 # gtk-vnc-DEBUG: ../src/vncconnection.c Error: Unsupported auth type 10486192 gtk-vnc-DEBUG: 12:20:30.589: ../src/vncconnection.c Error: Unsupported auth type 10486192 # gtk-vnc-DEBUG: ../src/vncconnection.c Emit main context 19 gtk-vnc-DEBUG: 12:20:30.589: ../src/vncconnection.c Emit main context 19 Bail out! FATAL-ERROR: vnc-error: Unsupported auth type 10486192 ** ERROR **: 12:20:30.589: vnc-error: Unsupported auth type 10486192 vnc_auth_reject VNC client auth rejected state=0x1484b0000 method expected=1 got=176 vnc_client_disconnect_start VNC client disconnect start state=0x1484b0000 ioc=0x152e667f0 vnc_client_disconnect_finish VNC client disconnect finish state=0x1484b0000 ioc=0x152e667f0 Trace/BPT trap: 5 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: tests/qtest: Is vnc-display-test supposed to work on Darwin? 2023-01-19 11:21 ` Philippe Mathieu-Daudé @ 2023-01-19 11:33 ` Daniel P. Berrangé 2023-01-19 11:49 ` Philippe Mathieu-Daudé 0 siblings, 1 reply; 10+ messages in thread From: Daniel P. Berrangé @ 2023-01-19 11:33 UTC (permalink / raw) To: Philippe Mathieu-Daudé Cc: Marc-André Lureau, QEMU Developers, Thomas Huth, Gerd Hoffmann On Thu, Jan 19, 2023 at 12:21:58PM +0100, Philippe Mathieu-Daudé wrote: > On 19/1/23 12:16, Daniel P. Berrangé wrote: > > On Thu, Jan 19, 2023 at 12:01:18PM +0100, Philippe Mathieu-Daudé wrote: > > > On 5/12/22 08:51, Marc-André Lureau wrote: > > > > On Fri, Dec 2, 2022 at 1:51 PM Philippe Mathieu-Daudé <philmd@linaro.org> wrote: > > > > > > > > > > The vnc-display-test is failing on Darwin: > > > > > > > > > > tests/qtest/vnc-display-test:45038): ERROR **: 10:42:35.488: vnc-error: > > > > > Unsupported auth type 17973672 > > > > > > > > It is supposed to pass. Can you share more details? It doesn't look > > > > like an endianness issue, at first sight.. > > > > > > Adding '-trace vnc*' and setting _VNC_DEBUG in "vnc.h" I get: > > > > Bail out! FATAL-ERROR: vnc-error: Unsupported auth type 5489072 > > > > ^^^^ This specific message is comnig from the gtk-vnc client rather > > than QEMU > > > > Still doesn't tell us if the flaw is server or client side. The > > logs from QEMU are insufficient. In theory it should be reporting > > auth type == 0 though, for 'no auth' configs. > > > > Does that help? What else can I do to gather more info? > > > > Modify vnc-display-test.c to call vnc_util_set_debug(TRUE); > > before vnc_connection_new(), to get the gtk-vnc debug logs > > to stderr too. > Here you go: > > vnc_server_dpy_recreate VNC server dpy recreate dpy=0x1588b8000 size=640x384 > fmt=537004168 > vnc_auth_init VNC auth init state=0x1588b8000 websock=0 auth=1 subauth=0 > vnc_auth_init VNC auth init state=0x1588b8000 websock=1 auth=1 subauth=0 > vnc_client_connect VNC client connect state=0x1484b0000 ioc=0x152e667f0 > # gtk-vnc-DEBUG: ../src/vncconnection.c Init VncConnection=0x14f0168b0 > gtk-vnc-DEBUG: 12:20:30.482: ../src/vncconnection.c Init > VncConnection=0x14f0168b0 > # gtk-vnc-DEBUG: ../src/vncconnection.c Thinking about auth type 1 > gtk-vnc-DEBUG: 12:20:30.482: ../src/vncconnection.c Thinking about auth type > 1 > # gtk-vnc-DEBUG: ../src/vncconnection.c Decided on auth type 1 > gtk-vnc-DEBUG: 12:20:30.482: ../src/vncconnection.c Decided on auth type 1 So here we set conn->auth_type == 1 > # gtk-vnc-DEBUG: ../src/vncconnection.c Open fd=4 > gtk-vnc-DEBUG: 12:20:30.482: ../src/vncconnection.c Open fd=4 > # gtk-vnc-DEBUG: ../src/vncconnection.c Open coroutine starting > gtk-vnc-DEBUG: 12:20:30.482: ../src/vncconnection.c Open coroutine starting > # gtk-vnc-DEBUG: ../src/vncconnection.c Started background coroutine > gtk-vnc-DEBUG: 12:20:30.484: ../src/vncconnection.c Started background > coroutine > # gtk-vnc-DEBUG: ../src/vncconnection.c Connecting to FD 4 > gtk-vnc-DEBUG: 12:20:30.484: ../src/vncconnection.c Connecting to FD 4 > # gtk-vnc-DEBUG: ../src/vncconnection.c Emit main context 16 > gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Emit main context 16 > # gtk-vnc-DEBUG: ../src/vncconnection.c Protocol initialization > gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Protocol initialization > # gtk-vnc-DEBUG: ../src/vncconnection.c Schedule greeting timeout > 0x14f0155e0 > gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Schedule greeting > timeout 0x14f0155e0 > # gtk-vnc-DEBUG: ../src/vncconnection.c Remove timeout 0x14f0155e0 > gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Remove timeout > 0x14f0155e0 > # gtk-vnc-DEBUG: ../src/vncconnection.c Server version: 3.8 > gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Server version: 3.8 > # gtk-vnc-DEBUG: ../src/vncconnection.c Sending full greeting > gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Sending full greeting > # gtk-vnc-DEBUG: ../src/vncconnection.c Using version: 3.8 > gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Using version: 3.8 > # gtk-vnc-DEBUG: ../src/vncconnection.c Possible auth 1 > gtk-vnc-DEBUG: 12:20:30.589: ../src/vncconnection.c Possible auth 1 > # gtk-vnc-DEBUG: ../src/vncconnection.c Emit main context 14 > gtk-vnc-DEBUG: 12:20:30.589: ../src/vncconnection.c Emit main context 14 > # gtk-vnc-DEBUG: ../src/vncconnection.c Waiting for auth type > gtk-vnc-DEBUG: 12:20:30.589: ../src/vncconnection.c Waiting for auth type > # gtk-vnc-DEBUG: ../src/vncconnection.c Choose auth 10486192 Here we've read conn->auth_type and got back 10486192 nonsense instead of 1. Interestingly this value is differetn from the previous debug log which reported 5489072, so i guess we're getting garbage here for unknown reasons. This looks like a gtk-vnc problem rather than QEMU. I'm a little worried that perhaps the gtk-vnc ucontext coroutine backend is broken on macOS What coroutine backend does QEMU end up using on macOS ? Is it the sigaltstack one ? With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: tests/qtest: Is vnc-display-test supposed to work on Darwin? 2023-01-19 11:33 ` Daniel P. Berrangé @ 2023-01-19 11:49 ` Philippe Mathieu-Daudé 2023-01-19 12:00 ` Daniel P. Berrangé 0 siblings, 1 reply; 10+ messages in thread From: Philippe Mathieu-Daudé @ 2023-01-19 11:49 UTC (permalink / raw) To: Daniel P. Berrangé, Akihiko Odaki Cc: Marc-André Lureau, QEMU Developers, Thomas Huth, Gerd Hoffmann On 19/1/23 12:33, Daniel P. Berrangé wrote: > On Thu, Jan 19, 2023 at 12:21:58PM +0100, Philippe Mathieu-Daudé wrote: >> On 19/1/23 12:16, Daniel P. Berrangé wrote: >>> On Thu, Jan 19, 2023 at 12:01:18PM +0100, Philippe Mathieu-Daudé wrote: >>>> On 5/12/22 08:51, Marc-André Lureau wrote: >>>>> On Fri, Dec 2, 2022 at 1:51 PM Philippe Mathieu-Daudé <philmd@linaro.org> wrote: >>>>>> >>>>>> The vnc-display-test is failing on Darwin: >>>>>> >>>>>> tests/qtest/vnc-display-test:45038): ERROR **: 10:42:35.488: vnc-error: >>>>>> Unsupported auth type 17973672 >>>>> >>>>> It is supposed to pass. Can you share more details? It doesn't look >>>>> like an endianness issue, at first sight.. >>>> >>>> Adding '-trace vnc*' and setting _VNC_DEBUG in "vnc.h" I get: >> >>>> Bail out! FATAL-ERROR: vnc-error: Unsupported auth type 5489072 >>> >>> ^^^^ This specific message is comnig from the gtk-vnc client rather >>> than QEMU >>> >>> Still doesn't tell us if the flaw is server or client side. The >>> logs from QEMU are insufficient. In theory it should be reporting >>> auth type == 0 though, for 'no auth' configs. >> >>>> Does that help? What else can I do to gather more info? >>> >>> Modify vnc-display-test.c to call vnc_util_set_debug(TRUE); >>> before vnc_connection_new(), to get the gtk-vnc debug logs >>> to stderr too. >> Here you go: >> >> vnc_server_dpy_recreate VNC server dpy recreate dpy=0x1588b8000 size=640x384 >> fmt=537004168 >> vnc_auth_init VNC auth init state=0x1588b8000 websock=0 auth=1 subauth=0 >> vnc_auth_init VNC auth init state=0x1588b8000 websock=1 auth=1 subauth=0 >> vnc_client_connect VNC client connect state=0x1484b0000 ioc=0x152e667f0 >> # gtk-vnc-DEBUG: ../src/vncconnection.c Init VncConnection=0x14f0168b0 >> gtk-vnc-DEBUG: 12:20:30.482: ../src/vncconnection.c Init >> VncConnection=0x14f0168b0 >> # gtk-vnc-DEBUG: ../src/vncconnection.c Thinking about auth type 1 >> gtk-vnc-DEBUG: 12:20:30.482: ../src/vncconnection.c Thinking about auth type >> 1 >> # gtk-vnc-DEBUG: ../src/vncconnection.c Decided on auth type 1 >> gtk-vnc-DEBUG: 12:20:30.482: ../src/vncconnection.c Decided on auth type 1 > > So here we set conn->auth_type == 1 > > >> # gtk-vnc-DEBUG: ../src/vncconnection.c Open fd=4 >> gtk-vnc-DEBUG: 12:20:30.482: ../src/vncconnection.c Open fd=4 >> # gtk-vnc-DEBUG: ../src/vncconnection.c Open coroutine starting >> gtk-vnc-DEBUG: 12:20:30.482: ../src/vncconnection.c Open coroutine starting >> # gtk-vnc-DEBUG: ../src/vncconnection.c Started background coroutine >> gtk-vnc-DEBUG: 12:20:30.484: ../src/vncconnection.c Started background >> coroutine >> # gtk-vnc-DEBUG: ../src/vncconnection.c Connecting to FD 4 >> gtk-vnc-DEBUG: 12:20:30.484: ../src/vncconnection.c Connecting to FD 4 >> # gtk-vnc-DEBUG: ../src/vncconnection.c Emit main context 16 >> gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Emit main context 16 >> # gtk-vnc-DEBUG: ../src/vncconnection.c Protocol initialization >> gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Protocol initialization >> # gtk-vnc-DEBUG: ../src/vncconnection.c Schedule greeting timeout >> 0x14f0155e0 >> gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Schedule greeting >> timeout 0x14f0155e0 >> # gtk-vnc-DEBUG: ../src/vncconnection.c Remove timeout 0x14f0155e0 >> gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Remove timeout >> 0x14f0155e0 >> # gtk-vnc-DEBUG: ../src/vncconnection.c Server version: 3.8 >> gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Server version: 3.8 >> # gtk-vnc-DEBUG: ../src/vncconnection.c Sending full greeting >> gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Sending full greeting >> # gtk-vnc-DEBUG: ../src/vncconnection.c Using version: 3.8 >> gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Using version: 3.8 >> # gtk-vnc-DEBUG: ../src/vncconnection.c Possible auth 1 >> gtk-vnc-DEBUG: 12:20:30.589: ../src/vncconnection.c Possible auth 1 >> # gtk-vnc-DEBUG: ../src/vncconnection.c Emit main context 14 >> gtk-vnc-DEBUG: 12:20:30.589: ../src/vncconnection.c Emit main context 14 >> # gtk-vnc-DEBUG: ../src/vncconnection.c Waiting for auth type >> gtk-vnc-DEBUG: 12:20:30.589: ../src/vncconnection.c Waiting for auth type >> # gtk-vnc-DEBUG: ../src/vncconnection.c Choose auth 10486192 > > Here we've read conn->auth_type and got back 10486192 nonsense instead > of 1. > > Interestingly this value is differetn from the previous debug log > which reported 5489072, so i guess we're getting garbage here for > unknown reasons. > > This looks like a gtk-vnc problem rather than QEMU. > > I'm a little worried that perhaps the gtk-vnc ucontext coroutine backend > is broken on macOS > > What coroutine backend does QEMU end up using on macOS ? Is it the > sigaltstack one ? Block layer support coroutine backend : sigaltstack coroutine pool : YES When trying the coroutine options, with --with-coroutine=windows: ERROR: 'windows' coroutine backend only valid for Windows :) and with --with-coroutine=ucontext I get: ERROR: 'ucontext' backend requested but makecontext not available config.log hints: /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/ucontext.h:51:2: error: The deprecated ucontext routines require _XOPEN_SOURCE to be defined #error The deprecated ucontext routines require _XOPEN_SOURCE to be defined ^ Adding _XOPEN_SOURCE to QEMU_CFLAGS: warning: 'makecontext' is deprecated: first deprecated in macOS 10.6 - No longer supported [-Wdeprecated-declarations] /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/ucontext.h:41:6: note: 'makecontext' has been explicitly marked deprecated here void makecontext(ucontext_t *, void (*)(), int, ...); ^ So to detect makecontext() I have to add --extra-cflags=-mmacosx-version-min=10.5 but then linking fails with multiple "$LIBNAME was built for newer macOS version (13.0) than being linked (11.0)". ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: tests/qtest: Is vnc-display-test supposed to work on Darwin? 2023-01-19 11:49 ` Philippe Mathieu-Daudé @ 2023-01-19 12:00 ` Daniel P. Berrangé 2023-01-19 14:14 ` Daniel P. Berrangé 0 siblings, 1 reply; 10+ messages in thread From: Daniel P. Berrangé @ 2023-01-19 12:00 UTC (permalink / raw) To: Philippe Mathieu-Daudé Cc: Akihiko Odaki, Marc-André Lureau, QEMU Developers, Thomas Huth, Gerd Hoffmann On Thu, Jan 19, 2023 at 12:49:48PM +0100, Philippe Mathieu-Daudé wrote: > On 19/1/23 12:33, Daniel P. Berrangé wrote: > > On Thu, Jan 19, 2023 at 12:21:58PM +0100, Philippe Mathieu-Daudé wrote: > > > On 19/1/23 12:16, Daniel P. Berrangé wrote: > > > > On Thu, Jan 19, 2023 at 12:01:18PM +0100, Philippe Mathieu-Daudé wrote: > > > > > On 5/12/22 08:51, Marc-André Lureau wrote: > > > > > > On Fri, Dec 2, 2022 at 1:51 PM Philippe Mathieu-Daudé <philmd@linaro.org> wrote: > > > > > > > > > > > > > > The vnc-display-test is failing on Darwin: > > > > > > > > > > > > > > tests/qtest/vnc-display-test:45038): ERROR **: 10:42:35.488: vnc-error: > > > > > > > Unsupported auth type 17973672 > > > > > > > > > > > > It is supposed to pass. Can you share more details? It doesn't look > > > > > > like an endianness issue, at first sight.. > > > > > > > > > > Adding '-trace vnc*' and setting _VNC_DEBUG in "vnc.h" I get: > > > > > > > > Bail out! FATAL-ERROR: vnc-error: Unsupported auth type 5489072 > > > > > > > > ^^^^ This specific message is comnig from the gtk-vnc client rather > > > > than QEMU > > > > > > > > Still doesn't tell us if the flaw is server or client side. The > > > > logs from QEMU are insufficient. In theory it should be reporting > > > > auth type == 0 though, for 'no auth' configs. > > > > > > > > Does that help? What else can I do to gather more info? > > > > > > > > Modify vnc-display-test.c to call vnc_util_set_debug(TRUE); > > > > before vnc_connection_new(), to get the gtk-vnc debug logs > > > > to stderr too. > > > Here you go: > > > > > > vnc_server_dpy_recreate VNC server dpy recreate dpy=0x1588b8000 size=640x384 > > > fmt=537004168 > > > vnc_auth_init VNC auth init state=0x1588b8000 websock=0 auth=1 subauth=0 > > > vnc_auth_init VNC auth init state=0x1588b8000 websock=1 auth=1 subauth=0 > > > vnc_client_connect VNC client connect state=0x1484b0000 ioc=0x152e667f0 > > > # gtk-vnc-DEBUG: ../src/vncconnection.c Init VncConnection=0x14f0168b0 > > > gtk-vnc-DEBUG: 12:20:30.482: ../src/vncconnection.c Init > > > VncConnection=0x14f0168b0 > > > # gtk-vnc-DEBUG: ../src/vncconnection.c Thinking about auth type 1 > > > gtk-vnc-DEBUG: 12:20:30.482: ../src/vncconnection.c Thinking about auth type > > > 1 > > > # gtk-vnc-DEBUG: ../src/vncconnection.c Decided on auth type 1 > > > gtk-vnc-DEBUG: 12:20:30.482: ../src/vncconnection.c Decided on auth type 1 > > > > So here we set conn->auth_type == 1 > > > > > > > # gtk-vnc-DEBUG: ../src/vncconnection.c Open fd=4 > > > gtk-vnc-DEBUG: 12:20:30.482: ../src/vncconnection.c Open fd=4 > > > # gtk-vnc-DEBUG: ../src/vncconnection.c Open coroutine starting > > > gtk-vnc-DEBUG: 12:20:30.482: ../src/vncconnection.c Open coroutine starting > > > # gtk-vnc-DEBUG: ../src/vncconnection.c Started background coroutine > > > gtk-vnc-DEBUG: 12:20:30.484: ../src/vncconnection.c Started background > > > coroutine > > > # gtk-vnc-DEBUG: ../src/vncconnection.c Connecting to FD 4 > > > gtk-vnc-DEBUG: 12:20:30.484: ../src/vncconnection.c Connecting to FD 4 > > > # gtk-vnc-DEBUG: ../src/vncconnection.c Emit main context 16 > > > gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Emit main context 16 > > > # gtk-vnc-DEBUG: ../src/vncconnection.c Protocol initialization > > > gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Protocol initialization > > > # gtk-vnc-DEBUG: ../src/vncconnection.c Schedule greeting timeout > > > 0x14f0155e0 > > > gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Schedule greeting > > > timeout 0x14f0155e0 > > > # gtk-vnc-DEBUG: ../src/vncconnection.c Remove timeout 0x14f0155e0 > > > gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Remove timeout > > > 0x14f0155e0 > > > # gtk-vnc-DEBUG: ../src/vncconnection.c Server version: 3.8 > > > gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Server version: 3.8 > > > # gtk-vnc-DEBUG: ../src/vncconnection.c Sending full greeting > > > gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Sending full greeting > > > # gtk-vnc-DEBUG: ../src/vncconnection.c Using version: 3.8 > > > gtk-vnc-DEBUG: 12:20:30.485: ../src/vncconnection.c Using version: 3.8 > > > # gtk-vnc-DEBUG: ../src/vncconnection.c Possible auth 1 > > > gtk-vnc-DEBUG: 12:20:30.589: ../src/vncconnection.c Possible auth 1 > > > # gtk-vnc-DEBUG: ../src/vncconnection.c Emit main context 14 > > > gtk-vnc-DEBUG: 12:20:30.589: ../src/vncconnection.c Emit main context 14 > > > # gtk-vnc-DEBUG: ../src/vncconnection.c Waiting for auth type > > > gtk-vnc-DEBUG: 12:20:30.589: ../src/vncconnection.c Waiting for auth type > > > # gtk-vnc-DEBUG: ../src/vncconnection.c Choose auth 10486192 > > > > Here we've read conn->auth_type and got back 10486192 nonsense instead > > of 1. > > > > Interestingly this value is differetn from the previous debug log > > which reported 5489072, so i guess we're getting garbage here for > > unknown reasons. > > > > This looks like a gtk-vnc problem rather than QEMU. > > > > I'm a little worried that perhaps the gtk-vnc ucontext coroutine backend > > is broken on macOS > > > > What coroutine backend does QEMU end up using on macOS ? Is it the > > sigaltstack one ? > > Block layer support > coroutine backend : sigaltstack > coroutine pool : YES > > When trying the coroutine options, with --with-coroutine=windows: > > ERROR: 'windows' coroutine backend only valid for Windows > > :) and with --with-coroutine=ucontext I get: > > ERROR: 'ucontext' backend requested but makecontext not available > > config.log hints: > > /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/ucontext.h:51:2: > error: The deprecated ucontext routines require _XOPEN_SOURCE to be defined > #error The deprecated ucontext routines require _XOPEN_SOURCE to be defined > ^ > > Adding _XOPEN_SOURCE to QEMU_CFLAGS: > > warning: 'makecontext' is deprecated: first deprecated in macOS 10.6 - No > longer supported [-Wdeprecated-declarations] > /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/ucontext.h:41:6: > note: 'makecontext' has been explicitly marked deprecated here > void makecontext(ucontext_t *, void (*)(), int, ...); > ^ > > So to detect makecontext() I have to add > --extra-cflags=-mmacosx-version-min=10.5 but then linking fails with > multiple "$LIBNAME was built for newer macOS version (13.0) than being > linked (11.0)". Yes, ucontext has been deprecated forever on macOS, but in practice it has still been functional if you define _XOPEN_SOURCE, which is what gtk-vnc has done traditionally. I presume this is on the aarch64 macOS though, and so all bets are off wrt ucontext backend unless someone knows it works correctly with the m1 port. I fear that's not the case though, given the wierd error scenario we're hitting in gtk-vnc. I might need to add a sigaltstack impl to gtk-vnc With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: tests/qtest: Is vnc-display-test supposed to work on Darwin? 2023-01-19 12:00 ` Daniel P. Berrangé @ 2023-01-19 14:14 ` Daniel P. Berrangé 0 siblings, 0 replies; 10+ messages in thread From: Daniel P. Berrangé @ 2023-01-19 14:14 UTC (permalink / raw) To: Philippe Mathieu-Daudé, Akihiko Odaki, Marc-André Lureau, QEMU Developers, Thomas Huth, Gerd Hoffmann On Thu, Jan 19, 2023 at 12:00:41PM +0000, Daniel P. Berrangé wrote: > On Thu, Jan 19, 2023 at 12:49:48PM +0100, Philippe Mathieu-Daudé wrote: > > So to detect makecontext() I have to add > > --extra-cflags=-mmacosx-version-min=10.5 but then linking fails with > > multiple "$LIBNAME was built for newer macOS version (13.0) than being > > linked (11.0)". > > Yes, ucontext has been deprecated forever on macOS, but in practice it > has still been functional if you define _XOPEN_SOURCE, which is what > gtk-vnc has done traditionally. > > I presume this is on the aarch64 macOS though, and so all bets are off > wrt ucontext backend unless someone knows it works correctly with the > m1 port. I fear that's not the case though, given the wierd error > scenario we're hitting in gtk-vnc. Yep, I've confirmed there's something broken with gtk-vnc. When we call 'getcontext' is corrupts memory in gtk-vnc structs. This makes me believe that the defined 'struct ucontext_t' is too small for use with 'getcontext' on macOS aarch64 platforms. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: tests/qtest: Is vnc-display-test supposed to work on Darwin? 2023-01-19 11:16 ` Daniel P. Berrangé 2023-01-19 11:21 ` Philippe Mathieu-Daudé @ 2023-01-19 11:29 ` Philippe Mathieu-Daudé 1 sibling, 0 replies; 10+ messages in thread From: Philippe Mathieu-Daudé @ 2023-01-19 11:29 UTC (permalink / raw) To: Daniel P. Berrangé Cc: Marc-André Lureau, QEMU Developers, Thomas Huth, Gerd Hoffmann On 19/1/23 12:16, Daniel P. Berrangé wrote: > On Thu, Jan 19, 2023 at 12:01:18PM +0100, Philippe Mathieu-Daudé wrote: >> On 5/12/22 08:51, Marc-André Lureau wrote: >>> On Fri, Dec 2, 2022 at 1:51 PM Philippe Mathieu-Daudé <philmd@linaro.org> wrote: >>>> >>>> The vnc-display-test is failing on Darwin: >>>> >>>> tests/qtest/vnc-display-test:45038): ERROR **: 10:42:35.488: vnc-error: >>>> Unsupported auth type 17973672 >>> >>> It is supposed to pass. Can you share more details? It doesn't look >>> like an endianness issue, at first sight.. >> ** (tests/qtest/vnc-display-test:8465): ERROR **: 11:59:18.613: vnc-error: >> Unsupported auth type 5489072 >> Trace/BPT trap: 5 >> >> Does that help? What else can I do to gather more info? > > Modify vnc-display-test.c to call vnc_util_set_debug(TRUE); > before vnc_connection_new(), to get the gtk-vnc debug logs > to stderr too. I just realized this is what setting GTK_VNC_DEBUG in env does. ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2023-01-19 14:15 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-12-02 9:49 tests/qtest: Is vnc-display-test supposed to work on Darwin? Philippe Mathieu-Daudé 2022-12-05 7:51 ` Marc-André Lureau 2023-01-19 11:01 ` Philippe Mathieu-Daudé 2023-01-19 11:16 ` Daniel P. Berrangé 2023-01-19 11:21 ` Philippe Mathieu-Daudé 2023-01-19 11:33 ` Daniel P. Berrangé 2023-01-19 11:49 ` Philippe Mathieu-Daudé 2023-01-19 12:00 ` Daniel P. Berrangé 2023-01-19 14:14 ` Daniel P. Berrangé 2023-01-19 11:29 ` Philippe Mathieu-Daudé
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).