Results 1 to 2 of 2

Thread: Why does `QWebSocket` hang upon receiving a specific `binaryMessageReceived()` signal

  1. #1
    Join Date
    Jun 2017
    Posts
    5
    Thanked 1 Time in 1 Post
    Qt products
    Qt5 Qt/Embedded
    Platforms
    MacOS X Unix/X11 Windows Android

    Default Why does `QWebSocket` hang upon receiving a specific `binaryMessageReceived()` signal

    We are facing an extremely strange issue which is prevalent in Qt6.2 & Qt6.5.

    A `QWebSocketServer` is running in Windows server OS. Browser connects via WebSockets to this server. The client from the browser sends data filled with *any* file content (text or image) of few 100 KBs in form of a protobuf.
    All the browsers in various devices including Windows, MacOS, Android, Linux etc. work fine.

    Now one person brought a particular MacOS machine (Mojave 10.14.1). **Only with this MacOS if the same protobuf message is sent then the whole Server hangs**!!!
    We are stunned that how is that even possible? The `QWebSocket::binaryMessageReceived()` is not called and the CPU utilization goes from usual <1% to 50% and even 99%, sabotaging the whole OS.

    This issue reproduces with MSVC & MinGW(64 bit) both. We even tried pausing this in debugger mode. This shows a stack frame where at last `SslLoadCertificate()` finally calls `SslGetServerIdentity()` in the suspicious thread. But why is this invoked is not clear as the connection is already established and several messages are exchanged already.

    Couldn't find any such problem anywhere. Any pointer will be useful.

    https://stackoverflow.com/questions/...sagereceived-s
    Last edited by iammilind; 12th September 2023 at 17:04.

  2. #2
    Join Date
    Jun 2017
    Posts
    5
    Thanked 1 Time in 1 Post
    Qt products
    Qt5 Qt/Embedded
    Platforms
    MacOS X Unix/X11 Windows Android

    Default Re: Why does `QWebSocket` hang upon receiving a specific `binaryMessageReceived()` si

    The issue got fixed after we downgraded Qt6.5 to Qt6.2. After that hang transformed into an `internalSslError()`.

    The issue was due to "Windows Secure Channel" coming along with Qt6.5. With Qt6.2, we were able to link the OpenSSL 1.1.1.

  3. The following user says thank you to iammilind for this useful post:

    d_stranz (16th September 2023)

Similar Threads

  1. Replies: 0
    Last Post: 11th February 2014, 11:39
  2. Replies: 2
    Last Post: 8th August 2012, 11:11
  3. Replies: 1
    Last Post: 23rd January 2010, 22:04
  4. Signal to specific object slot
    By bunjee in forum Qt Programming
    Replies: 2
    Last Post: 27th December 2007, 15:51
  5. Signal / Slot with specific argument and threads
    By tpf80 in forum Qt Programming
    Replies: 3
    Last Post: 14th September 2007, 23:43

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Digia, Qt and their respective logos are trademarks of Digia Plc in Finland and/or other countries worldwide.