Udało mi się (chyba) znaleźć przyczynę. Użyłem do tego xdebug.auto_trace = 1
. Po włączeniu tej opcji dostajemy zajebisty trace (domyślnie) w katalogu /tmp. Wystarczy przewinąć na koniec i widzimy, gdzie się wywalił skrypt.
Koduje... koduje i nagle zaczęło mi randomowo wywalać 502. Na dowolnej podstronie. Nie dzieje się to za każdym razem, ale jak radośnie poprzeklikuję się pomiędzy podstronami to po kilku sekundach dostanę 502.
Jak zmienię branch na mastera, albo cofnę się x commitów to problem ustaje, ale póki co nie udało mi się ustalić czy i jaki kawałek kodu jest za to odpowiedzialny. Nie mam pomysłu, bo kod się wywala w takich miejscach, ze nawet nie przechodzi przez zmiany, które wprowadziłem...
Spróbowałem dać die(123)
w różnych miejscach aplikacji, w tym na samym końcu akcji w kontrolerze. Do momentu jak die tam był to kod do tego momentu dochodził, ale jak go usunąłem i kliknąłem pare razy f5 to znowu to samo.
Syslog:
Nov 2 14:48:13 foo mysqld[1376]: 2017-11-02 14:48:13 140679083760384 [Warning] Aborted connection 3144 to db: 'foo_prod' user: 'root' host: 'localhost' (Got an error reading communication packets)
Nov 2 14:48:13 foo kernel: [21780.492560] traps: php-fpm7.0[11713] general protection ip:55b8b9d5cc94 sp:7ffc9ba8ca00 error:0 in php-fpm7.0[55b8b9b2a000+3ae000]
Próbowałem zrobić core dump i odczytać zrzut z użyciem gdb, ale okazało się ze dostałem jakieś krzaki, z których nic nie rozumiem (tam chyba powinny być nazwy funkcji?);
#0 0x000055fd8dc23c94 in ?? ()
#1 0x00007ffcc6b098f0 in ?? ()
#2 0x00007fe6d9692d80 in ?? ()
#3 0x00007fe6d965bc00 in ?? ()
#4 0x00007fe6cacc7e30 in ?? ()
#5 0x000055fd8f14f420 in ?? ()
#6 0x0000000000000020 in ?? ()
#7 0x00007ffcc6b09800 in ?? ()
#8 0x00007ffcc6b09808 in ?? ()
#9 0x00007fe6d9692da0 in ?? ()
#10 0x00007fe6d9692d90 in ?? ()
#11 0x00007fe6d97699d8 in ?? ()
#12 0x00007fe600001406 in ?? ()
#13 0x0000000000000165 in ?? ()
#14 0x0000000000000000 in ?? ()
Coś tam wyczytałem ze to może być segmentation fault, ale nie bardzo rozumiem co to, a tym bardziej co to może powodować.
Używam minta 18, nginx, mariadb 10.1, php 7.0.x i phalcona 3.