Ошибки на сателите

Сегодня утром получил такое сообщение:

Your Storage Node on the saltlake Satellite was suspended because it produced errors too often during audits.

You were suspended on 2022-05-27 at 02:46 UTC.

Что надо подправить/проверить? На английской части форума я конкретных ответов не нашёл.

Ошибку в логе с этим сателитом я нашёл такую:
2022-05-27T05:46:41.244+0300 ERROR piecestore download failed {“Piece ID”: “OGLW6PIVEIYUIK3VL4GVOLXU6GE52P2GDIHURGZBJ4YI7C255HSQ”, “Satellite ID”: “1wFTAgs9DP5RSnCqKV1eLf6N9wtk4EAtmN5DpSxcs8EjT69tGE”, “Action”: “GET_REPAIR”, “error”: “used serial already exists in store”, “errorVerbose”: “used serial already exists in store\n\tstorj.io/storj/storagenode/piecestore/usedserials.insertSerial:263\n\tstorj.io/storj/storagenode/piecestore/usedserials.(*Table).Add:117\n\tstorj.io/storj/storagenode/piecestore.(*Endpoint).verifyOrderLimit:76\n\tstorj.io/storj/storagenode/piecestore.(*Endpoint).Download:498\n\tstorj.io/common/pb.DRPCPiecestoreDescription.Method.func2:228\n\tstorj.io/drpc/drpcmux.(*Mux).HandleRPC:33\n\tstorj.io/common/rpc/rpctracing.(*Handler).HandleRPC:58\n\tstorj.io/drpc/drpcserver.(*Server).handleRPC:122\n\tstorj.io/drpc/drpcserver.(*Server).ServeOne:66\n\tstorj.io/drpc/drpcserver.(*Server).Serve.func2:112\n\tstorj.io/drpc/drpcctx.(*Tracker).track:52”}

И в добавок в логе довольно таки много ошибок следующего типа:
2022-05-25T18:30:18.506+0300 ERROR collector unable to delete piece {“Satellite ID”: “12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs”, “Piece ID”: “SUQBEOS74QRSAFOR4EQDY2PILOFNWC4IK54OQV6PZQJSSAMVSLIA”, “error”: “pieces error: filestore error: file does not exist”, “errorVerbose”: “pieces error: filestore error: file does not exist\n\tstorj.io/storj/storage/filestore.(*blobStore).Stat:103\n\tstorj.io/storj/storagenode/pieces.(*BlobsUsageCache).pieceSizes:239\n\tstorj.io/storj/storagenode/pieces.(*BlobsUsageCache).Delete:220\n\tstorj.io/storj/storagenode/pieces.(*Store).Delete:299\n\tstorj.io/storj/storagenode/collector.(*Service).Collect:97\n\tstorj.io/storj/storagenode/collector.(*Service).Run.func1:57\n\tstorj.io/common/sync2.(*Cycle).Run:152\n\tstorj.io/storj/storagenode/collector.(*Service).Run:53\n\tstorj.io/storj/private/lifecycle.(*Group).Run.func2.1:87\n\truntime/pprof.Do:40\n\tstorj.io/storj/private/lifecycle.(*Group).Run.func2:86\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57”}

Может это тоже связано с отключением сетелита?

P.S. опять же по логам на этот сателит есть и аплоад, и даунлоад. Т.е. вроде как сателит работает, хотя и пишет что остановлен.

Hi @semkd
The two errors shown, only the first one is for Saltlake (1wFTAgs9DP5RSnCqKV1eLf6N9wtk4EAtmN5DpSxcs8EjT69tGE). Looking at each in turn though…

“GET_REPAIR”, “error”: “used serial already exists in store”

This is an unusual error which only started appearing with an older version of the node software, 1.50.4. Please check your node is up to date. If not report back and it may need further investigation.

This is an error from the filewalker/cleanup process which should stop showing after 7 days but doesn’t affect the node or it’s audit/online/suspension scores.

P.P.S. Спустя где-то пол дня после получения сообщения о приостановке сателита (как я уже писал выше, по логам он вроде как рабочий) всё внезапно пришло в норму и сателит вернулся в своё 100%-е состояние. Кстати, в англоязычной части форума я нашёл “совет”, что надо просто подождать и теоретически всё должно само востановиться. Единственное, что я сделал после того, как увидел сообщение об остановке, так это сделал рестарт сервиса Storj node.

И вопрос я бы переформулировал следующим образом: из-за чего всё таки произошла остановка сателита, если нода всё время онлайн (кроме ребутов по обновлению ОС)?

The answer is in the suspension error notification (above). It notes that although the node was online during audits the node responded with errors. It could be a slow time for response from the node or not a complete response. However it was not an issue with data integrity or the audit score would be affected, and not an issue with being online or that score would have been affected.

Ошибка не на сателлите, а на узле, когда этот сателлит проверял ваш узел или скачивал кусочки для восстановления.
Приостанавливался не сателлит, а узел для этого сателлита - то есть никакие загрузки от клиентов этого сателлита на ваш узел не попадали, пока ваш узел не стал отвечать нормально.

Причина приостановки узла на этом сателлите - suspension score оказался ниже 60%, как только этот индикатор становится больше 60% - сателлит возобновляет работу узла.
Suspension score уменьшается каждый раз, когда ваш узел вместо запрошенного кусочка возвращает ошибку, в данном случае

Эта ошибка возникала на старых версиях storagenode, сейчас она не должна возникать, если ваш узел на текущей версии 1.55.1
см. "GET_REPAIR”, “error”: “used serial already exists in store”
Когда ваш узел отвечает нормально и отдаёт запрошенный кусочек - suspension score увеличивается.

Эта ошибка не влияет на audit score или suspension score, как правильно заметил @Stob
Она должна исчезнуть через 7 дней. Если она будет повторяться и через 7 дней, тогда вы можете использовать такой хак:

В принципе всё понятно и какая-то проблема скорее всего была на уровне провайдера, я так думаю, потому что проблем со связью у себя я не замечал. Значит, самому что-то подправить или починить вряд ли получится и надо было просто подождать, пока всё само востановится. Не могу же я как-то “подёргать за провода” и связь с сателитом востановится :slight_smile:

Исходя из найденных ошибок - это не связано с сетью.

  • "error": "used serial already exists in store" - это баг в storagenode https://github.com/storj/storj/issues/4687, ожидается что он уже исправлен в новых версиях.

А эта ошибка вообще не влияет на suspension score:

Решение для обоих - просто подождать. С успешными ответами на аудиты suspension score быстро восстанавливается, а вторая должна пропасть через 7 дней. Ну и убедиться, что у вас свежая версия storagenode.

Версия вроде последняя: 1.55.1. Работает storagenode-updater.