Bug 210336 - jails with sysv*="new" can't run postgresql-server: could not create shared memory segment: Function not implemented
Summary: jails with sysv*="new" can't run postgresql-server: could not create shared m...
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: CURRENT
Hardware: Any Any
: --- Affects Many People
Assignee: Jamie Gritton
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-06-16 21:48 UTC by olevole
Modified: 2019-01-07 10:50 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description olevole 2016-06-16 21:48:04 UTC
Postgresql can't run in jails on FreeBSD 11.0-ALPHA3 amd64

I've try to setup jail with params:

sysvsem = "new";
sysvmsg = "new";
sysvmsg = "new";

but postgres not initialized with follow errors:  

creating template1 database in /usr/local/pgsql/data/base/1 ... FATAL:  could not create shared memory segment: Function not implemented
DETAIL:  Failed system call was shmget(key=1, size=48, 03600).
child process exited with exit code 1
initdb: removing contents of data directory "/usr/local/pgsql/data"


How to reproduce:

a) have /etc/sysctl.conf with enlarged ipc shm params:
kern.ipc.shmall=262144
kern.ipc.shmmax=1073741824

b) Install PgSQL:
pkg install databases/postgres95-server

c) create /etc/jail.conf:
---
jail {
exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
host.hostname = "jail.example.com";
path = "/";
sysvsem = "new";
sysvmsg = "new";
sysvmsg = "new";
mount.devfs;
devfs_ruleset="4";
allow.dying = "1";
}
---

d) run jail:
jail -c jail

e) login into jail via 
jexec X csh
and try to run initdb. you got:
--
creating template1 database in /usr/local/pgsql/data/base/1 ... FATAL:  could not create shared memory segment: Function not implemented
DETAIL:  Failed system call was shmget(key=1, size=48, 03600).
--

If you try to create it outside the jail - all will be ok

FreeBSD 11.0-ALPHA3 amd64
Comment 1 olevole 2016-06-16 22:21:43 UTC
i forgot to specify how run initdb:

% su - pgsql
% /usr/local/bin/initdb --pgdata '/usr/local/pgsql/data' --locale 'en_US.UTF-8'
Comment 2 olevole 2016-06-28 07:33:45 UTC
Sorry, its my bad.

sysvmsg set twice, stead of sysvshm. Thanks you for pointed it out via email.

-> close ticket