LINUX.ORG.RU
ФорумTalks

Systemd убивает Postgresql, ест детей и взрывает IPC

 , , ,


1

3

tl;dr - на Ubuntu 16.04 если вы не подшаманите logind.conf, ssh в пользователя 'postgres' убьет базу данных.

https://lists.freedesktop.org/archives/systemd-devel/2014-April/018373.html

Каменты жгут, я переведу только оппост для Ъ:

В Systemd 212 новые дефолты удаляют IPC (включая память SYSV), когда пользователь «полностью» вылогинивается. Яко опция RemoveIPC=yes

Т.е. сервис postgresql service - не логин, если вы ssh'итесь в постгрес (например чтобы rsync'нуть wal файлы) и потом вылогиниваетесь, Systemd удоляет всю постгресовскую SYSV память, шта тут же приводит к чудным ошибкам типа:

FATAL:  semop(id=92307463) failed: Invalid argument
CONTEXT:  xlog redo insert: rel 1663/16414/112697213; tid 1319269/129
LOG:  background writer process (PID 24589) exited with exit code 1
LOG:  terminating any other active server processes
LOG:  all server processes terminated; reinitializing
LOG:  semctl(119406593, 0, IPC_RMID, ...) failed: Invalid argument

Приходит на ум простейший фикс на postgresql.service:

PAMname=systemd-login

Но сие не выйдет по двум причинам: 1) оно не подхватывается logind (в логах не появляется ничего типа «Started User Manager for UID 88», как это происходит при заходе по ssh) 2) как только pg_ctl останавливается, сессия закрывается. (pg_ctl запускает postgres в фоне)

★★★★☆

Последнее исправление: stevejobs (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Ошибка двухлетней давности - это ошибка двухлетней давности.

Мне казалось, что смысл «стабильных» отложенных релизов в том, чтобы отсеивать выявленные проблемы до релиза, а не в том, чтобы выкатывать всё то же с задержкой в два года.

alpha ★★★★★
()

Systemd 212

Кто-то на Альфе Центавра получил апдейты?

Deleted
()
Ответ на: комментарий от alpha

Вам казалось. Только дебианоубунтомантейнеры обладают истинным знанием что такое стабильность.

Deleted
()
Ответ на: комментарий от deadskif

Да, а еще в ней будет очень трушненько хранить все логи и настройки системы!

vasya_pupkin ★★★★★
()
Ответ на: комментарий от alpha

Т.е. Поттеринг и Ко до сих пор следуют правилу «работает только через годы»?

Solace ★★
()

Systemd убивает Postgresql, ест его детей и взрывает IPC

fixed

goingUp ★★★★★
()

взрывает дома

Выслал тебе пачку сахара.

winlook38 ★★
()

только ссзб разрешает вход postgres через ssh

безотносительно криворукости системд авторов

Deleted
()

От systemd куча проблем. Я уже больше 10 лет пользуюсь линуксом, ни от чего у меня не было столько проблем. Чересчур умный этот systemd, кучу всего пытается делать. Вот в shared память лезет. Кто его просил? Кому оно надо? Мне точно не надо.

Legioner ★★★★★
()

Всех причастных - казнить. А Лёньку особенно жестоко и долго, отрезая по пальчику от его потных ручонок.

Sociopsih ★☆
()
Ответ на: комментарий от der_looser

Спасибо, но я видел тред (ITT очередная перепись истеричных хейтеров) и тут нечего говорить. Внезапно, в мире имеет место несовместимость различных настроек различных программ. Не говоря уже о том, что логин от имени системного пользователя — неочень.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)

We probably need to add some infrastructure to classify users into system users and normal users

Yeeeaaaah!

aidaho ★★★★★
()
Ответ на: комментарий от intelfx

Проблема в том, что systemd делает то, что делать не должен - подчищает за кривым софтом после выхода из системы. Вместо того, чтобы чинить Gnome, сделали костыль, который всё ломает.

Black_Shadow ★★★★★
()
Ответ на: комментарий от spoilt

проблемы нет, но тогда и баг не проявится 8)

Deleted
()
Ответ на: комментарий от intelfx

