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

Arjen de Korte arjen+horde at de-korte.org
Tue Feb 16 18:03:08 UTC 2016


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

> Am 10.02.2016 um 16:13 schrieb Arjen de Korte:
>> Citeren Jan Schneider <jan at horde.org>:
>>
>>> 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.
>>
>> Which at sub setting (5) means that this list may potentially contain
>> 16^5 = 1048576 entries. I doubt you'll have configured enough memory to
>> store this list. So chances are the process runs out of memory before
>> GC'ing actually takes place.
>
> I reduced to 3 now. Before updating horde_cache it worked perfectly  
> with 5 levels for years.

Most likely https://bugs.horde.org/ticket/14258



More information about the horde mailing list