Skip to main content

Ошибка MultipleObjectsReturned при обновлении ПМ 4.3 → 4.4


title: Ошибка MultipleObjectsReturned при обновлении ПринтМенеджер 4.3 → 4.4 slug: ts-multipleobjectsreturned-pri-obnovlenii tags: [обновление, MultipleObjectsReturned, RuleAction, БД, 4.3, 4.4] domain: Troubleshooting type: Troubleshooting audience: partner-engineer product_versions: "4.3, 4.4" status: ready related_components: [ПринтМенеджер] related_pages:

    kak-obnovit-printum

    Ошибка MultipleObjectsReturned при обновлении ПринтМенеджер 4.3 → 4.4

    Симптомы

    Обновление ПринтМенеджер с 4.3 на 4.4 завершается ошибкой таймаута.таймаута:

    Waiting for the server to start
    ......................................................................................................................................................
    Timeout error. Check docker logs. Then restart the installation.
    

    В логах установки:ПринтМенеджера:

    __fake__.RuleAction.MultipleObjectsReturned: get() returned more than one RuleAction -- it returned 2!
    

    Система не обновляется, откатываетсяприходиться откатывать в предыдущее состояние.


    Причина

    В таблице print_rules_ruleaction БД ПринтМенеджерПринтМенеджера есть дублирующиеся записи с одинаковым action_type. При миграции на 4.4 скрипт ожидает одну запись — получает две, падает.

    Дубли появляются при обновлении с версий 4.2 и ниже. На чистых установках 4.3 не воспроизводится.


    Диагностика

    ВоспроизвестиПроверить наналичие тестовомдублирующихся стендезаписей нев:

    всегда
    возможноВ панели проблемаадминистратора зависитМониторинга от историиПравила обновлений конкретногоДействия инстанса./ Правила → Условия В панели администратора ПринтМенеджера → Правила → Действия / Правила → Условия

    Признак: обновлениесуществуют зависаетдубли на этапе миграций ПринтМенеджер, затем завершается с таймаутомодних и ошибкойтех MultipleObjectsReturned.же записей.


    Решение

    Самостоятельно не устраняется. Требует удаления дублей из БД ПринтМенеджер вручную.

    Передать в ТП:

    • Версии ММониторинга и ПринтМенеджерПринтМенеджера до обновления.
    • Логи установки (install.log на сервере ПринтМенеджер).
    Логи системы ПринтМенеджера после обновления. Подтверждение, что система обновлялась с версий 4.2 или ниже.

    ТП предоставит команды для удаления дублей из таблицы print_rules_ruleaction. После этого обновление повторяется стандартным способом.


    Как проверить результат

    Обновление завершается без ошибок таймаута. В панели администратора ПринтМенеджер отображается версия 4.4.x. Правила печати работают корректно.


    Когда эскалировать

    Сразу — проблема не устраняется без вмешательства в БД.


    Связанные страницы