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

Jan Schneider jan at horde.org
Tue Feb 16 18:58:51 UTC 2016


Zitat von Arjen de Korte <arjen+horde at de-korte.org>:

> 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

Can you guys please see if this fixes the problem? The garbage  
collection has to be triggered at least once to clean this up.

http://github.com/horde/horde/commit/395d10cb8b05d3732f627eda9c7d7280bb2bf1bc

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



More information about the horde mailing list