Details
-
Bug
-
Resolution: Done
-
P2: Important
-
4.8.6, 5.3.2
-
None
-
Compiler: MSVC 2010
OS: Windows 7 PRO SP1 x64, Windows 8.1 PRO x64
OpenVPN 2.3.4 (x64 version)
-
2580192defddb4afc0281b6097b8a3c5271412e7 in qt5; 8c828dcba954b3168a7bef7ce6af17b5bdac5500 in qt 4
Description
I have QUdpSocket object bound to a port, and I use it both for sending and receiving datagrams. But when my app receive ICMP 'TLL Exceeded' message, the communiction stops. Since then no packet is received, even if I see network traffic. The CPU usage raises, but the application remains responsive - user can click buttons and perform other actions.
The ICMP TTL Exceeded message for UDP sockets is hard to repoduce - I manged to get it only for OpenVPN connections, when firewall is turned off.
To reproduce this bug:
1. Download and install OpenVPN from https://openvpn.net/index.php/download/community-downloads.html
2. Copy 4 attached files: vpn_test.ovpn, vpn_test.key, vpn_test.pem, vpn_test.cert to your OpenVPN config subdirectory.
3. Start OpenVPN and click Connect (only one connection for this certifate is allowed).
4. Turn off firewall - this is very important !!!
5. Build & run 'qudpsocket_ttl_exceeded_bug' app.
6. Open taskmgr and check current cpu usage.
7. Set high value of TTL eg. 100 and click Test - CPU usage should be low.
8. Now set low value of TTL eg. 3 to generate ICMP 'TTL Exceeded' message, and click Test - CPU usage will raise, and will be high until app is closed.
Attachments
Issue Links
- duplicates
-
QTBUG-39080 High CPU usage after Broadcasting over a QUdpSocket
- Reported
For Gerrit Dashboard: QTBUG-41934 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
97607,2 | Windows native socket: handle WSAENETRESET the same as WSAECONNRESET | 5.4 | qt/qtbase | Status: MERGED | +2 | 0 |
97774,2 | Windows native socket: handle WSAENETRESET the same as WSAECONNRESET | 4.8 | qt/qt | Status: MERGED | +2 | 0 |