Object serialization is not supported by class
- exquis
- Člen | 83
Ahoj,
na jednom projektu se mi při výskytu libovolné chyby a vyvolání BadRequestException „$this->error();“ zaloguje
Nette\NotImplementedException
Object serialization is not supported by class XYZ
Fakt si s tím nevím rady proč se to tak děje, většinou je „$this->error();“ správný stav, takže ten odebírat nechci. Problém je, že se to děje opravdu často (třeba 5× denně), takže mi na mail chodí tyto nesmyslné chyby a pak když je na projektu reálný problém, tak už mi nic nepřijde.
Obrázek s chybou https://ibb.co/SsZxd3j
Zkoušel jsem různě upravovat ErrorPresenter, error_reporting v PHP, komponenty, ale prostě nic nepomohlo.
Celkove se toto deje jen na produkci, se zapnutou tracy je vse v pohode.
Díky za každý tip!
Editoval exquis (23. 3. 13:42)
- Marek Bartoš
- Nette Blogger | 1229
Jestli tu chybu dovedeš zreplikovat, tak bych začal přidáním
bdump(debug_backtrace());
do té metody. Je dost zvláštní, že
ti Tracy vypsala takhle krátký call stack. Z callstacku už by bylo jasné,
proč se komponenta pokouší serializovat.
Můj odhad je, že se serializuje presenter, protože se někam předává při forward nebo redirect a musí se tedy někam uložit (serializovat). Možná skrze nějaký objekt, který má presenter nebo Application v properties.
Kdyby se to náhodou nepodařilo vyřešit, tak jako dočasný fix poslouží git patch, ve kterém řádek odstraníš. Existuje pro to Composer plugin https://github.com/…hes/tree/1.x
- exquis
- Člen | 83
Marek Bartoš napsal(a):
Jestli tu chybu dovedeš zreplikovat, tak bych začal přidáním
bdump(debug_backtrace());
do té metody. Je dost zvláštní, že ti Tracy vypsala takhle krátký call stack. Z callstacku už by bylo jasné, proč se komponenta pokouší serializovat.Můj odhad je, že se serializuje presenter, protože se někam předává při forward nebo redirect a musí se tedy někam uložit (serializovat). Možná skrze nějaký objekt, který má presenter nebo Application v properties.
Kdyby se to náhodou nepodařilo vyřešit, tak jako dočasný fix poslouží git patch, ve kterém řádek odstraníš. Existuje pro to Composer plugin https://github.com/…hes/tree/1.x
Moc díky za tip, nepodařilo se to sice dotrackovat, vraci to jen jeden radek a to:
#0 [internal function]: Nette\ComponentModel\Component->__sleep()
asi to zkusim formou toho Patche :)