If a request to a currently downloading file wants "range=0-" (http-header) it seems that Phex replies with range unavailable but doesn't send its ranges (at least the remote phex doesn't learn about them).
Instead I think it should return as much of the file as it can (everything it has from the beginning of the file until the first hole). That way the download mesh could start much faster.
This could be related to files which get requested without TigerTree data.
PS: me = ArneBab, not logged in since not at home.
If possible could you please attach a full HTTP request/response handshake
I tried to get one but failed at trying to enable logging (logback-....xml).
How can I enable the handshake info (there once were buttons I could activate)?
http://www.gnutellaforums.com/250636-post6.html
091029 15:36:38,0777::Max downloads for candidate IP already reached.
091029 15:36:40,0778::Max downloads for candidate IP already reached.
091029 15:36:41,0836::Allocating as good candidate.
091029 15:36:41,0836::Wait for connect slot 91.89.37.123:36953
091029 15:36:41,0836::Connecting to 91.89.37.123:36953
091029 15:36:41,0836::Setting status to Verbinde... and raise timeout from 1256827001836 to 1256827001836(0) Reason:null. OldStatus: WAITING
091029 15:36:41,0852::Connected successfully to 91.89.37.123:36953.
091029 15:36:41,0852::Start download.
091029 15:36:41,0852::Moving candidate to good list.
091029 15:36:41,0852::Setting status to Waiting for segments... and raise timeout from 1256827001852 to 1256827001852(0) Reason:null. OldStatus: CONNECTING
091029 15:36:41,0852::Allocated segment: phex.download.swarming.SWDownloadSegment[start: 207618535, so far: 0 of 16384]@293357433
- [DownloadScope: start:207618535,end:207634918@8c083c92]
091029 15:36:41,0852::Setting status to Anfrage... and raise timeout from 1256827001852 to 1256827001852(0) Reason:null. OldStatus: ALLOCATING_SEGMENT
091029 15:36:41,0853::HTTP Request:
GET /uri-res/N2R?urn:sha1:LTVBAVRLRZFEGTYVMLLECBBEORWXEFJX HTTP/1.1
User-Agent: Phex 3.4.2.116
Host: 91.89.37.123:36953
Range: bytes=207618535-207634918
X-Queue: 0.1
Connection: Keep-Alive
X-Alt: edrikor.dyndns.org:8000
X-Node: 91.89.37.123:9846
Chat: 91.89.37.123:9846
091029 15:36:42,0094::HTTP Response:
HTTP/1.1 416 Requested Range Not Available
Server: Phex 3.4.2.116
X-Available-Ranges: bytes
091029 15:36:42,0094::Set vendor to: Phex 3.4.2.116
091029 15:36:42,0095::Release segment: phex.download.swarming.SWDownloadSegment[start: 207618535, so far: 0 of 16384]@293357433
- [DownloadScope: start:207618535,end:207634918@8c083c92]
091029 15:36:42,0095::phex.download.RangeUnavailableException: RangeUnavailableException
091029 15:36:42,0095::Download failed.
091029 15:36:42,0095::Setting status to Segment nicht verfügbar. Warte 0:00. and raise timeout from 1256827002095 to 1256827062095(60000) Reason:null. OldStatus: REQUESTING
091029 15:36:42,0095::No download segment available.
though in this case Phex requests a range.
The problem rather seems to be in the uploader:
Server: Phex 3.4.2.116
X-Available-Ranges: bytes
It has about 50% of the file.
Yes if no Tiger Tree data is known nothing of the download is "finished" yet - since not verified - and therefore not reported as available.
Could it be, that Phex doesn't accept a Tiger Tree from a source other than the first one?
(even after one of my nodes finished downloading (so it should have had a TigerTree locally), the others didn't start dishing out partial content).
can they start exchanging at once, when tehy get a bitprint in the magnet (with tth urn)?
Or do headers like these suffice? (it doesn't take the X-Alts )
-> 091030 00:18:51,0097::HTTP Response:
HTTP/1.0 200 OK
Server: BaseHTTP/0.3 Python/2.6.2
Date: Thu, 29 Oct 2009 23:18:50 GMT
Content-Type: application/binary
X-Alt: 91.89.37.123:10257, 91.89.37.123:9846, 91.89.37.123:36953
X-Gnutella-Alternate-Location: http://91.89.37.123:10257/uri-res/N2R?urn:sha1:LTVBAVRLRZFEGTYVMLLECBBEORWXEFJX
X-Gnutella-Alternate-Location: http://91.89.37.123:9846/uri-res/N2R?urn:sha1:LTVBAVRLRZFEGTYVMLLECBBEORWXEFJX
X-Gnutella-Alternate-Location: http://91.89.37.123:36953/uri-res/N2R?urn:sha1:LTVBAVRLRZFEGTYVMLLECBBEORWXEFJX
X-Thex-URI: /uri-res/N2X?urn:sha1:LTVBAVRLRZFEGTYVMLLECBBEORWXEFJX;7JBN4M467BPTFSJAPUTVJMJZJSSEMZUHPLEJK2Y=
Connection: Keep-Alive
X-Gnutella-Content-URN: urn:sha1:LTVBAVRLRZFEGTYVMLLECBBEORWXEFJX
Content-Length: 10485760
Content-Range: bytes 624721920-635207679/854537054