Problemi durante l'aggiornamento da 3.0.3 a 3.0.4: Errore 523

Ciao!

Ho riscontrato un problema durante l’aggiornamento della mia installazione con l’utility launcher.

Ricevo un errore 523 quando il container di build tenta di cambiare la proprietà delle immagini caricate…
Qualche idea?

Ecco il log:

$ sudo ./launcher rebuild app
Rilevata architettura x86_64.
ATTENZIONE: il file containers/app.yml è leggibile da tutti. Puoi proteggere questo file eseguendo: chmod o-rwx containers/app.yml
Assicurazione che launcher sia aggiornato
Recupero origine
Launcher è aggiornato
Arresto del vecchio container
+ /usr/bin/docker stop -t 600 app
app
2.0.20230502-0058: Pulling from discourse/base
Digest: sha256:fa95da36c3d3a582d644b139ec678f5778d745697454bc86f598c689031b30aa
Status: Image is up to date for discourse/base:2.0.20230502-0058
docker.io/discourse/base:2.0.20230502-0058
/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups.rb
/usr/local/bin/pups --stdin

.....

Passato al nuovo branch 'stable'
I, [2023-06-18T16:43:24.458070 #1]  INFO -- : Branch 'stable' impostato per tracciare il branch remoto 'stable' da 'origin'.

I, [2023-06-18T16:43:24.458386 #1]  INFO -- : 
I, [2023-06-18T16:43:24.469320 #1]  INFO -- : 
I, [2023-06-18T16:43:24.469386 #1]  INFO -- : 
I, [2023-06-18T16:43:24.472481 #1]  INFO -- : 
I, [2023-06-18T16:43:24.472660 #1]  INFO -- : 
I, [2023-06-18T16:43:24.476232 #1]  INFO -- : 
I, [2023-06-18T16:43:24.476303 #1]  INFO -- : 
I, [2023-06-18T16:43:24.479386 #1]  INFO -- : 
I, [2023-06-18T16:43:24.479449 #1]  INFO -- : 
I, [2023-06-18T16:43:24.482943 #1]  INFO -- : 
I, [2023-06-18T16:43:24.483012 #1]  INFO -- : 
I, [2023-06-18T16:43:24.486152 #1]  INFO -- : 
I, [2023-06-18T16:43:24.486220 #1]  INFO -- : 
I, [2023-06-18T16:43:24.489788 #1]  INFO -- : 
I, [2023-06-18T16:43:24.489954 #1]  INFO -- : 
I, [2023-06-18T16:43:24.495214 #1]  INFO -- : 
I, [2023-06-18T16:43:24.495285 #1]  INFO -- : 
I, [2023-06-18T16:43:24.500211 #1]  INFO -- : 
I, [2023-06-18T16:43:24.500283 #1]  INFO -- : 
I, [2023-06-18T16:43:24.504652 #1]  INFO -- : 
I, [2023-06-18T16:43:24.504738 #1]  INFO -- : 
I, [2023-06-18T16:43:24.512836 #1]  INFO -- : 
I, [2023-06-18T16:43:24.512942 #1]  INFO -- : 
I, [2023-06-18T16:43:24.518383 #1]  INFO -- : 
I, [2023-06-18T16:43:24.518453 #1]  INFO -- : 
I, [2023-06-18T16:43:24.523090 #1]  INFO -- : 
I, [2023-06-18T16:43:24.523195 #1]  INFO -- : 
chown: /shared/uploads/default/optimized/1X: Unknown error 523
chown: /shared/uploads/default/original/1X: Unknown error 523
I, [2023-06-18T16:43:41.385629 #1]  INFO -- : 


FALLITO
--------------------
Pups::ExecError: cd /var/www/discourse && chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp fallito con ritorno #<Process::Status: pid 135 exit 1>
Posizione del fallimento: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec fallito con i parametri {"cd"=>"$home", "hook"=>"code", "cmd"=>["sudo -H -E -u discourse git reset --hard", "sudo -H -E -u discourse git clean -f", "sudo -H -E -u discourse bash -c '\n  set -o errexit\n  if [ $(git rev-parse --is-shallow-repository) == \"true\" ]; then\n      git remote set-branches --add origin main\n      git remote set-branches origin $version\n      git fetch --depth 1 origin $version\n  else\n      git fetch --tags --prune-tags --prune --force origin\n  fi\n'", "sudo -H -E -u discourse bash -c '\n  set -o errexit\n  if [[ $(git symbolic-ref --short HEAD) == $version ]] ; then\n      git pull\n  else\n      git -c advice.detachedHead=false checkout $version\n  fi\n'", "sudo -H -E -u discourse git config user.discourse-version $version", "mkdir -p tmp", "chown discourse:www-data tmp", "mkdir -p tmp/pids", "mkdir -p tmp/sockets", "touch tmp/.gitkeep", "mkdir -p                    /shared/log/rails", "bash -c \"touch -a           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log\"", "bash -c \"ln    -s           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log $home/log\"", "bash -c \"mkdir -p           /shared/{uploads,backups}\"", "bash -c \"ln    -s           /shared/{uploads,backups} $home/public\"", "bash -c \"mkdir -p           /shared/tmp/{backups,restores}\"", "bash -c \"ln    -s           /shared/tmp/{backups,restores} $home/tmp\"", "chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp", "[ ! -d public/plugins ] || find public/plugins/ -maxdepth 1 -xtype l -delete"]}
bootstrap fallito con codice di uscita 1
** FALLITO IL BOOTSTRAP ** si prega di scorrere verso l'alto e cercare messaggi di errore precedenti, potrebbero essercene più di uno.
./discourse-doctor potrebbe aiutare a diagnosticare il problema.
2 Mi Piace

Non riesco a trovare nulla di utile su questo errore. Qual è la distribuzione e la versione del tuo sistema operativo? Che tipo di archiviazione viene utilizzata per i caricamenti?

Spero tu sappia già che usare il canale ‘stable’ è una tattica insolita: quasi tutti utilizzano il canale ‘tests-passed’. Vedi
Perché Discourse installa sempre versioni “beta” per impostazione predefinita?

Stai usando S3 e, in caso affermativo, il nome del tuo bucket è configurato correttamente?

Ma non dovrebbe fallire di più, quindi questo è irrilevante secondo me?

Potrebbe sembrare che fallisca meno, se pochissime installazioni utilizzano la versione stabile. Inoltre, volevo assicurarmi che @gmoirod fosse a conoscenza della situazione, supponendo che alcune persone che utilizzano la versione stabile la stiano eseguendo senza sapere cosa sia.

Capisco. Ma se la sua installazione sta fallendo proprio ora, allora la mia stima è che passare a 3.1.0beta5 peggiorerà molto le cose. Quindi concentriamoci prima sul problema.

1 Mi Piace

Eseguo Discourse come container Docker su un server Debian 11.
I miei caricamenti si trovano su una condivisione NFS. Questo è sempre stato il caso e non ho mai avuto questo problema prima.

Sì, ho visto diverse cose a riguardo… Un giorno dovrò farlo…
Sono un po’ un tipo da Debian, sai. Mantieni “stable” per la produzione.

Ecco fatto. E quella condivisione è attualmente accessibile dall’interno del container?

Il mio attuale container Discourse 3.0.3 in esecuzione:

            {
                "Type": "bind",
                "Source": "/nfsdata/discourse-data-shared/uploads",
                "Destination": "/shared/uploads",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },

All’interno del container, le proprietà e i permessi sembrano corretti

$ sudo docker exec app sh -c "ls -al /shared/uploads /shared/uploads/default/optimized/1X /shared/uploads/default/original/1X"
/shared/uploads:
total 4
drwxr-xr-x  2 discourse www-data    0 Jun 20 20:07 .
drwxr-xr-x 10 root      root     4096 Mar  8 16:29 ..
drwxr-xr-x  2 discourse www-data    0 Jun  8  2022 default
drwxr-xr-x  2 discourse www-data    0 Mar  8 17:34 tombstone

/shared/uploads/default/optimized/1X:
total 17094
drwxr-xr-x 2 discourse www-data      0 Mar 22 11:30 .
drwxr-xr-x 2 discourse www-data      0 Mar  8 16:18 ..
-rw-r--r-- 1 discourse www-data  54700 Mar  8 16:52 00964701d199ec0d6d3dd5269c842e1f0bb7e7a1_2_1035x456.png
-rw-r--r-- 1 discourse www-data    205 Mar  8 16:52 00964701d199ec0d6d3dd5269c842e1f0bb7e7a1_2_10x10.png
.....

/shared/uploads/default/original/1X:
total 17932
drwxr-xr-x 2 discourse www-data       0 Apr 23 11:42 .
drwxr-xr-x 2 discourse www-data       0 Jun  8  2022 ..
-rw-r--r-- 1 discourse www-data   35706 Nov 18  2022 00964701d199ec0d6d3dd5269c842e1f0bb7e7a1.png
-rwxr-xr-x 1 discourse www-data   17112 Jul  4  2022 00a82b03ffbcdf56e34f86adbec263e12573f49b.png

Inoltre, sono in grado di caricare nuove immagini in Discourse 3.0.3 in esecuzione

Precisione: Non ho SELinux/AppArmor attivati

Spero che non sia correlato :sob: #102728 - cvs: unknown error 523 - Debian Bug report logs

In realtà, questo non è un problema con il repository su NFS. È un problema
con la directory CLIENT montata su NFS.

Il problema si è rivelato essere un bug di NFS nel kernel Linux, quindi probabilmente
puoi chiudere questo bug.

Il fatto che qualcosa sia il primo risultato su Google non significa che sia il risultato migliore.

Data: Gio, 28 giu 2001 20:03:01 UTC

È possibile eseguire chown dall’interno del container, ovvero eseguire manualmente il comando che genera l’errore?

sudo docker exec app sh -c "chown -R discourse:discourse /shared/uploads/default/optimized/1X"

Temo di sì (ho corretto il comando rispetto a quello eseguito inizialmente)…\n\n$ docker exec -it app bash\napp:/$ cd /var/www/discourse\napp:/var/www/discourse$ chown -R discourse:www-data /shared/uploads\napp:/var/www/discourse$ echo $?\n0\n\nCi è voluto molto tempo ma nessun errore.\n\nC’è qualche differenza nell’immagine docker in esecuzione in 3.0.3 e in quella utilizzata per creare l’immagine in 3.0.4?

Le versioni delle immagini Docker non sono legate alle versioni di Discourse. Inoltre, dipende da come hai ricostruito in precedenza, quindi è difficile dirlo.

La mia immagine 3.0.3 effettiva mi dà

# docker image inspect local_discourse/app | grep 'discourse/base'
            "Image": "discourse/base:2.0.20230409-0052",

E quella in errore ha usato:

Status: Image is up to date for discourse/base:2.0.20230502-0058

Controllerò la differenza :mag:

Dannazione!
Non vedo nulla di pertinente: Comparing 3d317b7f58e8201912972afa3910b6c4b9ad8c75...main · discourse/discourse_docker · GitHub

C’è sicuramente un problema con l’immagine di base.
Ho forzato l’uso di discourse/base:2.0.20230409-0052 nel launcher e ha funzionato alla grande.

# git diff launcher
diff --git a/launcher b/launcher
index 3e1a1c4..8a989b8 100755
--- a/launcher
+++ b/launcher
@@ -92,7 +92,7 @@ kernel_min_version='4.4.0'
 config_file=containers/"$config".yml
 cidbootstrap=cids/"$config"_bootstrap.cid
 local_discourse=local_discourse
-image="discourse/base:2.0.20230502-0058"
+image="discourse/base:2.0.20230409-0052"
 docker_path=`which docker.io 2> /dev/null || which docker`
 git_path=`which git`

Qualcuno può vedere la modifica che causa questo?

Che tu ci creda o no, l’ho appena ricostruito di nuovo con discourse/base:2.0.20230502-0058 e ha funzionato… :man_shrugging:

2 Mi Piace

Non ho problemi a credere alle stranezze informatiche :upside_down_face:

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.