Warning: Cannot use a scalar value as an array in classes/cache/Cache.php

Автор atrisan, 09 декабря 2018, 00:18:32

« назад - далее »

atrisan

Здравствуйте.
Периодически в админке сайта в разных разделах появляется ошибка.

Warning: Cannot use a scalar value as an array in classes/cache/Cache.php

Symfony\Component\Debug\Exception\
ContextErrorException
in classes/cache/Cache.php (line 453)
if ($tables = $this->getTables($query)) {
  foreach ($tables as $table) {
     $this->initializeTableCache($table);
      if (isset($this->sql_tables_cached[$table][$key])) {
         $this->sql_tables_cached[$table][$key]['count'] += $count;
         $changedTables[$table] = true;                   
      }               
  }           
}       
}


В строке: $this->sql_tables_cached[$table][$key]['count'] += $count;

На сайте включено кеширование через memcached .
Полагаю это от переполнения кеша , то есть не хватает оперативы для кеша.
Т.к. после очистки кеша memcached через консоль ошибка пропадает, но периодически возникает снова.

Может кто сталкивался, как решили?

mistral

А что можно сделать кроме как увеличить размер  memcached?

atrisan

#2
Цитата: mistral от 09 декабря 2018, 12:32:01
А что можно сделать кроме как увеличить размер  memcached?

Проблема в том что на хостинге под  memcached максимум можно выделить 128 МБ и больше я поставить не могу.
Общая выделенная оперативная память 725МБ

Пока переписал условие:

if (isset($this->sql_tables_cached[$table][$key])) {

на
if (isset($this->sql_tables_cached[$table][$key]) && is_array($this->sql_tables_cached[$table][$key])) {

Помогло, никаких побочных эффектов пока не заметил