[horde] Problems with Horde Cache after upgrading to Webmail 5.2.12

Jan Schneider jan at horde.org
Wed Feb 10 13:22:22 UTC 2016


Zitat von Anton Köstlbacher <horde3 at dingsbums.org>:

> Am 10.02.2016 um 12:04 schrieb Jan Schneider:
>>
>> Zitat von Anton Köstlbacher <horde3 at dingsbums.org>:
>>
>>> Am 10.02.2016 um 09:57 schrieb Jan Schneider:
>>>>
>>>> Zitat von Anton Köstlbacher <horde3 at dingsbums.org>:
>>>>
>>>>> Am 09.02.2016 um 15:36 schrieb Jan Schneider:
>>>>>>
>>>>>> Zitat von Anton Köstlbacher <horde3 at dingsbums.org>:
>>>>>>
>>>>>>> Dear List,
>>>>>>>
>>>>>>> a few hours after upgrading I couldn't login to my Horde Webmail.
>>>>>>>
>>>>>>> Error meesage was "couldn't write to cache". Reason was horde cache
>>>>>>> used up all space on the volume.
>>>>>>>
>>>>>>> Horde cache was set up as filesystem cache on a 1GB tmpfs volume,
>>>>>>> which was sufficient the last years. Lifetime was set to 43200
>>>>>>> seconds.
>>>>>>>
>>>>>>> I changed it to 2GB. This is now sufficient for about two days, then
>>>>>>> it's full again.
>>>>>>>
>>>>>>> Did anything change regarding cache expiration?
>>>>>>>
>>>>>>> Looks like it doesn't work anymore. I also replaced
>>>>>>> pear/Console_Getopt with pear/Console_GetoptPlus during the update.
>>>>>>>
>>>>>>> Thanks in advance!
>>>>>>>
>>>>>>> Anton
>>>>>>> --
>>>>>>> Horde mailing list
>>>>>>> Frequently Asked Questions: http://horde.org/faq/
>>>>>>> To unsubscribe, mail: horde-unsubscribe at lists.horde.org
>>>>>>
>>>>>> Actually the opposite was fixed in the latest Horde_Cache release.
>>>>>> Under
>>>>>> certain circumstances garbage collection didn't work, and it should
>>>>>> work
>>>>>> now in all cases.
>>>>>>
>>>>>> No idea why you mention Console_Getopt.
>>>>>>
>>>>>> You can try running the unit tests as a first measure, to see if they
>>>>>> succeed for you:
>>>>>>
>>>>>> pear install horde/Horde_Test
>>>>>> php $(pear config-get test_dir)/Horde_Cache/Horde/Cache/AllTests.php
>>>>>
>>>>> Hi Jan,
>>>>>
>>>>> thanks for your quick reply. I mentioned Console_Getopt just because
>>>>> it was the only other thing that changed since the problem occurred.
>>>>>
>>>>> Output of unit tests, they don't succeed:
>>>>>
>>>>> PHPUnit 4.5.0 by Sebastian Bergmann and contributors.
>>>>>
>>>>> F.FFFFFFSSSSSSSS...................SSSSSSSS........SSSSSSSS....  63 /
>>>>> 123 ( 51%)
>>>>> ....SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSPHP Warning:  Uncaught
>>>>> Undefined variable: reason
>>>>>
>>>>> /usr/share/php/tests/Horde_Cache/Horde/Cache/Sql/Pdo/SqliteTest.php:30
>>>>> /usr/share/php/tests/Horde_Cache/Horde/Cache/TestBase.php:32
>>>>> /usr/share/php/Horde/Test/AllTests.php:84
>>>>>
>>>>> thrown in
>>>>> /usr/share/php/tests/Horde_Cache/Horde/Cache/Sql/Pdo/SqliteTest.php on
>>>>> line 30
>>>>> PHP Fatal error:  Cannot access empty property in
>>>>> /usr/share/php/tests/Horde_Cache/Horde/Cache/Sql/Pdo/SqliteTest.php on
>>>>> line 30
>>>>>
>>>>> Any Ideas?
>>>>>
>>>>> Regards,
>>>>> Anton
>>>>
>>>> This had been fixed with
>>>> https://github.com/horde/horde/commit/00821173de24f83586aa3ff57dae5c3ea6f94c5f
>>>>
>>>> already, but is hasn't been released yet. Please try this patch
>>>> manually.
>>>
>>> Ok, after patching I get this output from unit tests:
>>>
>>>
>>> PHPUnit 4.5.0 by Sebastian Bergmann and contributors.
>>>
>>> F.FFFFFFSSSSSSSS...................SSSSSSSS........SSSSSSSS....  63 /
>>> 123 ( 51%)
>>> ....SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
>>>
>>> Time: 214 ms, Memory: 7.50Mb
>>>
>>> There were 7 failures:
>>>
>>> 1) Horde_Cache_ApcTest::testReadWrite
>>> Failed asserting that false is true.
>>>
>>> /usr/share/php/tests/Horde_Cache/Horde/Cache/TestBase.php:40
>>> /usr/share/php/Horde/Test/AllTests.php:84
>>>
>>> 2) Horde_Cache_ApcTest::testExists
>>> Failed asserting that false is true.
>>>
>>> /usr/share/php/tests/Horde_Cache/Horde/Cache/TestBase.php:56
>>> /usr/share/php/Horde/Test/AllTests.php:84
>>>
>>> 3) Horde_Cache_ApcTest::testGet
>>> Failed asserting that false matches expected 'data1'.
>>>
>>> /usr/share/php/tests/Horde_Cache/Horde/Cache/TestBase.php:66
>>> /usr/share/php/Horde/Test/AllTests.php:84
>>>
>>> 4) Horde_Cache_ApcTest::testOutput
>>> Failed asserting that false is true.
>>>
>>> /usr/share/php/tests/Horde_Cache/Horde/Cache/TestBase.php:75
>>> /usr/share/php/Horde/Test/AllTests.php:84
>>>
>>> 5) Horde_Cache_ApcTest::testExpire
>>> Failed asserting that false matches expected 'data1'.
>>>
>>> /usr/share/php/tests/Horde_Cache/Horde/Cache/TestBase.php:83
>>> /usr/share/php/Horde/Test/AllTests.php:84
>>>
>>> 6) Horde_Cache_ApcTest::testClear
>>> Failed asserting that false matches expected 'data1'.
>>>
>>> /usr/share/php/tests/Horde_Cache/Horde/Cache/TestBase.php:91
>>> /usr/share/php/Horde/Test/AllTests.php:84
>>>
>>> 7) Horde_Cache_ApcTest::testCompress
>>> Failed asserting that false matches expected 'data1'.
>>>
>>> /usr/share/php/tests/Horde_Cache/Horde/Cache/TestBase.php:108
>>> /usr/share/php/Horde/Test/AllTests.php:84
>>>
>>> FAILURES!
>>> Tests: 123, Assertions: 111, Failures: 7, Skipped: 80.
>>
>> So no failures for the File backend that you use.
>>
>> Do you use the 'sub' setting? If yes, to you still have a horde_cache_gc
>> file in the base directory?
>>
>
> I use the 'sub' setting (5) and there is no horde_cache_gc file in  
> the base cache directory.

But there are such files in the leaf directories, right? This means  
that at least the migration from the old to the new GC technique  
succeeded.

You'll have to find out why GC'ing doesn't work for you anymore.  
Depending on the traffic of your site, you may want to raise the GC  
probability in __destruct(). Next you should check if _getGCFiles()  
(called from _gc()) really returns a valid list of horde_cache_gc  
files from your leaf directories.

> (Additionally I use 'use_memorycache' (APC) as separate memory cache driver)



-- 
Jan Schneider
The Horde Project
http://www.horde.org/



More information about the horde mailing list