Проблема с семафорами после обновления на FreeBSD 8.4

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Dmitriy_K
сержант
Сообщения: 200
Зарегистрирован: 2009-04-07 6:22:33
Откуда: г.Королёв

Проблема с семафорами после обновления на FreeBSD 8.4

Непрочитанное сообщение Dmitriy_K » 2013-09-16 21:17:08

Кто-нибудь может подсказать причину недоступности семафоров в jail после обновления на FreeBSD 8.4 ? :crazy:
В версии ядра 8.3 всё было нормально. Пересборка не помогает.

Код: Выделить всё

zabbix_agentd [24687]: cannot create Semaphore: [78] Function not implemented
zabbix_agentd [24687]: unable to create mutex for log file
Параметры sysctl не менялись:

Код: Выделить всё

% sysctl security.jail
security.jail.param.cpuset.id: 0
security.jail.param.host.hostid: 0
security.jail.param.host.hostuuid: 64
security.jail.param.host.domainname: 256
security.jail.param.host.hostname: 256
security.jail.param.children.max: 0
security.jail.param.children.cur: 0
security.jail.param.enforce_statfs: 0
security.jail.param.securelevel: 0
security.jail.param.path: 1024
security.jail.param.name: 256
security.jail.param.parent: 0
security.jail.param.jid: 0
security.jail.enforce_statfs: 2
security.jail.mount_allowed: 0
security.jail.chflags_allowed: 0
security.jail.allow_raw_sockets: 1
security.jail.sysvipc_allowed: 1
security.jail.socket_unixiproute_only: 1
security.jail.set_hostname_allowed: 1
security.jail.jail_max_af_ips: 255
security.jail.jailed: 0

kern.ipc.semaem: 16384
kern.ipc.semvmx: 32767
kern.ipc.semusz: 152
kern.ipc.semume: 10
kern.ipc.semopm: 100
kern.ipc.semmsl: 60
kern.ipc.semmnu: 1024
kern.ipc.semmns: 2048
kern.ipc.semmni: 1024
kern.ipc.semmap: 1024
kern.ipc.shm_allow_removed: 0
kern.ipc.shm_use_phys: 1
kern.ipc.shmall: 262144
kern.ipc.shmseg: 128
kern.ipc.shmmni: 192
kern.ipc.shmmin: 1
kern.ipc.shmmax: 1610612736
Прочее:

Код: Выделить всё

