Особенности обновления с версии 1.18.1 на версию 1.19.0
При обновлении с версии 1.18.1 на версию 1.19.0 выполните дополнительные действия и настройки, описанные в разделах ниже.
Ошибка «Недостаточно прав для просмотра этого раздела» при попытке доступа к разделу в пользовательском интерфейсе «Кабинет администратора» (сбой валидации Liquibase)
После обновления компонентов продукта может возникать ошибка «Недостаточно прав для просмотра этого раздела», которая не связана с настройками пользовательских прав, а указывает на сбой в процессе валидации миграций базы данных.
Контекст и причина возникновения
Ошибка возникает только после обновления на версию 1.19.0 при попытке доступа к любому разделу пользовательского интерфейса «Кабинет администратора».
При этом в логах сервиса osmax-core присутствует сообщение вида:
Caused by: liquibase.exception.ValidationFailedException: Validation Failed:
<XX> changesets checksum
db/.../filename.yml::...
db/.../filename.yml::...
db/.../filename.yml::...
Ошибка возникает из-за обновления внутренних алгоритмов расчета MD5-сумм файлов миграции: старые значения md5sum, записанные в таблицу osmax_schema.databasechangelog при предыдущих миграциях, больше не соответствуют новым расчетам. Поэтому Liquibase блокирует запуск сервиса, считая миграции неподтвержденными или поврежденными.
При этом в интерфейсе «Кабинет администратора» отображается ошибка «Недостаточно прав для просмотра этого раздела» — это следствие, а не причина.
Инструкция по восстановлению работоспособности
Для восстановления работоспособности сервиса osmax-core:
-
Проверьте лог на наличие ошибок валидации:
cat /var/log/osmax/core/osmax-core.log | grep "Validation Failed"
В выводе найдите строки с
changesets checksumи зафиксируйте имена файлов.Очистку md5sumнеобходимо выполнять только для файлов, указанных в логе. Список в инструкции ниже приводится исключительно для примера. Используйте только те файлы, записи о которых фактически содержатся в логе сервисаosmax-core. -
Остановите сервис
osmax-core:systemctl stop osmax-core
Убедитесь, что сервис остановлен и находится в статусе
inactive (dead):systemctl status osmax-core
-
Выполните необходимые действия по созданию резервных копий (например, сохраните текущий лог, создайте дамп таблицы
databasechangelog). -
Сбросьте
md5sumтолько для файлов, указанных в логе.
Для этого выполните для файлов, найденных на шаге 1, запрос вида:UPDATE osmax_schema.databasechangelog SET md5sum = NULL WHERE filename IN ( 'db/.../filename.yml', 'db/.../filename.yml' );Пример запроса:
UPDATE osmax_schema.databasechangelog SET md5sum = NULL WHERE filename IN ( 'db/1.5.0/2024-02-22--04-app_config.change_default_schedules_config.yml', 'db/1.5.0/2024-03-15--10-insert.user_session_history_schedule.yml', 'db/1.6.0/2024-05-06--16-insert.install_agent_task_settings.yml', 'db/1.7.0/2024-06-18--08-insert.ldap_attr_settings.yml', 'db/1.8.0/2024-07-01--01-insert.software_inventory_sync_schedule.yml', 'db/1.9.0/2024-07-11--01-insert.inventory.collection_configuration.yml', 'db/1.9.0/2024-07-10--03-insert.app_config.ldap_sync_delta_schedule.yml', 'db/1.9.0/2024-07-10--04-insert.app_config.ldap_sync_schedule.yml', 'db/1.14.0/2025-01-08--05-insert.app_config.access_zones_defaults.yml', 'db/1.15.0/2025-05-15--01-insert.app_config.access_zones_refresh_schedule.yml', 'db/1.16.0/2025-06-05--01-insert.app_config.new_format_uninstalled_config_metrics_param.yml', 'db/1.16.0/2025-06-04--01-insert.app_config.osmax.metrics.calculation.cron.yml', 'db/1.16.0/2025-06-18--01-insert.app_config.osmax.inventory.software.sync_cache_data.yml', 'db/1.16.0/2025-07-24--01-insert.app_config.result_expiration_interval.yml', 'db/1.17.0/2025-09-18--01-insert.app_config.linked-devices-flag.yml', 'db/1.18.0/2025-12-04--01-insert.app_config.result_expiration_interval_for_files.yml' );Пример выше — только иллюстрация. Замените имена файлов на те, что содержатся в логе. Не копируйте список из этой инструкции, так как он может не совпадать с вашей версией или окружением. -
Запустите сервис
osmax-core:systemctl start osmax-core
Убедитесь, что сервис запущен и находится в статусе
active (running):systemctl status osmax-core
-
Проверьте лог на наличие ошибок валидации:
cat /var/log/osmax/core/osmax-core.log | grep "Validation Failed"
-
Проверьте доступность разделов в пользовательском интерфейсе «Кабинет администратора».