{"record":{"id":"6311284e6a743f76","repo":"XX-net/XX-Net","slug":"rangefetch-get-left-begin-d-end-d","errorCode":null,"errorMessage":"RangeFetch get left, begin:%d end:%d","messagePattern":"RangeFetch get left, begin:(.+?) end:(.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"code/default/gae_proxy/local/gae_handler.py","lineNumber":1013,"sourceCode":"                    break\n\n                data_len = len(data)\n                data_readed += data_len\n                if data_len > expect_len:\n                    xlog.warn(\"RangeFetch expect:%d, get:%d\",\n                              expect_len, data_len)\n                    data = data[:expect_len]\n                    data_len = expect_len\n\n                self.put_data(begin, data)\n\n                expect_len -= data_len\n                begin += data_len\n\n            if begin >= end + 1:\n                break\n\n            xlog.warn(\"RangeFetch get left, begin:%d end:%d\", begin, end)\n\n    def close(self):\n        self.keep_running = False\n        with self.lock:\n            self.waiter.notify()\n","sourceCodeStart":995,"sourceCodeEnd":1019,"githubUrl":"https://github.com/XX-net/XX-Net/blob/cfa5bc17b67676e467f37ec50766127e0ab5f0aa/code/default/gae_proxy/local/gae_handler.py#L995-L1019","documentation":"After the inner read loop, the worker still hasn't covered the requested range (begin < end+1): reads ended early and retries within the loop did not complete the span. The worker logs the uncovered begin/end and loops for another retry round.","triggerScenarios":"The read loop for a range ends (empty read or short data) with begin < end+1, so the uncovered portion is logged and the outer while retries the remaining span.","commonSituations":"Same as 76/77: unstable IPs, server dropping range connections, quota errors causing partial range reads.","solutions":["Ensure stable front IPs and healthy appid quota","Retry the download; RangeFetch re-requests the missing span","If repeated to the retry cap, see error 76 handling"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":["Retry the download to cover the missing span","Reduce range size / parallelism against flaky servers"],"tags":["rangefetch","partial-range","retry"],"backgroundTag":"partial-range-download","analyzedSha":"cfa5bc17b67676e467f37ec50766127e0ab5f0aa","analyzedAt":"2026-08-27T19:28:28.225Z","schemaVersion":2},"datasetVersion":"2026-08-28T00:17:15.603Z"}