Перейти к содержанию

Возможные проблемы и способы их устранения


failed to read expected number of bytes: unexpected EOF

Ошибка связана с работой Docker реестра. Данная проблема была устранена в версии ПО GitFlic 3.3.0

В случае если вы встречаете подобную ошибку в версии ПО GitFlic 3.3.0 и выше , необходимо воспользоваться CLI идущей в комплекте с дистрибутивом ПО GitFlic Подробнее с ПО gitflic-cli , можно ознакомиться на данной странице.

1. Распакуйте архив с ПО GitFlic в любую удобную директорию

unzip gitflic_3.3.0_free.zip

2. Перейдите в директорию cli внутри распакованного архива

cd /path/to/archive/cli

3. Сделайте скрипт gitflic-cli.sh исполняемым

chmod +x ./gitflic-cli.sh

4. Запустите скрипт

./gitflic-cli.sh /path/to/gitflic/properties/application.properties
#Например, ./gitflic-cli.sh /user/admin/gitflic/default-config/application.properties

5. Дождитесь окончания запуска скрипта

2024-02-22 14:36:32.630  INFO 7 --- [           main] o.s.i.channel.PublishSubscribeChannel    : Channel 'application.errorChannel' has 1 subscriber(s).
2024-02-22 14:36:32.631  INFO 7 --- [           main] o.s.i.endpoint.EventDrivenConsumer       : started bean '_org.springframework.integration.errorLogger'
shell:>

6. Ведите команду fix docker manifest и дождитесь выполнения.

7. После успешного выполнения выйдите из приложения комбинацией клавиш ctrl+c

psql: error obtaining MAC configuration for user

Ошибка означает что БД не может верно определить метку безопасности пользователя.

Для устранения необходимо проверить есть ли у пользователя который запускает СУБД (postgres по умолчанию) необходимые права на чтение и исполнение необходимых директорий

sudo getfacl /etc/parsec/macdb/
sudo getfacl /etc/parsec/capdb/

Запись в выводе user:postgres:r-x

Если данной записи в выводе нет, необходимо задать необходимые права

sudo setfacl -R -m u:postgres:rx /etc/parsec/capdb
sudo setfacl -R -m u:postgres:rx /etc/parsec/macdb

Проверьте результат перезапуском приложения.

Если ошибка осталась

Установите валидные уровни конфиденциальности для пользователя согласно официальной инструкции

Отсутствуют RSA ключи стандарта PKCS8 попробуйте добавить их указав пути gitflic.vault.cert.privateKey и gitflic.vault.cert.publicKey в application.properties

Использование данных ключей связано с работой Vault, SAML OIDC, подписи контейнеров, подписи токенов в CI. Поля gitflic.vault.cert.privateKey и gitflic.vault.cert.publicKey являются обязательными.

Если эта проблема возникла во время обновления с версии 3.x.x:

Нужно с помощью утилиты [keys-retriever.jar](https://gitflic.ru/project/gitflic/keys-retriever/blob/raw?file=keys-retriever.jar) извлечь ключевую пару из текущей инсталляции ПО Gitflic.

Подробнее про обновление с версии 3.х.х

Для новых инсталляций начиная с версии 4.x.x:

1. Создать приватный ключ при помощи утилиты **openssl** командой: `openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048`
2. Создать публичный ключ при помощи утилиты **openssl** командой: `openssl rsa -pubout -in private_key.pem -out public_key.pem`
3. После создания пары ключей, необходимо указать путь до этих файлов в **application.properties** в параметры gitflic.vault.cert.privateKey и gitflic.vault.cert.publicKey

org.springframework.dao.InvalidDataAccessResourceUsageException

Данная ошибка связана с настройками используемого PostgreSQL.

В первую очередь необходимо выполнить диагностику параметра standard_conforming_strings именно в той базе данных и под тем пользователем PostgreSQL, под которым работает приложение.

Требуется выполнить в консоли БД следующие команды:

``` show standard_conforming_strings;

select current_setting('standard_conforming_strings'); ```

Ожидаемый ответ для обеих команд: on.

Для определения источника, из которого определяется значение параметра необходимо выполнить команду в консоли БД:

select 
  name,
  setting,
  source,
  sourcefile,
  sourceline,
  pending_restart
from pg_settings
where name = 'standard_conforming_strings';
  • Если source = 'configuration file', параметр задан в конфигурационном файле PostgreSQL.
  • Если source = 'database', параметр переопределён на уровне базы данных.
  • Если source = 'user', параметр переопределён на уровне пользователя/роли.
  • Если source = 'client' или source = 'session', параметр задаётся при подключении или уже внутри сессии.

Для управления активации функции через конфигурационный файл, необходимо определить где он находится в системе. Узнать это можно при помощи команд:

show config_file;
show data_directory;

В ответе будет именно тот postgresql.conf, который использует данный экземпляр PostgreSQL.

В используемом конфигурационном файле должно быть установлено:

standard_conforming_strings = on

После изменения конфигурации необходимо применить её:

select pg_reload_conf();

Либо выполнить перезапуск PostgreSQL, если это требуется регламентом эксплуатации. После этого перезапустите GitFlic.