Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Data::ObjectDriver::Driver::BaseCache::lookup_multi optimistic assumption #28

Open
sewi-cpan opened this issue May 24, 2019 · 0 comments

Comments

@sewi-cpan
Copy link

Data::ObjectDriver::Driver::BaseCache::lookup_multi does this after fetching items from memcached:
if (scalar keys %$got == @$ids) {
The idea looks good: If memcached get_multi returned the same number of items as requested, all must be within the result, but that's wrong!
We're currently experiencing a Cache::Memcached bug sometimes destroying a key name if the response is being read in two system calls. The key returned from get_multi is not the one requested (which is the same actually returned from memcached). That's another bug which must be fixed, but Data::ObjectDriver::Driver::BaseCache::lookup_multi would repair it by asking the next layer (typically SQL database).
The assumption about requested and returned counts prevents the repair but returnes completely empty objects which lead to follow-up errors.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant