<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang=EN-GB link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>I have this one, strange problem with QWebSocketServer that is driving me insane.</p><p class=MsoNormal>My project is a very simple, websocket-based online game server. It uses Qt SQL modules and makes use of some light QEvent'ing.</p><p class=MsoNormal>Up until recently I used uWebSockets to drive my wss communications. To make matters simpler to me I decided to reimplement 'network' part of the application using Qt native module - QWebSocketServer.</p><p class=MsoNormal>It generally works nice - it survives my naive fuzzing tech and cleanly integrates with Qt's event loop.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>But here is the thing.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>It randomly, without any error, stops accepting incoming connections. This is VERY hard for me to debug. It happens anywhere between 8 to about 60ish hours after I start my debian unit with systemctl and is fixed immediately when I restart it's service.</p><p class=MsoNormal>I'm connected to every possible error related signal from QWebSocketServer interface, ssl or otherwise - nothing is emited when this happens.</p><p class=MsoNormal>When I ssh to my server I see nominal CPU and memory usage - no leaks, infinite loops or other fun things.</p><p class=MsoNormal>I recently used QObject's timerEvent to spam some qInfos into sys logs. I log:</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>void i9ms::Server::dumpServerStatus() const</p><p class=MsoNormal>{</p><p class=MsoNormal>                qInfo() << "[Server status]"</p><p class=MsoNormal>                                                << "isListening:" << m_wsServer->isListening()</p><p class=MsoNormal>                                                << "hasPendingConnections:" << m_wsServer->hasPendingConnections()</p><p class=MsoNormal>                                                << "errorString:" << m_wsServer->errorString();</p><p class=MsoNormal>}</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Right now, at the time of writing this message, the server is 'frozen' for about 5 hours and all I see in logs are lines:</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Apr 03 16:56:12 vps504293 mrserver_release[22148]: [info    ]         [Server status] isListening: true hasPendingConnections: false errorString: ""</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Problem goes away when I return to uWebSockets-based wss implementation. I let the test server run on it for weeks without problems.</p><p class=MsoNormal>I have tested this on Ubuntu 18.04.2 LTS and Debian 9 both provided 'as-is' from my VPS provider - OVH.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I appreciate any feedback or help, have no idea where to go from here. I could possibly try master or 5.12.X branches but this will force me to add 'another configure step' for deployment and is not trival.<o:p></o:p></p></div></body></html>