судя по первым трем письмам, эти «истеричные хейтеры» решали вполне конкретные админские задачи. делали репликацию для postgres. а что ты сделал в свои годы для хип-хопа. я уже писал, что если новое решение ломает сложившиеся практики - то оно не очень. Имеет место не просто несовместимость программ, а Леннарт тупо недостаточно компетентен для архитектора такого уровня. Он в мейл листе говорит: ааа... ннууу... давайте тогда введем деление на системных и обычных пользователей. Раньше ему это в голову просто не пришло.

логин от имени системного пользователя — неочень.

в том линуксе, который я знаю, вобще нет жестого разделения на системного и не системного. так что уж не знаю, что там у вас «неочень».

crypt ★★★★★
()
Последнее исправление: crypt (всего исправлений: 1)

автор, фактический вопрос: у тебя systemd убило на самом деле базу или не убило?

crypt ★★★★★
()

Начиная с 9.4 разделяемая память SysV не используется. Ну и вместо rsync на WAL лучше использовать поточную репликацию со слотами.

maxcom ★★★★★
()
Ответ на: комментарий от maxcom

Начиная с 9.4 разделяемая память SysV не используется.

Начиная с 9.3, стали использовать одновременно и SysV, и POSIX shared memory для хранения основного объема данных. Пропала необходимость настраивать лимиты, но я не вижу, где перестали использовать.

http://rhaas.blogspot.ru/2012/06/absurd-shared-memory-limits.html

Ну и вместо rsync на WAL лучше использовать поточную репликацию со слотами.

rsync может потребоваться в случае восстановления, в ситуации split brain и т.д.

crypt ★★★★★
()
Ответ на: комментарий от intelfx

Внезапно, в мире имеет место несовместимость различных настроек различных программ.

Согласен, это внезапно. Можно другие примеры, кроме сабжа?

next_time ★★★★★
()
Ответ на: комментарий от Behem0th

кстати, о комиксах. ты бы видел, какие смешные картинки рисуют в официальном руководстве по RHEL, чтобы объяснить, что теперь есть две независимые системы для ведения логов, что у каждой свои сильные стороны и как их дружить.

лично я думаю оставить все системы до 2020 на el6, пропустить el7 и дождаться el8, когда все такие места будут уже утоптаны.

crypt ★★★★★
()
Ответ на: комментарий от Black_Shadow

systemd делает то, что делать не должен

Давай, расскажи мне, чего он делать должен, а что нет.

Вместо того, чтобы чинить Gnome

У тебя нездоровая фиксация. GNOME не использует System V IPC.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

Зато он оставлял после себя запущенные процессы, и это решили исправить на уровне системы инициализации.

Ах, ну да, systemd - это же не система инициализации, а решение всех наших проблем.

Black_Shadow ★★★★★
()
Последнее исправление: Black_Shadow (всего исправлений: 1)
Ответ на: комментарий от crypt

а что ты сделал в свои годы для хип-хопа

Ага, «спердобейся» в чистом виде.

Имеет место не просто несовместимость программ

Согласен. На самом деле имеет место ублюдочность SysV IPC.

intelfx ★★★★★
()
Ответ на: комментарий от hateyoufeel

Просто PostgreSQL был спроектирован без учёта systemd, а потому устарел.

...Но нет причин для беспокойства. Леннарт уже начал писать sqld.

ekzotech ★★★★
()
Ответ на: комментарий от intelfx

Ага, «спердобейся» в чистом виде

Не уходи от вопроса. Что сделал-то?

А то что у леннарта не хватает компетенции видно по его ответам в стиле «I don't follow... why...». У чувака в голове есть некий идеальный мир, как у нуба сразу после ccna, и он тупо не понимает что есть реальность со своими проблемами, задачами и процессами, и именно в этой реальности люди живут, работают и получают бабки

upcFrost ★★★★★
()
Ответ на: комментарий от alpha

Если systemd при таких-то багах выпускают в продакшн, то systemd не имеет права на существование, а Поцеринг - на доступ к компьютеру.

Quasar ★★★★★
()
Ответ на: комментарий от Legioner

Legioner> Чересчур умный этот systemd, кучу всего пытается делать. Вот в shared память лезет. Кто его просил? Кому оно надо?

Просто systemd - это вредоносная программа. Это всё объясняет.

Quasar ★★★★★
()
Ответ на: комментарий от intelfx

intelfx> Внезапно, в мире имеет место несовместимость различных настроек различных программ.

Никто не сомневался, что ты будешь приводить гнилые и шизофреничные доводы, чтобы выгородить своего любимого - Поцеринга.

Quasar ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.