업데이트 2.6.0.beta3 이후 자바스크립트 오류 및 콘텐츠 누락

자체 호스팅된 Discourse 사이트 forum.embeetle.com을 운영 중이며, 어제 " 원클릭 브라우저 업그레이드"를 사용하여 2.6.0.beta3로 업데이트했습니다.

업데이트 전에는 포럼이 정상적으로 작동했습니다. 그러나 업데이트 후 포럼에서 토픽 내용이나 로그인 옵션이 포함된 상단 바, 그리고 웹 인터페이스의 일부 다른 요소들이 더 이상 표시되지 않습니다. 현재 첫 페이지는 다음과 같은 모습입니다:

서버에서 웹 페이지의 일부 내용을 가져오지 못했거나, 어쩌면 JavaScript 코드가 실행되지 않는 것 같습니다.

다른 사용자들이 이 문제를 보고하지 않는 것 같으니, 제 설정에 특이한 문제가 있는 것으로 추정됩니다. 원인이 무엇인지 전혀 모르겠습니다. 상황을 디버깅하기 위한 제안이 있다면 환영합니다.

설정은 자체 호스팅으로, Docker에서 실행되며 Docker 외부에서 실행 중인 Nginx 서버와 unix 소켓을 통해 통신합니다. 이 구성은 오랫동안 잘 작동해 왔으며 변경한 바 없습니다.

포럼 첫 페이지를 열면 Firefox 개발자 콘솔에 다음 오류가 표시됩니다:

Uncaught TypeError: Discourse.getURL is not a function
    iconTagRenderer 81af47c00866048c45bf30a4543ac68bbfa12b26.js:37
    default _application-7cd582275ddbdcd17a8034612cd6e29612ffcd8c00a7b8f2bbf13154b6db1b16.js:24080
    default _application-7cd582275ddbdcd17a8034612cd6e29612ffcd8c00a7b8f2bbf13154b6db1b16.js:24150
    a _application-7cd582275ddbdcd17a8034612cd6e29612ffcd8c00a7b8f2bbf13154b6db1b16.js:61636
    registerUnbound _application-7cd582275ddbdcd17a8034612cd6e29612ffcd8c00a7b8f2bbf13154b6db1b16.js:543
    wrapHelper _vendor-a520d2facd37b23a6fce06beaf5feaa3034f761d5b4f37c89c4cecd3ead14192.js:1808
    main _application-7cd582275ddbdcd17a8034612cd6e29612ffcd8c00a7b8f2bbf13154b6db1b16.js:63114
    i _vendor-a520d2facd37b23a6fce06beaf5feaa3034f761d5b4f37c89c4cecd3ead14192.js:1591
    s _vendor-a520d2facd37b23a6fce06beaf5feaa3034f761d5b4f37c89c4cecd3ead14192.js:1595
    renderTopicListItem _application-7cd582275ddbdcd17a8034612cd6e29612ffcd8c00a7b8f2bbf13154b6db1b16.js:58966
    didReceiveAttrs _application-7cd582275ddbdcd17a8034612cd6e29612ffcd8c00a7b8f2bbf13154b6db1b16.js:58960
    jQuery 30
81af47c00866048c45bf30a4543ac68bbfa12b26.js:37:56
XML Parsing Error: syntax error
Location: https://forum.embeetle.com/logs/report_js_error
Line Number 1, Column 1: report_js_error:1:1

./launcher rebuild app을 사용하여 재빌드를 시도했습니다. 몇 가지 업데이트가 수행되었지만 문제가 여전히 지속됩니다. 또한 ./discourse-doctor도 실행해 보았습니다. 모든 것이 정상으로 보였습니다. 아래는 discourse-doctor 출력 결과입니다.

DISCOURSE DOCTOR Sat Sep 26 12:30:19 CEST 2020
OS: Linux foechoer.sikando.com 4.15.0-101-generic #102-Ubuntu SMP Mon May 11 10:07:26 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux


Found containers/app.yml

==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=forum.embeetle.com
SMTP_ADDRESS=smtp.zoho.com #mail.embeetle.com
DEVELOPER_EMAILS=johan@embeetle.com,kristof@embeetle.com,matic@embeetle.com
SMTP_PASSWORD=A3!r1&nR0LuVmdW3Tpwa
SMTP_PORT=587
SMTP_USER_NAME=forum@embedeer.com
LETSENCRYPT_ACCOUNT_EMAIL=postmaster@sikando.com

==================== DOCKER INFO ====================
DOCKER VERSION: Docker version 19.03.13, build 4484c46d9d

DOCKER PROCESSES (docker ps -a)

CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS               NAMES
7e92f71e558e        local_discourse/app   "/sbin/boot"        5 minutes ago       Up 4 minutes                            app

7e92f71e558e        local_discourse/app   "/sbin/boot"        5 minutes ago       Up 4 minutes                            app

Discourse container app is running


==================== PLUGINS ====================
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-math.git
          - git clone https://github.com/discourse/discourse-bbcode-color.git

No non-official plugins detected.

See https://github.com/discourse/discourse/blob/master/lib/plugin/metadata.rb for the official list.

========================================
Discourse 2.6.0.beta3
Discourse version at forum.embeetle.com: Discourse 2.6.0.beta3 
Discourse version at localhost: NOT FOUND
==================== DNS PROBLEM ====================
This server reports NOT FOUND, but forum.embeetle.com reports Discourse 2.6.0.beta3 .
This suggests that you have a DNS problem or that an intermediate proxy is to blame.
If you are using Cloudflare, or a CDN, it may be improperly configured.


==================== MEMORY INFORMATION ====================
RAM (MB): 20553

              total        used        free      shared  buff/cache   available
Mem:          20071        4405       14260         305        1405       15048
Swap:          2047           0        2047

==================== DISK SPACE CHECK ====================
---------- OS Disk Space ----------
df: /var/discourse: No such file or directory
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       1.4T  1.1T  183G  87% /

==================== DISK INFORMATION ====================
Disk /dev/sda: 1.4 TiB, 1503238553600 bytes, 2936012800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x645c17b2

Device     Boot   Start        End    Sectors  Size Id Type
/dev/sda1  *       2048    1953791    1951744  953M 83 Linux
/dev/sda2       1953792 2936010751 2934056960  1.4T 83 Linux

==================== END DISK INFORMATION ====================

==================== MAIL TEST ====================
For a robust test, get an address from http://www.mail-tester.com/
Or just send a test message to yourself.
Email address for mail test? ('n' to skip) [johan@embeetle.com]: johan@sikanda.be
Sending mail to johan@sikanda.be. . . 
Testing sending to johan@sikanda.be using smtp.zoho.com:587.
SMTP server connection successful.
Sending to johan@sikanda.be. . . 
Mail accepted by SMTP server.

If you do not receive the message, check your SPAM folder
or test again using a service like http://www.mail-tester.com/.

If the message is not delivered it is not a problem with Discourse.

Check the SMTP server logs to see why it failed to deliver the message.
Replacing: SMTP_PASSWORD
Replacing: LETSENCRYPT_ACCOUNT_EMAIL
Replacing: DEVELOPER_EMAILS
Replacing: DISCOURSE_DB_PASSWORD
Replacing: Sending mail to

==================== DONE! ====================

SSH를 통해 명령줄에서 업그레이드를 시도해 보고, 도움이 되는지 확인해 보세요.

다음처럼 시도해 보았습니다:

git pull
./launcher rebuild app

명령줄에서는 모두 정상적으로 보입니다. 하지만 브라우저에서는 여전히 페이지가 불완전하게 표시되고, 개발자 콘솔에 “Uncaught TypeError: Discourse.getURL is not a function” 오류가 나타납니다.

이것은 플러그인 또는 테마 컴포넌트에서 비롯된 것일 수 있습니다. 어디서 오는지 확인하려면 하나씩 비활성화해 보세요.

이와 관련하여, 모든 테마를 비활성화하는 안전 모드를 시도해 보세요.

이는 Tag icons 컴포넌트의 구버전을 사용하고 있다는 의미입니다. 관리자 패널에서 해당 컴포넌트를 업데이트해 주세요.

그렇게 하니 해결되었습니다. 이제 포럼이 다시 정상 작동합니다.

모두 감사합니다. Discourse는 훌륭하고, 메타포럼 커뮤니티도 훌륭합니다. 여러분도 훌륭합니다.