Perforce после обновления больше не запускается

После обновления Perforce он больше не запустится. Я исправил несколько вещей, например добавил переменную env P4PORT в файл master.conf. Раньше в этом не было необходимости. Я также вручную восстановил БД из последнего файла журнала. Кроме того, если я запускаю p4d в командной строке, он работает нормально с пустой базой данных.

Вот текущие ошибки, которые я получаю:

× helix-p4dctl.service - LSB: Starts all Perforce services
     Loaded: loaded (/etc/init.d/helix-p4dctl; generated)
     Active: failed (Result: exit-code) since Thu 2024-05-30 09:45:30 EDT; 1h 49min ago
       Docs: man:systemd-sysv-generator(8)
    Process: 7496 ExecStart=/etc/init.d/helix-p4dctl start (code=exited, status=1/FAILURE)
        CPU: 39ms

May 30 09:45:28 myserver p4dctl[7505]: error:         Connect to server failed; check $P4PORT.
                                                          connect: 127.0.0.1:1666: Connection refused
May 30 09:45:28 myserver p4dctl[7507]: error:         Connect to server failed; check $P4PORT.
                                                          connect: 127.0.0.1:1666: Connection refused
May 30 09:45:28 myserver p4dctl[7508]: error:         Connect to server failed; check $P4PORT.
                                                          connect: 127.0.0.1:1666: Connection refused
May 30 09:45:29 myserver p4dctl[7509]: error:         Connect to server failed; check $P4PORT.
                                                          connect: 127.0.0.1:1666: Connection refused
May 30 09:45:30 myserver p4dctl[7501]: error:         'master' p4d: '/opt/perforce/sbin/p4d -p ssl:localhost:1666' exited with status 255.
May 30 09:45:30 myserver p4dctl[7501]: Started 0 services.
May 30 09:45:30 myserver p4dctl[7501]: error:         Not all services started successfully.
May 30 09:45:30 myserver systemd[1]: helix-p4dctl.service: Control process exited, code=exited, status=1/FAILURE
May 30 09:45:30 myserver systemd[1]: helix-p4dctl.service: Failed with result 'exit-code'.
May 30 09:45:30 myserver systemd[1]: Failed to start LSB: Starts all Perforce services.

Мой конфигурационный файл:

#-------------------------------------------------------------------------------
# p4dctl configuration file for Helix Core Server
#-------------------------------------------------------------------------------

p4d master
{
    Owner    =  perforce
    Execute  =  /opt/perforce/sbin/p4d
    Umask    =  077

    # Enabled by default. 
    Enabled  =  true

    Environment
    {
        P4PORT    =     ssl:localhost:1666
        P4ROOT    =     /opt/perforce/servers/master/root
        P4USER    =     super
        P4SSLDIR  =     ssl
        PATH      =     /bin:/usr/bin:/usr/local/bin:/opt/perforce/bin:/opt/perforce/sbin

        # Enables nightly checkpoint routine
        # This should *not* be considered a complete backup solution
        MAINTENANCE =   true
    }
}
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
90
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Посмотрите в файле журнала экземпляра P4D (возможно, вы захотите настроить P4LOG для регистрации в файле; по умолчанию используется stderr) на предмет ошибки, возникающей при запуске. Ошибки запуска сервера почти всегда являются одними из следующих:

  • вам нужно запустить p4d -xu для переноса базы данных (исправление: сделайте это)
  • срок действия вашей лицензии истек, поэтому вы не имеете права на обновления (исправление: либо понизить версию, либо продлить лицензию)

Я добавил P4LOG = /var/log/perforce/p4err в свой файл master.conf, но в файл ничего не было выведено.

cnobile 31.05.2024 19:23

Может быть, проблема с разрешением на этом пути? Я бы попробовал просто запустить p4d -r /opt/perforce/servers/master/root -p ssl:localhost:1666 -L stderr, чтобы посмотреть, какую ошибку вы получаете при запуске, а затем отладить проблему с журналом после того, как ваш сервер заработает.

Samwise 31.05.2024 20:14

Таким образом, исправлением было изменение разрешений для каталога SSL и двух файлов в нем. Я нашел это в файле журналов/журнала. Спасибо, вы заставили меня искать в правильном направлении. Единственная проблема теперь заключается в том, что раньше я мог выполнять все суперкоманды от имени себя, теперь мне фактически приходится заходить на сервер как супер.

cnobile 01.06.2024 22:43

Это должно быть так же просто, как chown (если вы говорите о разрешениях локальной файловой системы) или предоставить себе дополнительные разрешения через p4 protect (если вы говорите о разрешениях в Perforce).

Samwise 01.06.2024 22:45

Там всего два пользователя плюс супер. Мое имя пользователя никогда не было в БД, но я всегда мог делать со своим именем все, что хотел, похоже, это изменилось в последнем обновлении.

cnobile 01.06.2024 22:53

Это означает, что у вас не определена таблица защиты. Я предполагаю, что это было не обновление как таковое, а побочный эффект того, что вы сделали для установки обновления (т. е. вы или какой-то инструмент, который вы использовали, впервые запустился p4 protect в качестве пользователя super). Опять же, легко исправить: запустите p4 protect и измените super user super * //... на super user * * //....

Samwise 01.06.2024 23:03

Другие вопросы по теме