Поймал бесячий баг, когда таймаут отключения торрента больше 1 минуты. В чем суть:
В функции GetTorrent (server/torr/apihelper.go:88) захардкожен вызов AddExpiredTime с 1 минутой
На Preload (server/torr/preload.go:67) и CloseReader (server/torr/torrent.go:255) AddExpiredTime вызывается со значением из конфига.
В итоге получается, когда вызовы из пункта 1 и пункта 2 идут в произвольном порядке во времени (из-за поллингов на клиентах это легко воспроизвести даже при работе с 1 устройства, еще легче с нескольких устройств), то может возникнуть ситуация, когда торрент закроется через минуту, даже если таймаут выставлен, например, 30 минут. То есть, последним оказался вызов на GetTorrent.
Фикс получился простой и вроде логичный. Вряд ли ожидается, что AddExpiredTime может сократить время жизни торрента.
Поймал бесячий баг, когда таймаут отключения торрента больше 1 минуты. В чем суть:
GetTorrent
(server/torr/apihelper.go:88
) захардкожен вызовAddExpiredTime
с 1 минутойPreload
(server/torr/preload.go:67
) иCloseReader
(server/torr/torrent.go:255
)AddExpiredTime
вызывается со значением из конфига.В итоге получается, когда вызовы из пункта 1 и пункта 2 идут в произвольном порядке во времени (из-за поллингов на клиентах это легко воспроизвести даже при работе с 1 устройства, еще легче с нескольких устройств), то может возникнуть ситуация, когда торрент закроется через минуту, даже если таймаут выставлен, например, 30 минут. То есть, последним оказался вызов на
GetTorrent
.Фикс получился простой и вроде логичный. Вряд ли ожидается, что
AddExpiredTime
может сократить время жизни торрента.