% ipcs -S
seminfo:
        semmap:         1024    (# of entries in semaphore map)
        semmni:         1024    (# of semaphore identifiers)
        semmns:         2048    (# of semaphores in system)
        semmnu:         1024    (# of undo structures in system)
        semmsl:           60    (max # of semaphores per id)
        semopm:          100    (max # of operations per semop call)
        semume:           10    (max # of undo entries per process)
        semusz:          152    (size in bytes of undo structure)
        semvmx:        32767    (semaphore maximum value)
        semaem:        16384    (adjust on exit max value)

----------------------------------------------------------------------------------
% ipcs -T
msginfo:
        msgmax:        16384    (max characters in a message)
        msgmni:           40    (# of message queues)
        msgmnb:         2048    (max characters in a message queue)
        msgtql:           40    (max # of messages in system)
        msgssz:            8    (size of a message segment)
        msgseg:         2048    (# of message segments in system)

shminfo:
        shmmax:   1610612736    (max shared memory segment size)
        shmmin:            1    (min shared memory segment size)
        shmmni:          192    (max number of shared memory identifiers)
        shmseg:          128    (max shared memory segments per process)
        shmall:       262144    (max amount of shared memory in pages)

seminfo:
        semmap:         1024    (# of entries in semaphore map)
        semmni:         1024    (# of semaphore identifiers)
        semmns:         2048    (# of semaphores in system)
        semmnu:         1024    (# of undo structures in system)
        semmsl:           60    (max # of semaphores per id)
        semopm:          100    (max # of operations per semop call)
        semume:           10    (max # of undo entries per process)
        semusz:          152    (size in bytes of undo structure)
        semvmx:        32767    (semaphore maximum value)
        semaem:        16384    (adjust on exit max value)
----------------------------------------------------------------------------------
% ipcs -a
Shared Memory:
T           ID          KEY MODE        OWNER    GROUP    CREATOR  CGROUP         NATTCH        SEGSZ         CPID         LPID ATIME    DTIME    CTIME
m        65536   1819301895 --rw------- zabbix   zabbix   zabbix   zabbix              5      1385568          799          799 21:24:32 22:11:53 21:24:32

Semaphores:
T           ID          KEY MODE        OWNER    GROUP    CREATOR  CGROUP          NSEMS OTIME    CTIME
s        65536   2054182919 --rw------- zabbix   zabbix   zabbix   zabbix              9 22:12:03 21:24:32
Последнее соответствует zabbix запущенному в корневой системе.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
BirdGovorun
лейтенант
Сообщения: 878
Зарегистрирован: 2009-10-20 20:27:13
Откуда: Харьков.

Re: Проблема с семафорами после обновления на FreeBSD 8.4

Непрочитанное сообщение BirdGovorun » 2013-09-17 13:34:56

Каким путём обновляли систему?
В любом случае после аргрейда системы, нужно portapgrade -af запустить.

Dmitriy_K
сержант
Сообщения: 200
Зарегистрирован: 2009-04-07 6:22:33
Откуда: г.Королёв

Re: Проблема с семафорами после обновления на FreeBSD 8.4

Непрочитанное сообщение Dmitriy_K » 2013-09-17 14:02:18

К сожалению, не это источник проблемы.
Я наткнулся на неё на трёх серверах. Два обновлялись через freebsd-update, один через исходники. Во всех случаях делалась полная пересборка софта - не помогло.
Полагаю, что в ядре 8.4 были сделаны какие-то изменения в части sysctl. Понять бы что поменялось. :(
Каким образом перестала работать "security.jail.sysvipc_allowed: 1" (которая раньше спасала zabbix) ? :st:

Аватара пользователя
BirdGovorun
лейтенант
Сообщения: 878
Зарегистрирован: 2009-10-20 20:27:13
Откуда: Харьков.

Re: Проблема с семафорами после обновления на FreeBSD 8.4

Непрочитанное сообщение BirdGovorun » 2013-09-17 14:16:07

Посмотрите в /usr/src/UPDATING может там чего есть.
Могу только предложить откатиться на 8.3 или дальше обновиться до 9.2

Dmitriy_K
сержант
Сообщения: 200
Зарегистрирован: 2009-04-07 6:22:33
Откуда: г.Королёв

Re: Проблема с семафорами после обновления на FreeBSD 8.4

Непрочитанное сообщение Dmitriy_K » 2013-09-17 15:28:44

Ура, проблема решена! :Yahoo!:
Нагуглил и прогнал через мозг это: http://www.freebsd.org/releases/8.4R/errata.html
Как обычно, там всё очень кратко. Пожалуй, настолько кратко, что это источник проблем для многих. Трудно понять смысл. :no:
These parameters must now be specified in jail_parameters (or jail_jailname_parameters for per-jail configuration) in rc.conf(5). For example:
jail_parameters="allow.sysvipc allow.raw_sockets"

The valid keywords are the following. For more detail, see jail(8) manual page.
allow.set_hostname
allow.sysvipc
allow.raw_sockets
allow.chflags
allow.mount
allow.mount.devfs
allow.mount.nullfs
allow.mount.procfs
allow.mount.zfs
allow.quotas
allow.socket_af
До FreeBSD 8.4 параметры для jail обычно (или часто) прописывали в sysctl.conf:

Код: Выделить всё

security.jail.allow_raw_sockets=1
security.jail.sysvipc_allowed=1
Сейчас этот подход перестал проходить, нужно чтобы все параметры для jail указывались в rc.conf
То, что имеется в sysctl.conf и текущих параметрах sysctl ядра, игнорируется скриптом запуска jail (/etc/rc.d/jail).
У меня в rc.conf была только дублирующая sysctl.conf строка "jail_sysvipc_allow="YES"".
Добавил туда ещё строку "jail_parameters="allow.sysvipc allow.raw_sockets"" (это разрешение для всех jail, может быть назначено индивидуально).
И семафоры в клетке стали доступны. :smile:

Если при запуске jail в rc.conf не будет строки "jail_sysvipc_allow="YES", то будет ругань такого вида:

Код: Выделить всё

#/etc/rc.d/jail start test_jail
Configuring jails: sysvipc_allow=NO.
Starting jails: test.ru
Война закончена, всем спасибо! :-D