Public bug reported:
PostgreSQL is dying with the following error:
2016-12-14 11:21:02 UTC [4672-1] postgres@postgres FATAL: semctl(4685831, 3,
SETVAL, 0) failed: Invalid argument
2016-12-14 11:21:02 UTC [3203-2] LOG: server process (PID 4672) exited with
exit code 1
2016-12-14 11:21:02 UTC [3203-3] LOG: terminating any other active server
processes
2016-12-14 11:21:02 UTC [3217-2] WARNING: terminating connection because of
crash of another server process
2016-12-14 11:21:02 UTC [3217-3] DETAIL: The postmaster has commanded this
server process to roll back the current transaction and exit, because another
server process exited abnormally and possibly corrupted shared memory.
2016-12-14 11:21:02 UTC [3217-4] HINT: In a moment you should be able to
reconnect to the database and repeat your command.
2016-12-14 11:21:02 UTC [3203-4] LOG: all server processes terminated;
reinitializing
2016-12-14 11:21:02 UTC [3203-5] LOG: could not remove shared memory segment
"/PostgreSQL.1769907787": No such file or directory
2016-12-14 11:21:02 UTC [3203-6] LOG: semctl(4489217, 0, IPC_RMID, ...)
failed: Invalid argument
2016-12-14 11:21:02 UTC [3203-7] LOG: semctl(4521986, 0, IPC_RMID, ...)
failed: Invalid argument
2016-12-14 11:21:02 UTC [3203-8] LOG: semctl(4554755, 0, IPC_RMID, ...)
failed: Invalid argument
2016-12-14 11:21:02 UTC [3203-9] LOG: semctl(4587524, 0, IPC_RMID, ...)
failed: Invalid argument
2016-12-14 11:21:02 UTC [3203-10] LOG: semctl(4620293, 0, IPC_RMID, ...)
failed: Invalid argument
2016-12-14 11:21:02 UTC [3203-11] LOG: semctl(4653062, 0, IPC_RMID, ...)
failed: Invalid argument
2016-12-14 11:21:02 UTC [3203-12] LOG: semctl(4685831, 0, IPC_RMID, ...)
failed: Invalid argument
2016-12-14 11:21:02 UTC [3203-13] LOG: semctl(4718600, 0, IPC_RMID, ...)
failed: Invalid argument
I have determined that this happens when the postgres user has a high
numbered UID, and it only happens on xenial and yakkety (trusty is
fine).
This is the procedure I used after spinning up a cloud image (but also
verified on a normal install):
sudo apt-get update
sudo apt-get -y dist-upgrade
sudo shutdown -r now
sudo groupadd -g 99199 postgres
sudo useradd -u 99199 -c "PostgreSQL administrator,,," -d /var/lib/postgresql
-g postgres -s /bin/bash postgres
sudo apt-get -y install postgresql autopostgresqlbackup
sudo crontab -e
06 11 * * * cd / && /etc/cron.daily/autopostgresqlbackup
sudo less /var/log/postgresql/*.log
Obviously set the time for the cron entry so it happens as soon as
possible. The manual group and user creation is to demonstrate the
problem. In reality I had adduser.conf configured to put system accounts
in a higher range, and the account was created normally by package
installation.
When I repeat exactly the same procedure but manually set the UID and
GID to 199 instead, it works fine.
Versions on xenial:
Linux pgtest 4.4.0-53-generic #74-Ubuntu SMP Fri Dec 2 15:59:10 UTC 2016 x86_64
x86_64 x86_64 GNU/Linux
postgresql-9.5 9.5.5-0ubuntu0.16.04
And on yakkety:
Linux pgtest 4.8.0-30-generic #32-Ubuntu SMP Fri Dec 2 03:43:27 UTC 2016 x86_64
x86_64 x86_64 GNU/Linux
postgresql-9.5 9.5.5-0ubuntu0.16.10
And on trusty:
Linux pgtest 3.13.0-105-generic #152-Ubuntu SMP Fri Dec 2 15:37:11 UTC 2016
x86_64 x86_64 x86_64 GNU/Linux
postgresql-9.3 9.3.15-0ubuntu0.14.04
All patches applied as of today 2016-12-14.
I've tried to explore whether this is related to systemd (an obvious
difference between trusty and the newer releases), or whether it's the
PostgreSQL or kernel version, but haven't yet found any useful
information.
Happy to assist in debugging.
** Affects: postgresql-9.5 (Ubuntu)
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1649877
Title:
PostgreSQL dies with fatal semctl eror
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/postgresql-9.5/+bug/1649877/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs