Il launcher fallisce: linea 334: byte NULL ignorato

La ricompilazione corrente dell’app web fallisce con questo errore:

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.

Qualche idea su come risolvere questo problema? Il mio forum è attualmente non disponibile dopo questa ri-distribuzione :worried:

1 Mi Piace

Dovresti essere in grado di riavviarlo con

./launcher start app

Questo riavvierà il vecchio container.

Non so quale possa essere il problema effettivo, ma potrebbe essere una regressione.

In questo caso web_only e data sono container separati e l’avvio del container web_only fallisce con

root@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

Forse in questo caso devo avviare manualmente tramite docker poiché il database è esterno su un’altra macchina, vedi questo codice nello yaml di 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

Mi dispiace. Non conoscevo quella parte (o forse non ho letto attentamente).

Allora devi

./launcher destroy web_only;./launcher start web_only

A meno che tu non abbia eseguito una pulizia che ha eliminato il container, nel qual caso sei probabilmente nei guai.

Allora sono sorpreso di vedere l’errore “cannot link”. L’ho visto solo quando sta cercando di usare un link di docker per parlare con un altro container sulla stessa macchina.

Oh! Sì, è il redis a cui non riesce a connettersi. Hai un container data con il redis al suo interno, giusto? Il comando destroy start dovrebbe funzionare con l’avvertenza data.

@pfaffman grazie, ha funzionato. Ho dimenticato che il contenitore dei dati fornisce anche la funzionalità di caching redis, ma comunque, ora i contenitori sono di nuovo in esecuzione.

Cosa possiamo fare con l’errore di bootstrap dallo script del launcher, riga 334? Non ho mai visto questo errore prima. Il launcher_go/v2 è pronto per essere utilizzato come sostituto?

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 Mi Piace

Questo non è un errore, è solo un avviso

Questo è l’errore.

Mi sembra che il tuo web-app.yml possa essere corrotto.

2 Mi Piace

sì:

root@docker2:/var/discourse/containers# yamllint web_only.yml
web_only.yml
  5:81      error    line too long (115 > 80 characters)  (line-length)
  8:1       warning  missing document start "---"  (document-start)
  14:4      warning  missing starting space in comment  (comments)
  14:3      warning  comment not indented like content  (comments-indentation)
  15:4      warning  missing starting space in comment  (comments)
  18:81     error    line too long (85 > 80 characters)  (line-length)
  36:3      warning  comment not indented like content  (comments-indentation)
  37:4      warning  missing starting space in comment  (comments)
  43:81     error    line too long (85 > 80 characters)  (line-length)
  44:81     error    line too long (87 > 80 characters)  (line-length)
  58:81     error    line too long (84 > 80 characters)  (line-length)
  67:81     error    line too long (90 > 80 characters)  (line-length)
  68:4      warning  missing starting space in comment  (comments)
  77:81     error    line too long (83 > 80 characters)  (line-length)
  79:4      warning  missing starting space in comment  (comments)
  99:81     error    line too long (81 > 80 characters)  (line-length)
  110:81    error    line too long (81 > 80 characters)  (line-length)
  117:81    error    line too long (81 > 80 characters)  (line-length)
  126:43    error    trailing spaces  (trailing-spaces)
  151:4     warning  missing starting space in comment  (comments)
  154:4     warning  missing starting space in comment  (comments)
  155:4     warning  missing starting space in comment  (comments)
  156:4     warning  missing starting space in comment  (comments)
  156:81    error    line too long (131 > 80 characters)  (line-length)

ha decisamente bisogno di un po’ di pulizia :wink: