Segmentation fault pri pokusu o spusteni aplikace pres cli

tomees
Člen | 59
+
0
-

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.

tomees
Člen | 59
+
0
-

Hmm, ted jsem vyzkousel php 7.2.22_1 a projde to bez problemu…

Marek Bartoš
Nette Blogger | 1155
+
0
-

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é.

tomees
Člen | 59
+
0
-

Jojo, ja to jeste projdu, ale bude to nejspis tim zanorenim, kolega zrusil traity a tim jsme to docasne vyresili. Ale jeste to chci otestovat pod ruznymi verzemi PHP

Michal Hlávka
Člen | 190
+
0
-

U me segmentation vyhazovalo nette na nette/cache.

kminekmatej
Generous Backer | 34
+
0
-

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.

Milo
Nette Core | 1283
+
+3
-

V PHP nemá cenu měnit aplikaci při segfaultu. Upgrade/downgrade PHP to musí vyřešit.