Dne 27. února 2017 17:13 Jiří Eischmann <jiri@eischmann.cz> napsal(a):

2017-02-24 13:28 GMT+01:00 Peter Bačinský <peter@bacinsky.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