OT php 5.3.2

Dan Lukes dan at obluda.cz
Mon Apr 12 10:20:51 CEST 2010


On 04/12/10 09:40, Lubomir Majersky:
> Po upgrejde PHP z verzie 5.2.12 na 5.3.2 sa deje nasledovne:
> u jedneho servera mi vsetko slape, jedine z phpMyAdminom mam problem v
> tom, ze po prihlaseni sa, vidim prazdnu stranku...
> u dalsieho servera mi nenabehne apac (core dumped)
> a u dalsieho servera mi pri spustani apaca cez 'apachectl graceful'

Pro programy je obecne smrtelne, pokud program A pri sve cinnosti 
pouziva dynamicke knihovny L1 a L2 pro ktere plati, ze jak L1 tak L2 
pouzivaji knihovnu se jmenem L3 - jenze - pri prekladu byl L1 prelozen 
proti jine verzi ci modifikaci knihovny L3 nez L2.

PHP je konglomerat desitek ruznych modulu zalozenych na desitkach 
knihoven a prostoru k vyse uvedenemu je tam hodne.

Typickym kandidatem byva knihovna libcrypto - ktera muze pochazet bud' 
ze zakladniho systemu, nebo z portu a problem nastane pokud je L2 
prelozena proti libcrypto ze systemu a L2 proti libcrypto z portu, 
nicmene, problem muze nastat i v pripade, ze jak L1 tak L2 jsou obe 
prelozeny proti libcrypto z portu - kazda ale proti jine verzi.

Dalsi oblibeny zdroj nekonzistenci je klientska knihovna od MySQL ci 
jine databaze - zase - dva moduly prelozene proti jinym verzim 
databazoveho engine.

Ve vyctu knihoven bych mohl pokracovat prakticky donekonecna.


Typickym zdrojem nekonzistence je "nekonzistentni spravce", ktery cast 
packages je instalovuje z nejakeho externiho zdroje, cast z jineho 
a/nebo prelozena vlastnimi silami z portu. Nekdy ale muzes instalovat i 
ze stejneho zdroje - ovsem - s casovym odstupem.

Pri upgradech neuskodi cise /usr/ports/UPDATING - pokdu je problem 
nekonzistence u konkretniho update dopredu znam, byva tam popsan, ale ne 
vzdy je dopredu znam - kombinaci nejruznejsich nainstalovanych modulu je 
proste prilis mnoho.

Muzes zkusit pulenim intervalu hledat ktere moduly je potreba v PHP 
zablokovat aby problem zmizel - a pokud je najdes, tak preinstalovat jen 
ty. Ale to je, zaprve, zdlouhave, za druhe, objevis tim jen ty problemy, 
ktere se projevuji dostatecne tragicky uz pri startu Apache a/nebo PHP. 
Ve skutecnosti se ale problemu mohou objevit jen pri pouziti nejake 
konkretni PHP funkce a co hur, problemy nemusi mit podobu "spadnuti", 
ale proste to jen nebude fungovat dobre.

Takze je mozna lepsi tenhle pokus o napravu uplne preskocit a rovnou 
postoupit k nasledujicimu - a tim je kompletni reinstalace vsech 
nainstalovanych portu - a to i tech, u kterych nedoslo ke zmene verze. 
Dulezite je, aby vsechno co budes instalovat pochazelo z jednoho zdroje 
- bud' si to vsechno sam preloz, pouzijes li externi prelozene balicky, 
tak vsechny z jednoho zdroje.

					Dan


More information about the Users-l mailing list