[horde] Sharing user information between hooks

Michael J Rubinsky mrubinsk at horde.org
Mon Nov 2 14:40:17 UTC 2015


Quoting Jens Wahnes <wahnes at uni-koeln.de>:

> On Thu, Oct 29 2015, at 16:53:10 +0000, Michael J Rubinsky wrote:
>
>> Quoting Michael J Rubinsky <mrubinsk at horde.org>:
>>> Quoting Jens Wahnes <wahnes at uni-koeln.de>:
>>>> On Mon, Oct 26 2015, at 15:01:38 +0000, Michael J Rubinsky wrote:
>>>>> This should be: $GLOBALS['injector']->getInstance('Horde_HashTable');
>>>> Thank you for pointing this out.  It feels much better to have code
>>>> that interfaces with the rest of the system the way it is intended to
>>>> work. :)
>>>>
>>>> However, even when using the "getInstance('Horde_HashTable')" code, the
>>>> old problem remains that the prefix for memcache keys
>>>> ($conf['hashtable']['params']['prefix'] from conf.php) is not used.
>>>> Not such a big problem since I can work around that, after all, but
>>>> still leaves me with a feeling I'm not calling the Horde code
>>>> correctly.  Can you shed some light on that?
>
>>> I'll take a look. I'm not *that* familiar with the memcache code. I
>>> see some places where we *might* be missing prepending the keys, but
>>> I'm not sure.
>
>> Actually, the only place that this might be wrong is in the lock/unlock
>> methods. Setting/deleting should work as expected.
>> Horde_HashTable_Base:: has set/delete/get etc... methods that call a
>> hkey() method which adds the prefix. After the prefix is added, the
>> concrete _set/_delete etc... methods are called using the already
>> prefixed keys. You'll have to check there to see why it's not working.
>
> Thanks for looking this up, but I don't know how would I go about that.
> Should I add some code to these classes to write additional info to the
> log file?  Or can this be done through some external PHP debugging
> methods?  I've heard of xdebug, but I've never really used it so far.
>
>> Alternatively, check that the expected config values are being grabbed
>> in Horde_Core_Factory_Hashtable.
>
> To me, that seems to be the case.  In the debug info I get (I added a
> statement "Horde::debug($memcache)"), the prefix info is present.
> Here's an excerpt from that:
>
>
> object(Horde_HashTable_Memcache)#125 (4) {
>   ["_memcache":protected]=>
>   object(Horde_Memcache)#121 (6) {
>     ["_locks":protected]=>
>     array(0) {
>     }
>     ["_logger":protected]=>
>     object(Horde_Core_Log_Wrapper)#95 (0) {
>     }
>     ["_memcache":protected]=>
>     object(Memcache)#124 (2) {
>       ["connection"]=>
>       resource(11) of type (memcache connection)
>       ["_failureCallback"]=>
>       array(2) {
>         [0]=>
>         *RECURSION*
>         [1]=>
>         string(8) "failover"
>       }
>     }
>     ["_noexist":protected]=>
>     array(0) {
>     }
>     ["_params":protected]=>
>     array(10) {
>       ["compression"]=>
>       bool(true)
>       ["hostspec"]=>
>       array(2) {
>         [0]=>
>         string(9) "localhost"
>         [1]=>
>         string(26) "foo.bar.example.com"
>       }
>       ["large_items"]=>
>       bool(true)
>       ["persistent"]=>
>       bool(true)
>       ["port"]=>
>       array(2) {
>         [0]=>
>         string(5) "11211"
>         [1]=>
>         string(5) "11211"
>       }
>       ["prefix"]=>
>       string(8) "HordeSam"
>       ["weight"]=>
>       array(2) {
>         [0]=>
>         string(2) "90"
>         [1]=>
>         string(2) "10"
>       }
>       ["c_threshold"]=>
>       int(1200)
>       ["umask"]=>
>       int(63)
>       ["logger"]=>
>       object(Horde_Core_Log_Wrapper)#95 (0) {
>       }
>     }
>
>
> When I grepped through the log file, I could see that there is only one
> other type of memcache keys which do not seem to include the set
> prefix.  They are related to IMAP access and look like this:

So, it's only the imap client cache that exhibits this behavior?


> 2015-10-30T15:00:26+01:00 DEBUG: HORDE [imp]  
> Horde_HashTable_Memcache: Retrieved keys  
> (horde_imap_client|user1|INBOX|localhost|143|10289) [pid 16337 on  
> line 233 of "/usr/share/pear/Horde/HashTable/Base.php"]
>
> Does this give anyone a clue, maybe?  What's so special about
> Horde_Imap_Client?  All other entries do have the prefix.  They all
> look just like this one:
>
> 2015-10-30T15:00:26+01:00 DEBUG: HORDE [imp]  
> Horde_HashTable_Memcache: Retrieved keys  
> (HordeSamperm_sql_exists_2kronolith,HordeSamperm_sql_exists_2kronolith_t)  
> [pid 16337 on line 233 of "/usr/share/pear/Horde/HashTable/Base.php"]
>
>
> Jens



-- 
mike
The Horde Project
http://www.horde.org
https://www.facebook.com/hordeproject
https://www.twitter.com/hordeproject
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5751 bytes
Desc: S/MIME Signature
URL: <http://lists.horde.org/archives/horde/attachments/20151102/9f390e5f/attachment.bin>


More information about the horde mailing list