CorralPeltzer / newTrackon

newTrackon, a public open BitTorrent trackers monitoring tool
https://newtrackon.com
MIT License
599 stars 58 forks source link

"Can't bdecode the HTTP response" error #78

Closed AnimMouse closed 2 years ago

AnimMouse commented 5 years ago

Hello,

What is the meaning of the error "Can't bdecode the HTTP response"? I'm running a tracker using qBittorrent at http://vps.tracker.eu.org:9000/announce and it says it is always down because of that error.

CorralPeltzer commented 5 years ago

Looking at the encoded response from your tracker, with X replacing my IP and port:

d8:intervali1800e5:peersld2:id20:-qB3360-Ji7VZzGyp8KX2:ip20:::ffff:XXX.XXX.XXX.XXX:portiXXXXeeee

The 'peers' fields is not in the compact form (http://www.bittorrent.org/beps/bep_0023.html). newTrackon makes HTTP requests with the parameter compact=1, expects a compact list and doesn't support a normal list. I'm aware that, according to the specification, the compact list is only recommended, the tracker MAY return either format, and clients MUST continue to support both. However, he compact response is supported by most tracker software and it's so widely used that, unless you are intentionally returning a non-compact peers list, I don't think it's worth to implement it. Let me know if that's the case, and I'll work on it.

AnimMouse commented 5 years ago

It seems like that is a problem on the qBittorrent side, anyways, thanks for replying, I will wait when the qBittorrent team implements peers in compact form.

ps. I saw you omit HTTP on the error into "Can't bdecode the response" @ f7e0990e0ac2e7e40d6a21de228ae5120103363f

CorralPeltzer commented 5 years ago

Yes, newTrackon doesn't use any qBittorrent or libTorrent code, I just send a similar peer id so that the requests are not easily identifiable. I will implement non-compact peer responses parsing.

AnimMouse commented 5 years ago

Well, I don't know why qBittorrent still don't implement non-compact peer responses parsing. Maybe because the embedded tracker in qBittorrent is just an afterthought.

AnimMouse commented 4 years ago

Because of that error, it is time to sunset my qBittorrent tracker.

CorralPeltzer commented 4 years ago

I still plan to implement non-compact response compatibility, but cannot commit to a timeline.

FranciscoPombal commented 3 years ago

@AnimMouse

FYI, qBittorrent's embedded tracker has had support for compact peer lists since not long after this issue was originally posted: https://github.com/qbittorrent/qBittorrent/commit/5c7f9530ee4345eb986d612634b22903c22a3609. The earliest tagged release that contains the fix is version 4.2.0.

However, it had a pretty nasty bug that would cause announce failures for some infohashes, which was only fixed about a year later in https://github.com/qbittorrent/qBittorrent/commit/06e1b0727456687b25df73c785d24f4f42eef906. The earliest tagged release that contains this fix is version 4.3.0. The embedded tracker is now in good shape, there are no known serious outstanding bugs.

CorralPeltzer commented 2 years ago

Considering the message above, and that I cannot find any popular trackers returning non-compact list, I don't think there's any value on supporting non-compact responses after all.

newTrackon is already opinionated on several protocol details, this is just one more. I'll clarify newTrackon only understands compact peer list responses.