Skip to main content

Выключение нод MinIO

Описание проблемы:​

Если выключить, а затем включить одну из сервиса MinIO, затем повторить эти действия для второй и третьей ноды, то метод PGS get_file будет отвечать ошибкой 404 на заведомо существующий файл. Пример лога:

{"event": "File 'StoredObjects/7c54bdf7-1ab4-4597-ba4a-bdbe66e40ea7' not found in the storage. Trying to find another one existing version in storage.", "req_headers": {"Host": "pgs.example.net", "Accept": "*/*", "Connection": "keep-alive", "X-Forwarded-For": "10.22.36.37, 10.22.36.149", "X-Forwarded-Proto": "https", "X-Real-Ip": "10.22.36.149", "Content-Length": "78", "Content-Type": "application/x-www-form-urlencoded", "X-Pgs-Request-Id": "loadtest665688014822923203#Vgh8lS3VZoywTrtEEBFxix1pQWIo9SM4", "X-Co-Request-Id": "loadtest665688014822923203", "X-Tenant-Id": "pgs2134675890", "X-Fs-User-Id": "ae09617ba2684ae6a605697edd7d055d", "X-Fs-Login": "user@server.example.net", "X-Co-App": "co_dcm", "X-Co-Request-Reason": "EditorRestController.openDocument", "X-Fs-Token": "189842a82c4cb4bfb3af836ed37a330e", "X-Client-Useragent": "loadtest", "X-Fs-Group-Id": "2134675890", "Documentid": "7c54bdf7-1ab4-4597-ba4a-bdbe66e40ea7", "X-Method-Name": "openDocument", "Accept-Encoding": "gzip, x-gzip, deflate", "User-Agent": "Apache-HttpClient/5.5.1 (Java/21.0.3)"}, "req_params": {"token": "189842a82c4cb4bfb3af836ed37a330e", "id": "7c54bdf7-1ab4-4597-ba4a-bdbe66e40ea7"}, "cmd": "get_file", "level": "error", "@timestamp": "2026-01-29 12:59:23.726129", "exception": [{"exc_type": "FileNotFoundError", "exc_value": "File not found! e0f51c4f-dcd2-4b4b-8b47-4d84fd3e34be", "exc_notes": [], "syntax_error": null, "is_cause": false, "frames": [{"filename": "/opt/Pythagoras/Aristoteles/presentation/api/endpoints/files_storing.py", "lineno": 675, "name": "get_file", "locals": {}}, {"filename": "/opt/Pythagoras/Aristoteles/infrastructure/services/storage/s3.py", "lineno": 76, "name": "get", "locals": {}}, {"filename": "/opt/Pythagoras/Aristoteles/infrastructure/services/storage/s3.py", "lineno": 165, "name": "_get_obj_data", "locals": {}}], "is_group": false, "exceptions": []}, {"exc_type": "ClientError", "exc_value": "An error occurred (404) when calling the HeadObject operation: Not Found", "exc_notes": [], "syntax_error": null, "is_cause": false, "frames": [{"filename": "/opt/Pythagoras/Aristoteles/infrastructure/services/storage/s3.py", "lineno": 163, "name": "_get_obj_data", "locals": {}}, {"filename": "/usr/local/lib/python3.11/site-packages/botocore/client.py", "lineno": 595, "name": "_api_call", "locals": {}}, {"filename": "/usr/local/lib/python3.11/site-packages/botocore/context.py", "lineno": 123, "name": "wrapper", "locals": {}}, {"filename": "/usr/local/lib/python3.11/site-packages/botocore/client.py", "lineno": 1058, "name": "_make_api_call", "locals": {}}], "is_group": false, "exceptions": []}]}

Решение:​

Необходимо соблюдать временной интервал при включении ноды (не менее 30 минут). Если выключить следующую ноду ранее, чем через 30 минут после включения первой, то возникает ошибка чтения файлов из кластера MinIO.