mikebronner / laravel-model-caching

Eloquent model-caching made easy.
MIT License
2.24k stars 214 forks source link

Sync belongsToMany throw allowed memory error #368

Open josearagon opened 3 years ago

josearagon commented 3 years ago

Describe the bug Sync post relatedCategories throw PHP Fatal error: Allowed memory size of ***** bytes exhausted Post is a cacheable model and category is a cacheable method. It only pass in production envioronment.

When I try to update related categories from a post, I get a tipical memory error :(.

Eloquent Query Please provide the complete eloquent query that caused the bug, for example:

public function relatedCategories()
    {
            return $this->belongsToMany(Category::class)->withTimestamps();
    }
$post-> relatedCategories()-> sync($request->related_categories);

Stack Trace 2020/09/07 14:16:16 [error] 17231#17231: *59 FastCGI sent in stderr: "PHP message: PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 4096 bytes) in /CODE/www/*.com/httpdocs_9d7999fc5ca37605867751000c54677cdfd1027c/vendor/predis/predis/src/Connection/StreamConnection.php on line 345 PHP message: PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 16384 bytes) in /CODE/www/***.com/httpdocs_9d7999fc5ca37605867751000c54677cdfd1027c/vendor/symfony/error-handler/Error/FatalError.php on line 91" while reading response header from upstream, client: ****, server: *.com, request: "PUT /360panel/posts/45530 HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "****.com", referrer: "https://***.com/360panel/posts/45530/edit"

Environment

Additional context Add any other context about the problem here.

mikebronner commented 3 years ago

@josearagon Please provide the full stack trace.

josearagon commented 3 years ago

@mikebronner I just edited the original comment with the full stack trace. Always need more memory. We try to increase memory_limit but it's never enough.

Thanks a lot

mikebronner commented 3 years ago

@josearagon Where are you getting this stack trace from? I'm looking for the full stack trace from /storage/logs/laravel.log. This seems to be only a partial stack trace.

josearagon commented 3 years ago

Interestingly, Laravel rarely logs an error in this case. The error occurs at php level.