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

Client.set raises "exception: SUCCESS" when behaviors has buffer_requests=True #180

Open
hummus opened this issue Mar 13, 2015 · 3 comments

Comments

@hummus
Copy link

hummus commented Mar 13, 2015

$ pip freeze | grep pylibmc
pylibmc==1.4.1
$ python -c "import pylibmc; print pylibmc._pylibmc.libmemcached_version"
1.0.18

# run loclahost server, eg docker official
$ docker run -d -p 11211:11211 memcached:1.4.22
$ python -c "import pylibmc; mc = pylibmc.Client(['localhost'], binary=True, behaviors={'buffer_requests':True}); mc.set('foo', 'bar'); print 'foo is ok' "
pylibmc.Error: error 32 from memcached_set: SUCCESS
$ echo $?
1
$ python -c "import pylibmc; mc = pylibmc.Client(['localhost'], binary=True, behaviors={'buffer_requests':True}); print mc.get('foo')"
bar
@lericson
Copy link
Owner

I made a test case for this in the test suite; however, as it stands, it is sadly not something we can fix on our side of things. It seems to be a bug in libmemcached itself. memcached_set is returning an error status, MEMCACHED_ERRNO, which implies that the process-global errno should be set. That is set to zero though, so there is a contradiction in the libmemcached code.

@henning
Copy link

henning commented Mar 23, 2016

Hi, our team here seem to be running into this, too.
I'm not yet very deep into understanding the thing yet. As it's still open, I assume it persists. Is there anything known if there is a fix (or even a bugreport to track) in libmemcached?

@lericson
Copy link
Owner

Hello @henning! To my knowledge no, there is no communication with upstream going on about this. It might prove instructive to try to look at what the intended usage of libmemcached is using buffered requests. Perhaps there is some misunderstanding in the way pylibmc interprets this behavior.

Other than that, I'd say just disable the behavior for now.

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

3 participants