Dne 27. února 2017 17:13 Jiří Eischmann <jiri(a)eischmann.cz> napsal(a):
2017-02-24 13:28 GMT+01:00 Peter Bačinský <peter(a)bacinsky.sk>sk>:
Čaute, nemal niekto z Vás takýto problém s PHP 7
na Ubuntu 16.04 tu na
VPSFree?
session_start() "Could not gather sufficient random data"
Ak hej, vopred díky za riešenie.
Dnes jsem narazil na to samé ve Fedoře 25. Lehnul mi kvůli tomu celý
Nextcloud :/ Mají tam nějaký skript, který pomocí funkce random_int
kontroluje, jestli se generují dostatečně náhodná čísla, a pokud selže,
Nextcloud vůbec nenastartuje. Přišlo to s aktualizací na PHP 7.0.16... Když
jsem downgradoval na 7.0.12, tak problém zmizel. Aktuálně rollbackuju na
snapshot před aktualizací a php si hodím na aktualizační blacklist, ale je
to jenom krátkodobé řešení... Zkoušel jsem i PHP 7.1 z Remiho repozitáře a
chová se to stejně.
Je to divné. Když jsem testoval úroveň entropie přes
/proc/sys/kernel/random/entropy_avail, dostával jsem hodnoty mezi 1700 a
2000. Četl jsem, že entropie nad 1000 by měla být dostatečná.
Haveged v guestu se mi nepodařilo nastartovat. Služba mi selhávala se
stejným výstupem jako kolegovi výše.
Jirka
Tak jenom update: problém je v tom, že PHP zkompilované na novém kernelu
vyžaduje getrandom, což je problém v kontejnerech běžících na starším
kernelu, kde getrandom není k dispozici. Takže problém není v nedostatečně
velké entropii, ale v tom, že generování náhodných čísel je v PHP úplně
rozbité, protože to nefallbackne na urandom. V upstreamu už je to opravené:
https://bugs.php.net/bug.php?id=74105
Řešil jsem to se správcem PHP ve Fedoře a už zítra by měl mít nějaké
testovací buildy s opravou. Nejpozději to bude v aktualizacích v
pravidelném updatu na 7.0.17 za tři týdny. Pokud se to ukáže jako velký
problém, který zasahuje hodně uživatelů, tak dřív. Jako dočasné řešení
minimálně v případě Fedory stačí downgrade na 7.0.15.
Jirka