Yeah, I messed up :)
In the getMultiple() fix patch, I incorrectly ignored non-object cache entries. Don't ask me why, it was late and I was tired, just wanted to avoid notices I didn't understand and then forgot about it...
Anyway, the attached patch implements this in a better way, by storing the $cid in the $full_keys array and then, flipping the array and then basically using it as a $cid lookup hashmap.
| Comment | File | Size | Author |
|---|---|---|---|
| #3 | fixed_wildcards_for_real.patch | 6.32 KB | berdir |
| #2 | diff.diff | 4.33 KB | catch |
| fix_wildcards.patch | 925 bytes | berdir |
Comments
Comment #1
berdirComment #2
catchI managed to make the tests fail to catch this (6 fails), but applying this patch only fixed 4. Have not looked into why yet.
Here's what I'm testing with.
Comment #3
berdirAwesome. At least it's not only me who does stupid mistakes :)
dmemcache_get_multi() was clearly broken because it returned results keyed with the internal memcache key. But instead of fixing this, wildcards() worked around that bug by also converting the $cid in it's own $wildcards static cache to $full_keys, so that they can be matched..
The fix is simple, remove all that $key/$wildcard conversion stuff and just use $key in wildcards().
Tests pass for me how.
Comment #4
catchLooks great, committed!
Comment #5.0
(not verified) commentedUpdated issue summary.