Skip to content

Fix wrong error TorrentNotFound added to logs when Tracker API token is invalid #420

@josecelano

Description

@josecelano

Relates to: #419

I've been checking the logs of the live demo. It's failing because the tracker token is not valid:

2023-12-26T11:00:35.187361844+00:00 [torrust_index::tracker::statistics_importer][INFO] Updating torrent 1 ...
2023-12-26T11:00:35.233911132+00:00 [torrust_index::tracker::service][ERROR] Failed to parse torrent info from tracker response. Body: Unhandled rejection: Err { reason: "token not valid" }
2023-12-26T11:00:35.242595113+00:00 [torrust_index::tracker::statistics_importer][ERROR] Error updating torrent tracker stats for torrent with id 1: TorrentNotFound

There are two issues:

  • Invalid token: Token not valid
  • Wrong logged error: TorrentNotFound

Wrong logged error

The second issue is that all tracker API errors are written into the log as TorrentNotFound errors. That was already documented with a code-review comment in the code:

    pub async fn import_all_torrents_statistics(&self) -> Result<(), database::Error> {
        info!("Importing torrents statistics from tracker ...");
        let torrents = self.database.get_all_torrents_compact().await?;

        for torrent in torrents {
            info!("Updating torrent {} ...", torrent.torrent_id);

            let ret = self.import_torrent_statistics(torrent.torrent_id, &torrent.info_hash).await;

            // code-review: should we treat differently for each case?. The
            // tracker API could be temporarily offline, or there could be a
            // tracker misconfiguration.
            //
            // This is the log when the torrent is not found in the tracker:
            //
            // ```
            // 2023-05-09T13:31:24.497465723+00:00 [torrust_index::tracker::statistics_importer][ERROR] Error updating torrent tracker stats for torrent with id 140: TorrentNotFound
            // ```

            if let Some(err) = ret.err() {
                let message = format!(
                    "Error updating torrent tracker stats for torrent with id {}: {:?}",
                    torrent.torrent_id, err
                );
                error!("{}", message);
            }
        }

        Ok(())
    }

We should log the right reason.

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugIncorrect Behavior

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions