On Jan 07 2012 08:50 am, till wrote:
On Sat, Jan 7, 2012 at 2:11 PM, Thomas Bruederli <roundcube@gmail.com> wrote:
Rob Sheldon wrote:> [...]
> Hi,
>
> Finally decided to get memcached up and running with Roundcube --
> awesome work there.
>
> I ran into a problem getting it to go at first though. Turned on all
> the logging in memcache and found this relevant bit:
>
>I don't have a problem adding this to your code and becoming "incorrect"
> In rcube_session.php, I mucked about with the first line of
> mc_destroy(), changing it to:
>
> $ret = $this->memcache->delete($key, 0);
>
> ...which makes everything happy, despite being incorrect.
unless anybody else reports problems with that change. PHP usually doesn't
complain about additional arguments passed to a function call, only if
there are too few arguments passed.+1 for the change: http://docs.php.net/manual/en/memcache.delete.phpThis states that it's not recommend to use the timeout paramter, but using 0 is safe and shouldn't break anything anywhere else.Till...assuming that the PHP dev team doesn't change their mind later, which, y'know, never happens...
I also had to make a similar change in /program/include/rcube_cache.php:private function delete_record($key, $index=true){if ($this->type == 'memcache')$this->db->delete($this->ckey($key), 0);...otherwise, the first time you sign out, you can't sign back in again. Looks like Roundcube tries to delete a previous cache id during login.Those are the only two changes I've needed to make and everything has worked great so far. I try not to alter Roundcube's code at all (makes future upgrades a little less easy) but memcache was just too tempting.Thanks,- R.