Falha no launcher: linha 334: byte NULL ignorado

A reconstrução atual do web-app falha com este erro:

root@docker2:/var/discourse# ./launcher stop web_only && ./launcher rebuild data && ./launcher rebuild web_only
x86_64 arch detected.
+ /usr/bin/docker stop -t 600 web_only
web_only
x86_64 arch detected.
Ensuring launcher is up to date
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 600 data
data
./launcher: Zeile 334: Warnung: Kommandoersetzung: NULL-Byte in der Eingabe ignoriert.
2.0.20240825-0027: Pulling from discourse/base
Digest: sha256:6de68cb49198b5281f79ed9401b3fe818c854d220dcf0238549fe2f2adb19146
Status: Image is up to date for discourse/base:2.0.20240825-0027
docker.io/discourse/base:2.0.20240825-0027
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2024-10-04T15:54:02.326983 #1]  INFO -- : Reading from stdin
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/cli.rb:54:in `split': invalid byte sequence in UTF-8 (ArgumentError)

        split = conf.split("_FILE_SEPERATOR_")
                           ^^^^^^^^^^^^^^^^^^
        from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/cli.rb:54:in `run'
        from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/bin/pups:9:in `<top (required)>'
        from /usr/local/bin/pups:25:in `load'
        from /usr/local/bin/pups:25:in `<main>'
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.

Alguma ideia de como corrigir isso? Meu fórum está indisponível após esta nova implantação :worried:

1 curtida

Você deve conseguir colocá-lo de volta em funcionamento com

./launcher start app

Isso reiniciará o contêiner antigo.

Não sei qual pode ser o problema real, mas pode ser uma regressão.

Neste caso, web_only e data são contêineres separados e a inicialização do contêiner web_only falha com

oot@docker2:/var/discourse# ./launcher start web_only
x86_64 arch detected.

starting up existing container
+ /usr/bin/docker start web_only
Error response from daemon: Cannot link to a non running container: /data AS /web_only/data
Error: failed to start containers: web_only

Talvez eu precise iniciar manualmente através do docker neste caso, já que o banco de dados é externo em outra máquina, veja este código no yaml do web_only:

 ## connect to central postgres database
  DISCOURSE_DB_SOCKET: ''
  DISCOURSE_DB_USERNAME: discourse
  DISCOURSE_DB_PASSWORD: xxxxxxxxxx
  DISCOURSE_DB_HOST: 10.10.xx.xx
  DISCOURSE_REDIS_HOST: data

Desculpe. Eu não sabia dessa parte (ou talvez não tenha lido com atenção).

Então você precisa

./launcher destroy web_only;./launcher start web_only

A menos que você tenha executado uma limpeza que excluiu o contêiner, caso em que você provavelmente está em apuros.

Então, fico surpreso ao ver o erro “não é possível vincular”. Eu só vi isso quando ele está tentando usar um link do docker para falar com outro contêiner na mesma máquina.

Ah! Sim, é o redis que ele não consegue conectar. Você tem um contêiner data com o redis nele, certo? O destroy start deve funcionar com a ressalva dada.

@pfaffman obrigado, isso corrigiu. Eu esqueci que o contêiner de dados também fornece a funcionalidade de cache do redis - mas de qualquer forma, agora os contêineres estão rodando novamente.

O que podemos fazer com o erro de bootstrap do script do launcher, linha 334? Eu nunca vi esse erro antes. O launcher_go/v2 está pronto para ser usado como substituto?

330 set_template_info() {
    331     templates=$(find_templates $config_file)
    332
    333     arrTemplates=(${templates// / })
    334     config_data=$(cat $config_file)
    335
    336     input="hack: true"
    337
    338     for template in "${arrTemplates[@]}"
    339     do
    340       [ ! -z $template ] && {
    341         input="$input _FILE_SEPERATOR_ $(cat $template)"
    342       }
    343     done
    344
1 curtida

Isso não é um erro, é apenas um aviso

Este é o erro.

Parece-me que o seu web-app.yml pode estar corrompido.

2 curtidas

sim:

root@docker2:/var/discourse/containers# yamllint web_only.yml
web_only.yml
  5:81      error    linha muito longa (115 > 80 caracteres)  (line-length)
  8:1       warning  falta início do documento "---"  (document-start)
  14:4      warning  falta espaço inicial no comentário  (comments)
  14:3      warning  comentário não indentado como conteúdo  (comments-indentation)
  15:4      warning  falta espaço inicial no comentário  (comments)
  18:81     error    linha muito longa (85 > 80 caracteres)  (line-length)
  36:3      warning  comentário não indentado como conteúdo  (comments-indentation)
  37:4      warning  falta espaço inicial no comentário  (comments)
  43:81     error    linha muito longa (85 > 80 caracteres)  (line-length)
  44:81     error    linha muito longa (87 > 80 caracteres)  (line-length)
  58:81     error    linha muito longa (84 > 80 caracteres)  (line-length)
  67:81     error    linha muito longa (90 > 80 caracteres)  (line-length)
  68:4      warning  falta espaço inicial no comentário  (comments)
  77:81     error    linha muito longa (83 > 80 caracteres)  (line-length)
  79:4      warning  falta espaço inicial no comentário  (comments)
  99:81     error    linha muito longa (81 > 80 caracteres)  (line-length)
  110:81    error    linha muito longa (81 > 80 caracteres)  (line-length)
  117:81    error    linha muito longa (81 > 80 caracteres)  (line-length)
  126:43    error    espaços no final  (trailing-spaces)
  151:4     warning  falta espaço inicial no comentário  (comments)
  154:4     warning  falta espaço inicial no comentário  (comments)
  155:4     warning  falta espaço inicial no comentário  (comments)
  156:4     warning  falta espaço inicial no comentário  (comments)
  156:81    error    linha muito longa (131 > 80 caracteres)  (line-length)

Definitivamente precisa de uma limpeza :wink: