# PostgreSQL завис при перестроении

**URL:** https://meta.discourse.org/t/postgresql-stuck-during-rebuilding/323434
**Category:** Self-hosting
**Created:** [26.Август.2024 17:36:15 UTC](https://meta.discourse.org/t/postgresql-stuck-during-rebuilding/323434 "2024-08-26T17:36:15Z")
**Posts on this page:** 20
**Page:** 2

<div class="post-metadata">

### Author: ![chaus](https://avatars.discourse-cdn.com/v4/letter/c/4af34b/32.png) [@chaus](https://meta.discourse.org/u/chaus)
#### Post date: [30.Август.2024 08:40:48 UTC](https://meta.discourse.org/t/postgresql-stuck-during-rebuilding/323434/24 "2024-08-30T08:40:48Z")

</div>

У меня та же проблема… У меня Droplet на Ubuntu 20.04. Сначала я пытался обновить Docker прямо из Discourse, но постоянно получал ошибку с кодом 137. Тогда я попытался пересобрать Discourse из командной строки, но процесс завис на сообщении «The database is ready to accept connections». Нажатие Ctrl+C ничего не дало, поэтому я закрыл SSH-сессию, открыл новую, снова запустил Discourse — он работал, но не был обновлён. После перезагрузки Droplet я снова попытался обновить Docker через Discourse, и на этот раз всё прошло успешно. Затем я снова попытался пересобрать Discourse, но он снова завис в том же месте. Снова закрыл SSH, открыл новую сессию и запустил Discourse, но теперь вижу экран «Oops»! Теперь мой сайт Discourse недоступен, а единственный способ, которым мне ранее удавалось восстановиться после экрана «Oops», — это пересборка приложения, что сейчас невозможно.

Теперь я в тупике, так как мой опыт работы с Discourse и Droplet очень ограничен, и я не знаю, что делать дальше. В моём файле app.yml используется только плагин docker\_manager, поэтому я могу предположить, что ошибка связана с тем, что версия Docker новее и несовместима с моей версией Discourse? Не знаю. Я обновлял Discourse в последний раз в январе, так что он не так уж устарел…

Мой сайт недоступен, пока эту проблему не решат… Единственный вариант — создать новый Droplet, заново настроить всё и восстановить резервную копию Discourse, которую я сделал? Это мой единственный выход сейчас? 😫

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [30.Август.2024 09:01:14 UTC](https://meta.discourse.org/t/postgresql-stuck-during-rebuilding/323434/25 "2024-08-30T09:01:14Z")

</div>

Ошибка 137 означает нехватку оперативной памяти. Попробуйте добавить больше файла подкачки (swap). Если у вас всего 1 ГБ ОЗУ, я бы увеличил её до 2 ГБ и, возможно, добавил 3–4 ГБ файла подкачки.

Вы можете попробовать запустить:

```
./launcher start app

```

Но, скорее всего, база данных уже слишком сильно обновилась для старого контейнера.

Если вы зашли в тупик и хотите получить платную поддержку, обратитесь по адресу [Contact Us - Literate Computing](https://www.literatecomputing.com/contact)

Редактирование: Вот что я бы сделал:

> [@Alan Tan](#):
>
> пожалуйста, напишите мне в личные сообщения, чтобы я мог отладить проблему на сервере, где она возникает

---

<div class="post-metadata">

### Author: ![stanlog](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stanlog/32/445257_2.png) [@stanlog](https://meta.discourse.org/u/stanlog)
#### Post date: [30.Август.2024 09:54:52 UTC](https://meta.discourse.org/t/postgresql-stuck-during-rebuilding/323434/26 "2024-08-30T09:54:52Z")

</div>

Привет, у меня та же ошибка. Пока можно обойти это, принудительно указав параметр версии v3.3.0 в app.yml. Архитектура AMD64, Ubuntu 18.04. Странно, что сбой произошел в минорной версии, а обновление до v3.3.0 на прошлой неделе прошло без проблем 😐

---

<div class="post-metadata">

### Author: ![tgxworld](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tgxworld/32/106117_2.png) [@tgxworld](https://meta.discourse.org/u/tgxworld)
#### Post date: [30.Август.2024 10:02:24 UTC](https://meta.discourse.org/t/postgresql-stuck-during-rebuilding/323434/27 "2024-08-30T10:02:24Z")

</div>

Если у кого-то возникла эта проблема и вы готовы предоставить мне доступ к вашему серверу, пожалуйста, напишите мне в личные сообщения, чтобы я мог отладить проблему на сервере, где она проявляется. Я пробовал множество способов, но не смог воспроизвести эту проблему, что затрудняет внесение исправления.

---

<div class="post-metadata">

### Author: ![chaus](https://avatars.discourse-cdn.com/v4/letter/c/4af34b/32.png) [@chaus](https://meta.discourse.org/u/chaus)
#### Post date: [30.Август.2024 12:10:16 UTC](https://meta.discourse.org/t/postgresql-stuck-during-rebuilding/323434/28 "2024-08-30T12:10:16Z")

</div>

Я не вижу в своём профиле способа написать вам в личные сообщения…

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [30.Август.2024 12:13:13 UTC](https://meta.discourse.org/t/postgresql-stuck-during-rebuilding/323434/29 "2024-08-30T12:13:13Z")

</div>

Вам нужен уровень доверия 1, чтобы отправлять сообщения

> [@Jeff Atwood](#):
>
> Получите уровень доверия 1, выполнив следующие действия:
> 
> - Участвуя как минимум в **5** темах
> - Прочитав как минимум **30** сообщений
> - Проведя в общей сложности **10** минут за чтением сообщений

Судя по статистике в вашем профиле, вы уже очень близки к этому.

---

<div class="post-metadata">

### Author: ![tanya\_byrne](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tanya_byrne/32/444826_2.png) [@tanya\_byrne](https://meta.discourse.org/u/tanya_byrne)
#### Post date: [30.Август.2024 12:49:21 UTC](https://meta.discourse.org/t/postgresql-stuck-during-rebuilding/323434/30 "2024-08-30T12:49:21Z")

</div>

Для тех, кто столкнулся с этой проблемой, когда Discourse не работает, я обнаружил, что можно запустить старую версию форума, перезапустив виртуальную машину и выполнив команду `./launcher start app`. Эта команда не сработает после попытки пересборки без перезапуска вашего экземпляра или виртуальной машины.

В понедельник я смогу обновить версию Ubuntu на нашей затронутой виртуальной машине, поэтому буду держать всех в курсе результатов.

---

<div class="post-metadata">

### Author: ![sallypf](https://avatars.discourse-cdn.com/v4/letter/s/c57346/32.png) [@sallypf](https://meta.discourse.org/u/sallypf)
#### Post date: [30.Август.2024 13:32:41 UTC](https://meta.discourse.org/t/postgresql-stuck-during-rebuilding/323434/31 "2024-08-30T13:32:41Z")

</div>

Ctrl+C не работает, когда система зависла; приходится перезагружать компьютер.

---

<div class="post-metadata">

### Author: ![sallypf](https://avatars.discourse-cdn.com/v4/letter/s/c57346/32.png) [@sallypf](https://meta.discourse.org/u/sallypf)
#### Post date: [30.Август.2024 13:34:49 UTC](https://meta.discourse.org/t/postgresql-stuck-during-rebuilding/323434/32 "2024-08-30T13:34:49Z")

</div>

Эта команда также ничего не делает.

```plaintext
**/var/discourse** # ./launcher start app

Обнаружена архитектура x86_64.

ПРЕДУПРЕЖДЕНИЕ: файл containers/app.yml доступен для чтения всем. Вы можете защитить этот файл, выполнив: chmod o-rwx containers/app.yml

+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=2 -e UNICORN_SIDEKIQS=1 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e LETSENCRYPT_DIR=/shared/letsencrypt -e DISCOURSE_FORCE_HTTPS=true -e LC_ALL=en_US.UTF-8 -e LANGUAGE=en_US.UTF-8 -e DISCOURSE_HOSTNAME=techoforum.com -e DISCOURSE_DEVELOPER_EMAILS=techoforumd@gmail.com -e DISCOURSE_SMTP_ADDRESS=smtp.sendgrid.net -e DISCOURSE_SMTP_PORT=587 -e DISCOURSE_SMTP_USER_NAME=apikey -e DISCOURSE_SMTP_PASSWORD=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 -e DISCOURSE_SMTP_DOMAIN=gmail.com -e DISCOURSE_NOTIFICATION_EMAIL=techoforumd@gmail.com -e LETSENCRYPT_ACCOUNT_EMAIL=me@example.com -h discourseonubuntu2004-s-1vcpu-1gb-sfo3-01-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:f8:99:7d:c3:d6 local_discourse/app /sbin/boot

Не удалось найти образ 'local_discourse/app:latest' локально.

docker: Ошибка ответа от демона: доступ на извлечение образа local_discourse/app запрещен, репозиторий не существует или может потребоваться 'docker login': отказано: запрошенный доступ к ресурсу запрещен.

См. 'docker run --help'.

```

---

<div class="post-metadata">

### Author: ![sallypf](https://avatars.discourse-cdn.com/v4/letter/s/c57346/32.png) [@sallypf](https://meta.discourse.org/u/sallypf)
#### Post date: [30.Август.2024 13:43:10 UTC](https://meta.discourse.org/t/postgresql-stuck-during-rebuilding/323434/33 "2024-08-30T13:43:10Z")

</div>

У меня есть другой форум на другом Droplet, и там не возникает никаких проблем с обновлением. Странно, почему при одинаковой конфигурации сервера на одном Droplet возникают проблемы, а на другом — нет?

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [30.Август.2024 14:01:04 UTC](https://meta.discourse.org/t/postgresql-stuck-during-rebuilding/323434/34 "2024-08-30T14:01:04Z")

</div>

> [@sallypf](#):
>
> Ctrl+c не работает, когда система зависла — приходится перезагружать компьютер.

Звучит как проблема с оперативной памятью. Сколько у вас RAM и swap-памяти? Я бы добавил 1–2 ГБ пространства swap (и, возможно, увеличил RAM, если у вас всего 1 ГБ).

> [@sallypf](#):
>
> У меня есть другой форум на другом дроплете, и там проблем с обновлением нет. Странно, почему при одинаковой конфигурации сервера на одном дроплете возникают проблемы, а на другом — нет?

Сколько RAM и swap-памяти на этих системах? Какой вывод команды:

```
free -h

```

Именно нехватка RAM объясняет, почему @tgxworld не смог воспроизвести проблему.

Я почти уверен, что дело в RAM/swap.

---

<div class="post-metadata">

### Author: ![tgxworld](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tgxworld/32/106117_2.png) [@tgxworld](https://meta.discourse.org/u/tgxworld)
#### Post date: [30.Август.2024 14:22:11 UTC](https://meta.discourse.org/t/postgresql-stuck-during-rebuilding/323434/35 "2024-08-30T14:22:11Z")

</div>

Кстати, если вы столкнулись с этой проблемой, вы можете временно обойти её, добавив `base_image: discourse/base:2.0.20240708-0023` в начало файла `containers/app.yml`.

---

<div class="post-metadata">

### Author: ![tanya\_byrne](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tanya_byrne/32/444826_2.png) [@tanya\_byrne](https://meta.discourse.org/u/tanya_byrne)
#### Post date: [30.Август.2024 14:27:14 UTC](https://meta.discourse.org/t/postgresql-stuck-during-rebuilding/323434/36 "2024-08-30T14:27:14Z")

</div>

> [@Jay Pfaffman](#):
>
> `free -h`

Не уверен, что в моём случае это проблема с оперативной памятью, так как у затронутой виртуальной машины выделено 125 ГиБ, а доступно 78 ГБ.

```plaintext
              total used free shared buff/cache available
Mem: 125G 14G 940M 31G 110G 78G
Swap: 0B 0B 0B

```

Сервер разработки с той же ОС, который успешно обновился без этой проблемы, имеет всего 16 ГиБ оперативной памяти.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [30.Август.2024 14:29:02 UTC](https://meta.discourse.org/t/postgresql-stuck-during-rebuilding/323434/37 "2024-08-30T14:29:02Z")

</div>

> [@tanya\_byrne](#):
>
> у ВМ выделено 125 ГиБ

Чёрт. Это должно было всё объяснить. 🤷

---

<div class="post-metadata">

### Author: ![tanya\_byrne](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tanya_byrne/32/444826_2.png) [@tanya\_byrne](https://meta.discourse.org/u/tanya_byrne)
#### Post date: [30.Август.2024 14:33:56 UTC](https://meta.discourse.org/t/postgresql-stuck-during-rebuilding/323434/38 "2024-08-30T14:33:56Z")

</div>

Может быть, это проблема с размером базы данных?

База данных на нашем продакшн-сервере довольно большая, а на дев-сервере — очень маленькая. Это единственное существенное различие между виртуальными машинами, которые успешно обновились, и той, которая пострадала (в моём случае).

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [30.Август.2024 15:13:57 UTC](https://meta.discourse.org/t/postgresql-stuck-during-rebuilding/323434/39 "2024-08-30T15:13:57Z")

</div>

Возможно, вы изменили конфигурацию памяти для базы данных?

Какого размера ваша база данных?

---

<div class="post-metadata">

### Author: ![tanya\_byrne](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tanya_byrne/32/444826_2.png) [@tanya\_byrne](https://meta.discourse.org/u/tanya_byrne)
#### Post date: [30.Август.2024 15:15:38 UTC](https://meta.discourse.org/t/postgresql-stuck-during-rebuilding/323434/40 "2024-08-30T15:15:38Z")

</div>

Я проверю и посмотрю, не изменилось ли что-то

---

<div class="post-metadata">

### Author: ![Equination](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/equination/32/231427_2.png) [@Equination](https://meta.discourse.org/u/Equination)
#### Post date: [01.Сентябрь.2024 16:13:00 UTC](https://meta.discourse.org/t/postgresql-stuck-during-rebuilding/323434/41 "2024-09-01T16:13:00Z")

</div>

> [@tgxworld](#):
>
> Кстати, для всех, кто столкнулся с этой проблемой, сейчас можно обойти её, добавив `base_image: discourse/base:2.0.20240708-0023` в начало файла `containers/app.yml`.

Это единственное, что сработало для меня. Спасибо, что поделились этим!! Мои клиенты тоже благодарят вас 🙂

Надеюсь, что скоро мы получим правильное исправление этой проблемы.

---

<div class="post-metadata">

### Author: ![sallypf](https://avatars.discourse-cdn.com/v4/letter/s/c57346/32.png) [@sallypf](https://meta.discourse.org/u/sallypf)
#### Post date: [01.Сентябрь.2024 20:05:59 UTC](https://meta.discourse.org/t/postgresql-stuck-during-rebuilding/323434/42 "2024-09-01T20:05:59Z")

</div>

> [@pfaffman](#):
>
> Это похоже на проблему с оперативной памятью. Сколько у вас оперативной памяти и swap-пространства? Я бы добавил 1–2 ГБ swap-пространства (и, возможно, увеличил бы оперативную память, если у вас всего 1 ГБ).

Здравствуйте,  
Я только что увеличил размер Droplet, удвоив объём оперативной памяти и увеличив размер диска. Проблема всё ещё сохраняется.  
Есть ли что-то ещё, что можно попробовать?

```plaintext
# free -h
              total used free shared buff/cache available
Mem: 1.9Gi 289Mi 83Mi 11Mi 1.6Gi 1.5Gi
Swap: 2.0Gi 3.0Mi 2.0Gi

# df -h
Filesystem Size Used Avail Use% Mounted on
udev 941M 0 941M 0% /dev
tmpfs 198M 1.1M 197M 1% /run
/dev/vda1 34G 14G 21G 39% /
tmpfs 986M 0 986M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 986M 0 986M 0% /sys/fs/cgroup
/dev/vda15 105M 7.4M 97M 8% /boot/efi
/dev/loop1 56M 56M 0 100% /snap/core18/2829
/dev/loop2 56M 56M 0 100% /snap/core18/2823
/dev/loop3 92M 92M 0 100% /snap/lxd/29619
/dev/loop0 64M 64M 0 100% /snap/core20/2264
/dev/loop4 64M 64M 0 100% /snap/core20/2318
/dev/loop5 39M 39M 0 100% /snap/snapd/21465
/dev/loop6 92M 92M 0 100% /snap/lxd/24061
/dev/loop7 39M 39M 0 100% /snap/snapd/21759
tmpfs 198M 0 198M 0% /run/user/0
overlay 34G 14G 21G 39% /var/lib/docker/overlay2/3c7ebf42647de2b5df34cba2b047079fd3454ea7fe9b04c7b70f227df1e7eafe/merged

```

---

<div class="post-metadata">

### Author: ![sallypf](https://avatars.discourse-cdn.com/v4/letter/s/c57346/32.png) [@sallypf](https://meta.discourse.org/u/sallypf)
#### Post date: [01.Сентябрь.2024 20:36:23 UTC](https://meta.discourse.org/t/postgresql-stuck-during-rebuilding/323434/43 "2024-09-01T20:36:23Z")

</div>

> [@tgxworld](#):
>
> Кстати, если кто-то столкнулся с этой проблемой, можно временно обойти её, добавив `base_image: discourse/base:2.0.20240708-0023` в начало файла `containers/app.yml`.

О боже! Почему я не прочитал это решение раньше. Это тоже помогло мне.  
Так какое решение будет актуально в будущем? Нужно ли и дальше указывать этот базовый образ или его следует менять для получения обновлённого образа?

[Предыдущая страница](https://meta.discourse.org/t/postgresql-stuck-during-rebuilding/323434.md?page=1)

[Следующая страница](https://meta.discourse.org/t/postgresql-stuck-during-rebuilding/323434.md?page=3)
