[imp] Cannot write Autoloader cache to backend.
Jens Grüntjes
jens.gruentjes at ebira.de
Thu Apr 16 12:28:28 UTC 2015
Zitat von Jens Grüntjes <jens.gruentjes at ebira.de>:
> Zitat von Jan Schneider <jan at horde.org>:
>
>> Zitat von Jens Grüntjes <jens.gruentjes at ebira.de>:
>>
>>> Zitat von Michael M Slusarz <slusarz at horde.org>:
>>>
>>>> Quoting Samuel Wolf <samuel at sheepflock.de>:
>>>>
>>>>> Zitat von Michael M Slusarz <slusarz at horde.org>:
>>>>>
>>>>>> Quoting Samuel Wolf <samuel at sheepflock.de>:
>>>>>>
>>>>>>> Zitat von Michael M Slusarz <slusarz at horde.org>:
>>>>>>>
>>>>>>>> Quoting Samuel Wolf <samuel at sheepflock.de>:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> I have a lot of this errors in my apache error log:
>>>>>>>>> [Wed Jun 11 23:01:24 2014] [error] [client 192.168.55.104]
>>>>>>>>> Cannot write Autoloader cache to backend., referer:
>>>>>>>>> https://192.168.55.45/horde4/imp/dynamic.php?page=mailbox
>>>>>>>>
>>>>>>>> Your webserver does not have access to the system temporary
>>>>>>>> directory (directory returned by PHP's sys_get_temp_dir()).
>>>>>>>
>>>>>>> <?php
>>>>>>> echo sys_get_temp_dir();
>>>>>>> ?>
>>>>>>>
>>>>>>> show /tmp
>>>>>>>
>>>>>>> Webserver write some other files to /tmp:
>>>>>>> root at wds:/tmp# ls -la | grep horde
>>>>>>> drwx------ 3 www-data www-data 4096 Jun 1 18:00 .horde
>>>>>>> -rw-r--r-- 1 www-data www-data 13207 Jun 5 00:48
>>>>>>> horde_autoloader_cache_a5242318
>>>>>>> -rw-r--r-- 1 www-data www-data 7895 Jun 5 00:47
>>>>>>> horde_autoloader_cache_ff86a2d4
>>>>>>
>>>>>> The last access is dated June 5. I would guess something has
>>>>>> changed on your server since then.
>>>>>
>>>>> You're right, thanks for the note!
>>>>>
>>>>> I installed at this time php5-xcache, after remove the package
>>>>> again and restart apache:
>>>>> root at wds:/tmp# ls -la | grep horde
>>>>> -rw-r--r-- 1 www-data www-data 28698 Jun 12 00:20
>>>>> horde_autoloader_cache_a5242318
>>>>> -rw-r--r-- 1 www-data www-data 47365 Jun 12 00:22
>>>>> horde_autoloader_cache_ff86a2d4
>>>>> -rw------- 1 www-data www-data 18924 Jun 12 00:20 horde_debug.txt
>>>>> -rw-r--r-- 1 www-data www-data 0 Jun 12 00:07 horde_dns.cache
>>>>> [...]
>>>>>
>>>>> crazy.
>>>>>
>>>>> Maybe I setup xcache wrong.
>>>>
>>>> Install != activate in PHP. I'm guessing that's your issue.
>>>>
>>> Sorry for re-opening this issue. Today I switched from APC to
>>> XCache and get these messages as well.
>>>
>>> <?php
>>> echo sys_get_temp_dir();
>>> ?>
>>>
>>> gives /tmp and the directory looks like this:
>>>
>>> # ll -rt /tmp
>>> -rw------- 1 www-data www-data 3460 Apr 14 10:17
>>> horde_registry_cache_d8b2af3f498a5ea9323655cda64edb28
>>> -rw------- 1 www-data www-data 3448 Apr 14 10:17
>>> horde_registry_cache_1a10e8a841a044ea63d4ec8d19066b1d
>>> -rw------- 1 www-data www-data 3487 Apr 14 10:17
>>> horde_registry_cache_ef3c5204bbde4b436aa995fe86f863a4
>>> -rw------- 1 www-data www-data 3500 Apr 14 10:18
>>> horde_registry_cache_bded33a3c9bfa7332b0082506443d3ae
>>> -rw------- 1 www-data www-data 13522 Apr 14 10:20
>>> horde_autoloader_cache_dcfe726a02a17964308e92a52484786c
>>> -rw------- 1 www-data www-data 21454 Apr 14 10:29
>>> horde_autoloader_cache_4b0b5ed4e62d134627d5ce4a0a8e8f02
>>> srwxr-xr-x 1 www-data www-data 0 Apr 14 11:56 php.socket-0
>>> -rw------- 1 www-data www-data 11468 Apr 14 12:14 horde_dns.cache
>>>
>>> So, the switch to XCache was at about 10:30 this morning. After
>>> that only the file horde_dns.cache was updated. The other
>>> horde-related files are "old".
>>>
>>> As you said "Install != activate in PHP" I checked this on my
>>> phpinfo()-page. On that page I see that XCache is enabled.
>>> Therefore I don't understand why the error message is constantly
>>> appearing. Can someone help me with this?
>>>
>>> Greetings
>>> Jens
>>
>> Try raising the error_reporting setting in Horde's configuration to
>> E_ALL and see if the xcache extension is logging some error.
> I found the following in horde's logfile:
>
> 2015-04-14T12:10:01+00:00 WARN: HORDE [horde] PHP ERROR:
> xcache_set(): XCache var cache was not initialized properly. Check
> php log for actual reason [pid
> 17454 on line 155 of "/usr/share/php/Horde/Autoloader/Cache/Bootstrap.php"]
> 2015-04-14T12:10:01+00:00 DEBUG: HORDE 1. Horde_Autoloader_Cache->shutdown()
> 2. Horde_Autoloader_Cache_Bootstrap->set()
> /usr/share/php/Horde/Autoloader/Cache.php:109
> 3. xcache_set() /usr/share/php/Horde/Autoloader/Cache/Bootstrap.php:155
> 4. Horde_ErrorHandler::errorHandler()
>
> In XCache admin-view I find the variable
> horde_autoloader_cache_4b0b5ed4e62d134627d5ce4a0a8e8f02 in the var
> cache. Looks strange to me. I don't find anything related to xcache
> in php's error_log (which I set to syslog in php.ini).
>
> I don't know of that helps but I tried the following in horde's php-console:
>
> $test = "Hello";
> xcache_set("test", $test );
>
> I see the variable test in XCache's admin-view with the value Hello.
> So it looks as if XCache is working from inside horde. Any more hints?
>
>
> BTW: As I inspected the log file I found that the time stamp in the
> log file is partly UTC and partly not as seen in these lines:
>
> 2015-04-14T12:10:01+00:00 DEBUG: HORDE 1. Horde_Autoloader_Cache->shutdown()
> 2. Horde_Autoloader_Cache_Bootstrap->set()
> /usr/share/php/Horde/Autoloader/Cache.php:109
> 3. xcache_set() /usr/share/php/Horde/Autoloader/Cache/Bootstrap.php:155
> 4. Horde_ErrorHandler::errorHandler()
>
> 2015-04-14T12:10:01+00:00 DEBUG: HORDE [horde] Max memory usage:
> 6815744 bytes [pid 17454 on line 608 of
> "/usr/share/php/Horde/Registry.php"]
> 2015-04-14T14:10:02+02:00 DEBUG: HORDE SQL (0,0002s)
> SELECT cache_data FROM horde_activesync_cache WHERE cache_devid =
> 'ANDROIDXXXXXXXXX' AND cache_user = 'XXXXX' [pid 16938 on
> line 208 of "/usr/share/php/Horde/Db/Adapter/Pdo/Base.php"]
>
> Did I misconfigure something?
Any hints? I tried using xcache from inside a website rather than from
horde's console, and that works.
Then I put a log statement in
/usr/share/php/Horde/Autoloader/Cache/Bootstrap.php like this:
public function set($key, $data)
{
$data = ($this->_mask & self::MSGPACK)
? msgpack_pack($data)
: json_encode($data);
if ($this->_mask & self::LZ4) {
$data = @horde_lz4_compress($data);
} elseif ($this->_mask & self::LZF) {
$data = lzf_compress($data);
}
if ($this->_mask & self::APC) {
return apc_store($key, $data);
} elseif ($this->_mask & self::XCACHE) {
error_log($key, 4); // <---- Logging here
error_log($data, 4); // <---- Logging here
return xcache_set($key, $data);
}
...
}
When I run horde-alarms from command line the message is triggered. I
copied the output into a simple php-script:
<?php
$key = "horde_autoloader_cache_dcfe726a02a17964308e92a52484786c";
$val = "the_output_from_the_error_message";
$ret = xcache_set($key, $val);
var_dump($ret);
?>
This results in: "boolean true"
So I don' understand why the same operation does not work in horde.
Greetings
Jens
More information about the imp
mailing list