8.5.4: Call to a member function setBlockCollectionObject() on boolean after server gateway timeout

Permalink
I've changed my mod_php for php-fpm and started having issues with installing packages which used to be installed without any problems.

First I had a
Gateway Timeout
The gateway did not receive a timely response from the upstream server or application.

error. I've uninstalled the package, installing it again and it throws an exception:
Call to a member function setBlockCollectionObject() on boolean

which leads to /srv/www/htdocs/c584/concrete/src/Entity/Block/BlockType/BlockType.php at line 658:
$nb->setBlockCollectionObject($c);

I've never ever had this error before. I haven't touched the code.

Could it be a database corruption which happened during the timeout? I can't think it may be the package error because I used the same code in many packages and that never happened until now.

The timeout happened a few times until I increased the php default_socket_timeout from 60 to 600 (as I read on the internet that may cause the timeout). Is there anything else I have to set in php for better use of php-fpm?

linuxoid
 
linuxoid replied on at Permalink Reply
linuxoid
Wow... I've disabled SSL and mod_rewrite and everything's working perfectly again.
linuxoid replied on at Permalink Reply
linuxoid
As I explained in my other post on server timeout, this exception is related to the server time out I had. After repeating the server setup and reinstalling the package, I got the same timeout once and from then on every single package installation fails with that error.

It looks to me as the database has been corrupted. Deducing the cryptic message, looks like it tried to do something with a block, it might have then timed out, it recorded something in the DB but because of the failed installation it can't get through that step anymore.

Where can I find that block think it's trying to locate in /srv/www/htdocs/c584/concrete/src/Entity/Block/BlockType/BlockType.php at line 658:
$nb->setBlockCollectionObject($c);
linuxoid replied on at Permalink Reply
linuxoid
Looks like I've fixed it.

I've deleted all block types in the DB related to my package and now all is good, installs/uninstalls fine.

So it was definitely a corrupted install after the timeout.