Autor | Zpráva | ||
---|---|---|---|
Jan Doležal Profil |
#1 · Zasláno: 27. 1. 2013, 11:48:41
Ahoj,
mám takový zajímavý problém (Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/0.9.8t PHP/5.4.11). Jde o to, že pro administraci je to pár desítek js souborů (http://pastebin.com/9HnX6jgC). V případě, že je vepíše všechny do jedné komponenty, tak prohlížeč zobrazí chybu: Spojení přerušeno – Spojení se serverem bylo v průběhu načítání stránky ukončeno. Něco jsem testoval a zjistil jsem, že pokud předám 17+ souborů, tak to spadne (ukončí spojení). Bohužel nikde žádná informace v logu. Úplně stejný kod v linuxu funguje bez problému. Komponenta funguje tak, že vezme dané soubory, otevře je a zkopíruje obsahy do jednoho souboru. Nemáte nějaký nápad na řešení? |
||
Davex Profil |
#2 · Zasláno: 27. 1. 2013, 12:39:40
Tato chyba často znamená, že zhavarovalo PHP nebo došla paměť. Zkus určit problematickou část kódu postupným zjednodušováním komponenty. Co pamatuji, tak často padání způsobovalo připojení k MySQL databázi na localhost v OS Windows 7, když bylo zapnuté IPv6 nebo modul eAccelerator v PHP. Složitější regulární výrazy vypuštěné na větší množství dat dokážou často také potrápit (o zabugovaném
ereg* ani nemluvím).
|
||
Jan Doležal Profil |
Davex:
Zkoušel jsem ještě nějaké věci a opravdu je problém v počtu. Například jsem zkusil jquery, jež jsem několikrát okopírova až měl výsledný soubor 10MB a bez problému se to zpracovalo. Uvedený příklad v prním postu nemá ani 1MB. Jinak eAccelerator nemám a pamět je na 1024M Žádné filtry to neobsahuje. Prostě jen vzít obsah souborů a zkopírovat do jednoho. EDIT: Tak přeci jen v lgou apache něco je. Při zadání adresy, kde zniká daný problém se v logu objeví: [Sun Jan 27 17:19:48 2013] [notice] Parent: child process exited with status 255 -- Restarting. [Sun Jan 27 17:19:49 2013] [notice] Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/0.9.8t PHP/5.4.11 configured -- resuming normal operations [Sun Jan 27 17:19:49 2013] [notice] Server built: Jan 28 2012 11:16:39 [Sun Jan 27 17:19:49 2013] [notice] Parent: Created child process 2428 [Sun Jan 27 17:19:49 2013] [warn] Init: Session Cache is not configured [hint: SSLSessionCache] [Sun Jan 27 17:19:50 2013] [notice] Child 2428: Child process is running [Sun Jan 27 17:19:50 2013] [notice] Child 2428: Acquired the start mutex. [Sun Jan 27 17:19:50 2013] [notice] Child 2428: Starting 64 worker threads. [Sun Jan 27 17:19:50 2013] [notice] Child 2428: Starting thread to listen on port 80. |
||
Davex Profil |
#4 · Zasláno: 27. 1. 2013, 17:54:03
Spojování více souborů do jednoho běžně funguje, takže může být chyba ve způsobu, jak to děláš ty.
|
||
Jan Doležal Profil |
#5 · Zasláno: 27. 1. 2013, 18:41:30
Davex:
Osobně mi tam nepřijde nic, co by mohlo extra vadit. https://github.com/janmarek/WebLoader/tree/master/WebLoader Hlavně, na linuxu to jede. Windows dělají zase problémy. |
||
Davex Profil |
#6 · Zasláno: 27. 1. 2013, 19:03:57
Vypadá to jako hodně paměťově náročná komponenta. K pouhému spojení souborů trochu jako kanón na vrabce :-)
Zkus zvětšit velikost stacku v konfiguraci Apache. <IfModule mpm_winnt_module> ThreadStackSize 8388608 </IfModule> |
||
Jan Doležal Profil |
#7 · Zasláno: 27. 1. 2013, 20:25:34
Davex:
Vypadá, že to funguje. :) Děkuji. PS: Já používám i filtry na změnšení atd, ale nejdřív jsem chtěl rozchodit jen klasické spojení souborů. |
||
Časová prodleva: 11 let
|
0