Errore durante l'aggiornamento ESOCKETTIMEDOUT registry.yarnpkg.com

Tentativo di aggiornamento di Discourse tramite la procedura manuale

git pull
./launcher rebuild app
...

./discourse-doctor mostra un errore

I, [2023-06-16T11:39:43.530890 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
error An unexpected error occurred: "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz: ESOCKETTIMEDOUT".
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'yarn install --frozen-lockfile && yarn cache clean' failed with return #<Process::Status: pid 281 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "cmd"=>["su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
f485460571ab9e30e0d6917b05c9a8fe1772df13d8cae9fe67108961fae71039
==================== END REBUILD LOG ====================

Lo stesso problema si è verificato quando ho provato a eseguire
./launcher rebuild app

Ho provato a scaricare date-fns-2.29.3.tgz su un host Linux e funziona.

wget https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz
Connecting to registry.yarnpkg.com (104.16.26.35:443)
saving to 'date-fns-2.29.3.tgz'
date-fns-2.29.3.tgz  100% |*************************************************************************************************************|  712k  0:00:00 ETA
'date-fns-2.29.3.tgz' saved

Discourse ospitato su una VM Alpine Linux

Riscontro lo stesso problema su ubuntu vps. Non ho idea.

Non riesco a capire se questo sia il vero problema o se tu abbia un problema con la rete Docker.

1 Mi Piace

È possibile che questo problema venga risolto aggiungendo più tempo prima che yarn rinunci. Ho inviato una pull request:

Puoi apportare questa modifica manualmente come spiegato da Mario Lurig:

Vedi anche:

3 Mi Piace

Eccellente. Citato per permanenza e ricerca:

Tuttavia, mentre aspettavo il completamento del Passaggio 9 (dopo aver eseguito ./discourse-setup) e che tutto venisse compilato, si verificava un errore ESOCKETTIMEDOUT relativo a yarn. L’ultimo messaggio che tenta di eseguire è [ ! -d 'node_modules' ] || su discourse -c 'yarn install --production \u0026\u0026 yarn cache clean'.

La Soluzione

Devi installare un editor; preferisco nano, quindi apt-get install nano fa al caso tuo. Quindi vai su /var/discourse/templates ed esegui: nano web.template.yml. Per confronto, ecco il file clonato da github e l’area di interesse è intorno alla riga 159. Ti suona familiare? È lo stesso comando notato sopra prima che fallisse. Dobbiamo aggiungere una nuova sezione sopra questa riga per aumentare il timeout.

  • exec: cd: $home cmd: - “su discourse -c ‘yarn config set network-timeout 600000 -g’”

Salva questa modifica, quindi riesegui ./discourse-setup e voilà, il completamento! Ci vorrà sicuramente un po’ di tempo, specialmente il passaggio di compressione brotli, ma finirà.

3 Mi Piace

Ho avuto lo stesso timeout, ma ho avuto problemi ad implementare la soluzione suggerita, quindi vorrei aggiungere alcuni dettagli.

Innanzitutto, ho avuto qualche difficoltà a trovare /var/discourse/templates, perché la mia installazione di Discourse si trova in una posizione non standard. Stavo cercando all’interno di Docker, il che ovviamente non ha senso.

In secondo luogo, il numero di riga 159 non è più corretto. Presumo che tu ti riferisca a questa sezione di template.yml:

- exec:
      cd: $home
      hook: yarn
      cmd:
        - |
          if [ "$version" != "tests-passed" ]; then
            rm -rf app/assets/javascripts/node_modules
          fi
        - su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'

Terzo, non ho molta familiarità con yaml, pups e yarn o come questi vengono utilizzati in Discourse, e non volevo tirare a indovinare. Invece, ho provato questa modifica alla sezione originale:

  - exec:
      cd: $home
      hook: yarn
      cmd:
        - |
          if [ "$version" != "tests-passed" ]; then
            rm -rf app/assets/javascripts/node_modules
          fi
        - su discourse -c 'yarn config set network-timeout 600000 -g && yarn install --frozen-lockfile && yarn cache clean'

Questo funziona per me. ./launcher rebuild app ora richiede molto tempo (più di 2 ore per me), ma almeno viene completato e il forum funziona di nuovo.

Infine, vorrei aggiungere che questo problema (per me) non è stato certamente una mancanza di memoria: sto usando un VPS con 32 GB installati, di cui 24 GB erano liberi quando si è verificato il problema.

2 Mi Piace