I'm randomly getting IOError: request data read error
in Django's POST handler while uploading data on 3G network. The question why Django raises that particular exception has already been answered (summary: allegedly happens when client dropped TCP connection). However, in my case I'm trying to solve underlying issue.
From my attempts to narrow down the issue, I've found that:
- not reproducible on WiFi
- not reproducible on GPRS only
- reproducible on various types of handsets (both Android and iPhone) and multiple carriers
- seems to not have happened in some locations
- seems to have happened in other location, especially when I could see the data speed indicator switching between
3G
,H
andH+
(UMTS, HSDPA and HSPA+)
My wild guess is that what happens there is switching towers. So what happens to TCP connection when 3G switches between towers?