Segmentation fault pri pokusu o spusteni aplikace pres cli
- tomees
- Člen | 59
Zdravím. Máme docela zapeklitý problém se kterým si už hodně hodin
lámeme hlavu a nevíme co s tím.
Máme už poměrně rozsáhlou aplikaci (vygenerovaný kontejner má něco okolo
6000 tisíc řádků) a narazili jsme na problém. Kolega začal dělat
frontend aplikace a vše se zdálo OK do chvíle, než jsme zkusili spustit
příkaz na symfony konzoli.
php src/bin/cli.php
(obsahuje kontejner z bootstrapu a rovnou spouští symfony konzoli $container->getByType(‚Symfony\Component\Console\Application‘)->run();)
Ve Windows na PHP 7.1 proběhne bez jakékoliv odezvy, nezobrazí nic, ani chybu. Na MacOS s PHP 7.3.9 zobrazí hlášku
[1] 63846 segmentation fault php src/bin/cli.php
Kolega tam přidal několik presenterů, má je poděděné z dalších dvou abstract presenterů a v každém má minimálně dvě traity, ve kterých má továrničky na komponenty včetně jejich DI závislostí (@inject). Zjistil jsem že když určitý počet trait z presenterů odstraním, kompilace kontejneru s podaří a konzole se spustí. Ale jakmile vrátím třeba jednu traitu navíc tak se znovu objeví chyba při dalším pokusu.
Nenapadá někoho čím by to mohlo být? Klasická aplikace v prohlížeči vypadá ok, ale konzoli nejsme schopni pustit.
- Marek Bartoš
- Nette Blogger | 1274
Segfault jsou chyby v phpku a je těžké je zreplikovat. Většinou stačí aktualizovat php, v případě trait občas blbne, když jich víc definuje stejnou metodu či atribut nebo když jsou složitěji zanořené.
- kminekmatej
- Generous Backer | 38
Michal Hlávka napsal(a):
U me segmentation vyhazovalo nette na nette/cache.
Cau, neporesils to nejak? Prave jsme na projektu nasadili Nette Cache a od te
doby nam to zacalo pomerne casto padat prave na Segmentation Fault. Predtim to
spadlo jen cas od casu, coz predpokladam bylo zpusobene tim ze si cachovalo
pouze Nette svoje veci. Jednalo se o FileStorage, prepnuti na DevNullStorage
SegFault nevyhodi.
Premejslim ze zkusm prejit na Memcache Storage.