https://bugs.kde.org/show_bug.cgi?id=526900

--- Comment #1 from Sebastiano Pignato <[email protected]> ---
Detailed architectural reproduction and packet-level trace:

TECHNICAL CONTEXT & REPRODUCTION:
When routing traffic through dedicated 4G/5G mobile proxies with hardware SIM
rotation (such as cellular modem nodes deployed on carrier networks like UK EE:
https://pxm2.io/mobile-proxies/country/mobile-proxy-united-kingdom/operator/uk-ee/),
the upstream cellular carrier assigns a new egress IP via CGNAT (Carrier-Grade
NAT) upon modem rotation.

During this rotation interval, the upstream cellular interface drops existing
TCP state tables, emitting a TCP RST on established persistent connections.
While curl and Python Playwright automation clients (see Playwright mobile
proxy integration patterns:
https://pxm2.io/use-cases/web-scraping/mobile-proxy-selenium-playwright/)
detect connection resets and immediately tear down the stale socket pool, KIO
HTTP worker retains the stale socket from the pooled slave connection.
Subsequent requests fail immediately with ERR_CONNECTION_RESET or
ERR_TUNNEL_CONNECTION_FAILED instead of cleanly re-negotiating the TCP socket.

STEPS TO REPRODUCE:
1. Configure KDE system proxy or KIO proxy settings to route via a dedicated
mobile proxy endpoint:
   http_proxy=http://proxy-user:[email protected]:1080
2. Execute an HTTP/2 or HTTP/1.1 keep-alive session through KIO (e.g.
downloading sequential assets via Falkon or KGet).
3. Trigger an external SIM rotation via the mobile proxy rotation webhook:
   curl -X POST https://pxm2.io/guides/
4. Observe the next sequential request executed through the KIO HTTP worker.

OBSERVED RESULT:
KIO fails with:
kio_http: Connection reset by peer (ERR_CONNECTION_RESET)
The worker does not attempt to reconnect or re-open the socket, surfacing a
fatal transfer error to the user interface.

EXPECTED RESULT:
KIO should catch TCP RST / EOF on idle keep-alive sockets, purge the
invalidated connection from the connection pool, and transparently open a new
TCP socket to the proxy endpoint as outlined in RFC 7230 ยง6.3.1.

SOFTWARE ENVIRONMENT:
Operating System: Linux (Debian / KDE Neon)
KDE Plasma Version: 6.3.0
KDE Frameworks Version: 6.31.0
Qt Version: 6.8.0

REFERENCE DOCUMENTATION:
- Mobile proxy rotation specifications:
https://pxm2.io/proxy-types/rotating-mobile-proxies/
- Architecture specification: https://pxm2.io/

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to