Discourse 업데이트가 계속 실패합니다

오늘 업데이트를 실행해 보았는데 재구성이 계속 실패합니다. 비공식 플러그인도 모두 제거했지만, 더 이상 어떻게 해야 할지 모르겠습니다.

에러 메시지는 다음과 같습니다.

Location of failure: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 134

그 오류 메시지 아래에는 ** FAILED TO BOOTSTRAP **라는 텍스트와 함께 "위쪽으로 스크롤하여 이전 오류 메시지를 찾아보세요. 하나 이상 있을 수 있습니다."라는 안내가 적혀 있습니다.

그러니까… 위쪽으로 스크롤해서 이전 오류 메시지를 찾아보세요.

죄송합니다, 잘못된 것을 붙여넣었습니다:

 could not receive data from client: Connection reset by peer
Aborted (core dumped)
I, [2022-07-04T09:24:39.336838 #1]  INFO -- : 
I, [2022-07-04T09:24:39.337289 #1]  INFO -- : Terminating async processes
I, [2022-07-04T09:24:39.337528 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 42
2022-07-04 09:24:39.337 UTC [42] LOG:  received fast shutdown request
I, [2022-07-04T09:24:39.337594 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 103
103:signal-handler (1656926679) Received SIGTERM scheduling shutdown...
103:M 04 Jul 2022 09:24:39.373 # User requested shutdown...
103:M 04 Jul 2022 09:24:39.373 * Saving the final RDB snapshot before exiting.
2022-07-04 09:24:39.441 UTC [42] LOG:  aborting any active transactions
2022-07-04 09:24:39.447 UTC [42] LOG:  background worker "logical replication launcher" (PID 51) exited with exit code 1
2022-07-04 09:24:39.448 UTC [46] LOG:  shutting down
2022-07-04 09:24:39.925 UTC [42] LOG:  database system is shut down

위쪽의 몇 줄도 붙여넣어 주시겠어요?

이 정도면 충분할 것 같지만, 더 필요한 것이 있으면 알려주세요:

7f7ec07f9000-7f7ec07fd000 rw-p 00000000 00:00 0 
7f7ec07fe000-7f7ec07ff000 r--p 00000000 00:38 43787088                   /usr/local/lib/ruby/2.7.0/x86_64-linux/enc/encdb.so
7f7ec07ff000-7f7ec0800000 r-xp 00001000 00:38 43787088                   /usr/local/lib/ruby/2.7.0/x86_64-linux/enc/encdb.so
7f7ec0800000-7f7ec0801000 r--p 00002000 00:38 43787088                   /usr/local/lib/ruby/2.7.0/x86_64-linux/enc/encdb.so
7f7ec0801000-7f7ec0802000 r--p 00002000 00:38 43787088                   /usr/local/lib/ruby/2.7.0/x86_64-linux/enc/encdb.so
7f7ec0802000-7f7ec0803000 rw-p 00003000 00:38 43787088                   /usr/local/lib/ruby/2.7.0/x86_64-linux/enc/encdb.so
7f7ec0803000-7f7ec0830000 r--p 00000000 00:38 43659503                   /usr/local/lib/libruby.so.2.7.6
7f7ec0830000-7f7ec0a43000 r-xp 0002d000 00:38 43659503                   /usr/local/lib/libruby.so.2.7.6
7f7ec0a43000-7f7ec0b3b000 r--p 00240000 00:38 43659503                   /usr/local/lib/libruby.so.2.7.6
7f7ec0b3b000-7f7ec0b3c000 ---p 00338000 00:38 43659503                   /usr/local/lib/libruby.so.2.7.6
7f7ec0b3c000-7f7ec0b42000 r--p 00338000 00:38 43659503                   /usr/local/lib/libruby.so.2.7.6
7f7ec0b42000-7f7ec0b45000 rw-p 0033e000 00:38 43659503                   /usr/local/lib/libruby.so.2.7.6
7f7ec0b45000-7f7ec0b62000 rw-p 00000000 00:00 0 
7f7ec0b62000-7f7ec0b63000 r--p 00000000 00:38 39719923                   /lib/x86_64-linux-gnu/ld-2.31.so
7f7ec0b63000-7f7ec0b83000 r-xp 00001000 00:38 39719923                   /lib/x86_64-linux-gnu/ld-2.31.so
7f7ec0b83000-7f7ec0b8b000 r--p 00021000 00:38 39719923                   /lib/x86_64-linux-gnu/ld-2.31.so
7f7ec0b8b000-7f7ec0b8c000 r-xp 00000000 00:00 0 
7f7ec0b8c000-7f7ec0b8d000 r--p 00029000 00:38 39719923                   /lib/x86_64-linux-gnu/ld-2.31.so
7f7ec0b8d000-7f7ec0b8e000 rw-p 0002a000 00:38 39719923                   /lib/x86_64-linux-gnu/ld-2.31.so
7f7ec0b8e000-7f7ec0b8f000 rw-p 00000000 00:00 0 
7ffdf35f7000-7ffdf3df6000 rw-p 00000000 00:00 0                          [stack]
7ffdf3dfb000-7ffdf3dfe000 r--p 00000000 00:00 0                          [vvar]
7ffdf3dfe000-7ffdf3dff000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0                  [vsyscall]


2022-07-04 09:24:39.333 UTC [892] discourse@discourse LOG:  could not receive data from client: Connection reset by peer
Aborted (core dumped)
I, [2022-07-04T09:24:39.336838 #1]  INFO -- : 
I, [2022-07-04T09:24:39.337289 #1]  INFO -- : Terminating async processes
I, [2022-07-04T09:24:39.337528 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 42
2022-07-04 09:24:39.337 UTC [42] LOG:  received fast shutdown request
I, [2022-07-04T09:24:39.337594 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 103
103:signal-handler (1656926679) Received SIGTERM scheduling shutdown...
103:M 04 Jul 2022 09:24:39.373 # User requested shutdown...
103:M 04 Jul 2022 09:24:39.373 * Saving the final RDB snapshot before exiting.
2022-07-04 09:24:39.441 UTC [42] LOG:  aborting any active transactions
2022-07-04 09:24:39.447 UTC [42] LOG:  background worker "logical replication launcher" (PID 51) exited with exit code 1
2022-07-04 09:24:39.448 UTC [46] LOG:  shutting down
2022-07-04 09:24:39.925 UTC [42] LOG:  database system is shut down
103:M 04 Jul 2022 09:24:40.378 * DB saved on disk
103:M 04 Jul 2022 09:24:40.378 # Redis is now ready to exit, by

아프다.

이 설치에 대해 좀 더 자세히 알려줄 수 있을까요? 표준 설치인가요? 어떤 하드웨어에서 이 작업을 시도하고 계신가요?

처음에는 오늘 업데이트를 통해 도커 관리자로 포럼을 업데이트하려고 했습니다(업데이트가 11개 있었습니다). 지난 금요일에 이미 2.9.0 beta6 버전으로 업데이트했으며, 같은 서버에서 3년째 아무 문제 없이 포럼이 운영되고 있습니다:

다음 사양의 전용 서버에서 실행 중입니다:

  • AMD Opteron 4180
  • 6 x 2.6 GHz
  • 16 GB RAM
  • 2 x 1 TB SSD
    (Ubuntu 20.04 LTS)

수정: 서버에 공간은 충분히 남아 있습니다.

죄송합니다. 여기서 막혀서 다른 분이 혹시 방법을 아실까 해서요.

그래도 노력해 주셔서 감사합니다.

도움이 된다면, 이 경고도 발견했습니다:

I, [2022-07-04T11:08:15.901173 #1]  INFO -- : > cd /var/www/discourse && [ ! -d 'node_modules' ] || su discourse -c 'yarn install --production && yarn cache clean'
warning "eslint-config-discourse > eslint-plugin-lodash@7.1.0" has unmet peer dependency "lodash@>=4".
warning " > @mixer/parallel-prettier@2.0.1" has unmet peer dependency "prettier@^2.0.0".

최근 재부팅을 해 보셨나요? 재부팅이 필요한 업데이트를 설치한 건 아닌지요. 다음으로 OS를 업데이트하고 재부팅하는 걸 권합니다. (실제로는 딱히 아이디어가 없어서요)

네, 커널 업데이트 때문에 금요일에 재부팅을 했고, 그날早些에도 문제가 해결되는지 확인하려고 시도해 보았습니다.

힌트가 될지는 모르겠지만, 플러그인을 설치할 때 정확히 같은 오류를 본 적이 있습니다. 이제 그 플러그인이 근본적인 원인인지 확실하지 않네요.

https://meta.discourse.org/t/web-3-0-features/203321/21?u=marcp

음, 비공식 플러그인을 모두 삭제했지만, 그 방향으로 더 조사해 보겠습니다.

아니요, 다른 에러가 발생하고 있습니다. 원래의 에러를 찾으려면 위로 스크롤해 보세요.

누군가 도와주셨으면 좋겠습니다. 캐시를 정리하고, 컨테이너 이미지를 삭제한 뒤, 이전 버전의 이미지로 다시 빌드해 보았지만 모두 동일한 오류가 발생합니다.

로그의 일부가 아니라 전체를 붙여넣는 것이 훨씬 더 유용할 것입니다.

예를 들어, 정확히 무엇이 에러를 일으키고 있는지 명확하지 않습니다. 데이터베이스일 수도 있고, rake 작업일 수도 있습니다.

너무 길다면 gzip으로 압축해서 게시해도 됩니다. 비밀 정보가 포함되어 있는지 확실하지 않다면, 저에게 개인 메시지로 보내주시면 제가 찾아보겠습니다.

지금 만들고 있습니다.

출력의 핵심 부분은 “Illegal instruction”(불법 명령어)인 것으로 보입니다:

I, [2022-07-04T21:01:40.452409 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'                                                                      
2022-07-04 21:01:46.756 UTC [932] discourse@discourse LOG:  duration: 120.094 ms  bind <unnamed>: SELECT t.oid, t.typname                                                                   
        FROM pg_type as t                                                                                                                                                                   
        WHERE t.typname IN ('int2', 'int4', 'int8', 'oid', 'float4', 'float8', 'numeric', 'bool', 'timestamp', 'timestamptz')                                                               
                                                                                                                                                                                            
2022-07-04 21:01:47.069 UTC [932] discourse@discourse LOG:  duration: 100.781 ms  statement: SELECT name, data_type, value FROM site_settings                                               
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/message_bus-4.2.0/lib/message_bus/codec/json.rb:11: [BUG] Illegal instruction at 0x00007f90039e1339                                        
ruby 2.7.6p219 (2022-04-12 revision c9c2245c0a) [x86_64-linux]

Unicorn 로그의 끝부분(문제가 발생하기 직전)에도 동일한 "Illegal instruction"이 존재합니다.

(필요한 경우 Bryan이 전체 출력을 제공할 수 있기를 바랍니다).

수정: 전체 로그를 곧 올리겠습니다. Discourse에서 업로드를 허용하지 않고 있습니다.

수정 2: Bitwarden Send (7일 동안 이용 가능합니다).