F19 + selinux

V F19 ma problem:

setsebool -P httpd_read_user_content 1

SELinux: Could not load policy file /etc/selinux/targeted/policy/policy.29: Cannot allocate memory
/sbin/load_policy: Can’t load policy: Cannot allocate memory
libsemanage.semanage_reload_policy: load_policy returned error code 2.
SELinux: Could not load policy file /etc/selinux/targeted/policy/policy.29: Cannot allocate memory
/sbin/load_policy: Can’t load policy: Cannot allocate memory
libsemanage.semanage_reload_policy: load_policy returned error code 2.
Could not change policy booleans

#uname -a
Linux … 3.9.9-301.fc19.i686.PAE #1 SMP Thu Jul 4 15:25:09 UTC 2013 i686 i686 i386 GNU/Linux

Nechci selinux vyradit z provozu v /etc/selinux/config … (pres volbu permissive)
Driv to fungovalo a tento problem vidim poprve … (ach ty regrese)

Problem je, ze mi pak nenabiha automaticky po startu httpd a mysql (mariadb):

systemctl status mysqld.service

mysqld.service - MySQL database server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled)
Active: failed (Result: exit-code) since Ne 2013-07-07 09:20:08 CEST; 59s ago
Process: 890 ExecStartPost=/usr/libexec/mysqld-wait-ready $MAINPID (code=exited, status=1/FAILURE)
Process: 889 ExecStart=/usr/bin/mysqld_safe --basedir=/usr (code=exited, status=0/SUCCESS)
Process: 559 ExecStartPre=/usr/libexec/mysqld-prepare-db-dir %n (code=exited, status=0/SUCCESS)

čec 07 09:20:06 … mysqld_safe[889]: 130707 09:20:06 mysqld_safe Logging to ‘/var/log/mysqld.log’.
čec 07 09:20:07 … mysqld_safe[889]: 130707 09:20:07 mysqld_safe Starting mysqld daemon with databases from /home/db/mysql
čec 07 09:20:08 … systemd[1]: mysqld.service: control process exited, code=exited status=1
čec 07 09:20:08 … systemd[1]: Failed to start MySQL database server.
čec 07 09:20:08 … systemd[1]: Unit mysqld.service entered failed state.

systemctl status httpd.service

httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
Active: failed (Result: exit-code) since Ne 2013-07-07 09:20:06 CEST; 1min 6s ago
Process: 1039 ExecStop=/usr/sbin/httpd $OPTIONS -k graceful-stop (code=exited, status=0/SUCCESS)
Process: 543 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)

čec 07 09:20:06 … systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
čec 07 09:20:06 … systemd[1]: Failed to start The Apache HTTP Server.
čec 07 09:20:06 … systemd[1]: Unit httpd.service entered failed state.

Jde s tim neco delat? Myslim, ze v bugzille to uz nekdo zminoval, ale jak to dopadlo nevim.

Systemd ma pry nejaky binarni log? Jak si ho prohlidnu? Bude tam vubec neco relevantniho k problemu?
(tohle mi moc informaci neposkytlo: http://fedoraproject.org/wiki/How_to_debug_Systemd_problems, a navic se domnivam, ze problem neni v systemd - to je az zavlecena chyba …)

Dik za info
JJ

Journald můžeš ovládat příkazem journalctl. Jinak bych to nahlásil, vývojáři SELinuxu většinou reagují rychle.

Nedostatek RAM?
https://bugzilla.redhat.com/show_bug.cgi?id=734086

Ano vlozil jsem tam velikost pameti a zatim cekam …

$ free
total used free shared buffers cached
Mem: 4133340 1254584 2878756 0 71972 598536
-/+ buffers/cache: 584076 3549264
Swap: 5713916 0 5713916

To jsem jediny na svete s timto problemem? Nekdy si tak pripadam, protoze neverim tomu, ze nikdo nepouzil prikaz “setsebool -P httpd_read_user_content 1” => vsem to funguje :slight_smile:
(Nainstaloval jsem Fedoru tak, ze jsem ponechal “/home” a preformatoval jen "/ "a “/boot” (swap) - prakticky cista instalace)

Tak nakonec poradili mrknout do dmesg (ze mi to take nenapadlo)
Tam jsem objevil chybu:
out of vmalloc space - use vmalloc= to increase size
prave v souvislosti se SElinux

pridal jsem na radku kernelu vmalloc=256m

pregeneroval grub (grub2-mkconfig -o /boot/grub2/grub.cfg)

reboot

a prikaz: # setsebool -P httpd_unified 1
uz neni problem

ten soubor /etc/selinux/targeted/policy/policy.29 je proste prilis veliky …
pokousel jsem se ho zmensit odebranim nekterych polici modulu ale koncilo to stejnou chybou
(take jsem ho movenul, ale to radeji nezkouset, fedora ani nenajela, musel jsem sahnout po install DVD … a vratit ho pokorne zpatky)

uzitecny prikaz:
cat /proc/meminfo

Predpokladam, ze ve F20 uz tento problem nebude, mozna i v F19 to po pul roce zmizi …

tak to je hodně zvláštní, čekal bych že si se správou alokace paměti kernel poradí automaticky. Také jsem zapinal podobný boolean tuším net_connect na f19 s 1MB ram pro phppgadmin a proběhlo to v pořádku.

tady je pěkné povídání s testy o jaderné fci vmalloc a kmalloc včetně zajímavých testů x86 a ARM. Každopádně na x86 má dotyčná fce limit nikoliv celou fyzickou paměť (jak to je v teorii) ale jen 128MB, dotyčný parametr patrně mění tuto mez. (normálně když se nějaká apka zblazni a alokuje dokola víc a víc tak na konci nastoupí jen pro zajímavost tzv. OOM Killer.) Kluci mají nadání pro super názvy :slight_smile: každopádně ale problém je v souboru politik selinuxu, je zabalený a rozbaluje se do ram do neuvěřitelné velikosti. Byl by to pořádný luxus obětovat více nez pulku ram selinuxu třeba na systému s 256mega.
http://kaiwantech.wordpress.com/2011/08/17/kmalloc-and-vmalloc-linux-kernel-memory-allocation-api-limits/