You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Channels system supports regenerating one's personal channel in case of e.g. Tribler folder loss or channel torrent corruption. To do so, every ChannelMetadata entry includes the start_timestamp which sets the lower bound of timestamps during the processing of .mdblobs in the channel torrent dir.
However, there is no procedure for removing entries with timestamps lower than start_timestamp. As the result, there could be a situation when, for example:
the author adds torrent A into their channel. start_timestamp is 100, timestamp is 102.
the user downloads the channel and adds torrents A into their DB.
the author loses their channel folder and re-creates their channel by adding torrents B into it. This time, start_timestamp is 200, timestamp is 202
the user downloads the new version of the channel and adds B to their DB. Thus, the user will have both A and B in their local DB, which is incorrect, because the author's new version contains only B.
To fix it, we should add a procedure to remove all the obsolete content from the channel on update. Unfortunately, the procedure will be very data-intensive for big channels, since we'll have to limit the removal by the top-level channel id, resolving an entry's parents recursively. Otherwise, we could accidentally remove entries from another channel by the same user.
The text was updated successfully, but these errors were encountered:
Channels system supports regenerating one's personal channel in case of e.g. Tribler folder loss or channel torrent corruption. To do so, every ChannelMetadata entry includes the
start_timestamp
which sets the lower bound of timestamps during the processing of.mdblob
s in the channel torrent dir.However, there is no procedure for removing entries with timestamps lower than
start_timestamp
. As the result, there could be a situation when, for example:start_timestamp
is 100,timestamp
is 102.start_timestamp
is 200,timestamp
is202
This problem is the most probable cause of #6395
To fix it, we should add a procedure to remove all the obsolete content from the channel on update. Unfortunately, the procedure will be very data-intensive for big channels, since we'll have to limit the removal by the top-level channel id, resolving an entry's parents recursively. Otherwise, we could accidentally remove entries from another channel by the same user.
The text was updated successfully, but these errors were encountered: