Opened 10 years ago

Closed 10 years ago

Last modified 8 years ago

#4933 closed Bug (invalid)

transmisson send invalid statistics to provate trackers when bandwidth limit is changed

Reported by: blacklion Owned by: jordan
Priority: Normal Milestone: None Set
Component: libtransmission Version: 2.51
Severity: Major Keywords:


I've been banned on private tracker, and admins says, that my account sometimes uploads at 300Mbit/s speed (with 40Mbit/s internet connection).

Also, I was said that it is known issue with transmission -- it could send unbelievable statistics before exit or when bandwidth limits are changed with active torrents and they force me to change client.

It seems, that transmission calculates upload speed in very narrow time window, and when limits are removed (for example, "alternative" bandwidth settings which is very low is switched off, when "normal" settings is unlimited) it fill up (large) network buffers in fraction of second and reports wrong upload speed after that.

Change History (4)

comment:1 Changed 10 years ago by cfpp2p

  • Resolution set to invalid
  • Status changed from new to closed

... it could send unbelievable statistics before exit or when bandwidth limits are changed with active torrents ...


announce doesn't send the kinds of data you describe.

static tr_announce_request *
announce_request_new( const tr_announcer  * announcer,
                      const tr_torrent    * tor,
                      const tr_tier       * tier,
                      tr_announce_event     event )
    tr_announce_request * req = tr_new0( tr_announce_request, 1 );
    req->port = tr_sessionGetPublicPeerPort( announcer->session );
    req->url = tr_strdup( tier->currentTracker->announce );
    req->tracker_id_str = tr_strdup( tier->currentTracker->tracker_id_str );
    memcpy( req->info_hash, tor->info.hash, SHA_DIGEST_LENGTH );
    memcpy( req->peer_id, tor->peer_id, PEER_ID_LEN );
    req->up = tier->byteCounts[TR_ANN_UP];
    req->down = tier->byteCounts[TR_ANN_DOWN];
    req->corrupt = tier->byteCounts[TR_ANN_CORRUPT];
    req->leftUntilComplete = tr_torrentHasMetadata( tor )
            ? tor->info.totalSize - tr_cpHaveTotal( &tor->completion )
            : ~(uint64_t)0;
    req->event = event;
    req->numwant = event == TR_ANNOUNCE_EVENT_STOPPED ? 0 : NUMWANT;
    req->key = announcer->key;
    req->partial_seed = tr_cpGetStatus( &tor->completion ) == TR_PARTIAL_SEED;
    tier_build_log_name( tier, req->log_name, sizeof( req->log_name ) );
    return req;

comment:2 Changed 10 years ago by blacklion

Ok, it means, that my analysis is completely wrong. But bugreport is valid: some private trackers ban transmission due to this problem. I'm trying to get some example of bogus data from tracker's owners, but without success yet :(

comment:3 Changed 8 years ago by lazybones

Transmission (All versions above 2.03 including web-gui versions) Accoding to one private tracker.

comment:4 Changed 8 years ago by lazybones

I was just banned from a private tracker for the same reason... they wont state more than transmission is sending invalid statistics.

Note: See TracTickets for help on using tickets.