php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #58500 memcache::set still causes resource unavaiable errors
Submitted: 2009-01-10 16:21 UTC Modified: 2010-04-08 06:04 UTC
From: p dot chapman dot uk+pecl at gmail dot com Assigned:
Status: Not a bug Package: memcache (PECL)
PHP Version: 5.2.5 OS: Linux / RedHat
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: p dot chapman dot uk+pecl at gmail dot com
New email:
PHP Version: OS:

 

 [2009-01-10 16:21 UTC] p dot chapman dot uk+pecl at gmail dot com
Description:
------------
This is an extension of PECL bug #14044, which was supposedly fixed in memcache 3.0.2
I am also using the latest memcached 1.3.0

Intermittent bug when setting cache without compression. Memcache::set fails and produces a PHP notice..

"send of 32768 bytes failed with errno=11 Resource temporarily unavailable"

PECL Bug 14044 implies this only ever happens for 32768, however, I get this error for shorter length data too, (including 32678). 

Reproduce code:
---------------
Sorry, I cannot reliably reproduce this. But in a typical day, it occurs around 40 times in my php error log

Attempts to reproduce on dev server arent successful, and so I suspect it might be due to the live server being quite busy

Expected result:
----------------
Set operation to succeed without error

Actual result:
--------------
Memcache::set fails, with a notice emitted in PHP error log

send of XXXXX bytes failed with errno=11 Resource temporarily unavailable

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2009-01-16 07:57 UTC] mikael at synd dot info
The error originates from php_sockop_write() which regardless or the REPORT_ERRORS flag outputs a notice, this function is called from php_stream_write()

This is very odd since the 3.0.x versions of the extension doesn't use php_stream_write() or any other stream write functions at all but rather use send() directly. Also, the error message shouldn't say Memcache::set() but rather MemcachePool::set() even if you're instantiating the Memcache class (since it inherits from MemcachePool).

 * Are you sure it's originating from the pecl/memcache 3.0.2 extension and not a previous version (such as 2.2.x) or some other extension? 
 * Can you supply the complete log message?
 * It would really help if there was some kind of way to reproduce the message (or a gdb backtrace of the call stack when the error is emitted :)
 [2009-01-16 09:12 UTC] p dot chapman dot uk+pecl at gmail dot com
Hi, thanks for responding.

I thought I was using 3.0.2, but phpinfo() suggests it was still using 3.0.1. I cant explain that, but its probably a mistake I made, or maybe lighttpd didn't restart properly when I asked it to.

My setup is definitely using 3.0.2 now, so I will monitor the situation and see if it happens again. Ill look into getting a backtrace too.

Your right about the log saying MemcachePool rather than Memcache. Heres a few of the actual log entries, although I doubt it matters unless it happens again on 3.0.2. 

[10-Jan-2009 16:21:45] PHP Notice:  MemcachePool::set() [<a href='memcachepool.set'>memcachepool.set</a>]: send of 7861 bytes failed with errno=11 Resource temporarily unavailable in /var/dmn/html/class_cache.php on line 60
[10-Jan-2009 20:26:10] PHP Notice:  MemcachePool::set() [<a href='memcachepool.set'>memcachepool.set</a>]: send of 15904 bytes failed with errno=11 Resource temporarily unavailable in /var/dmn/html/class_cache.php on line 60
[11-Jan-2009 03:31:21] PHP Notice:  MemcachePool::set() [<a href='memcachepool.set'>memcachepool.set</a>]: send of 32768 bytes failed with errno=11 Resource temporarily unavailable in /var/dmn/html/class_cache.php on line 60

Thanks
 [2009-01-16 10:40 UTC] mikael at synd dot info
Please reopen the bug report if the problem is shown to still exist
 [2010-04-08 04:18 UTC] alitrix at gmail dot com
Does anyone know if this bug is still open?

If not, what is the fix.
phpinfo() tells me this about my memcache php library:
Version: 3.0.1
Revision: $Revision: 1.83.2.24 $

My memcache server versions are: 1.2.2
 [2010-04-08 06:04 UTC] p dot chapman dot uk+pecl at gmail dot com
I had further problems, but Im not sure it was a memcache bug

Try tweaking your sysctl.conf as shown here
http://cocacoda.blogspot.com/2009/02/memcached-fails-to-set-cache-entry.html

You might also look into making sure local memcache connections are not tracked by conntrack (by setting a raw NOTRACK iptables rule). I continued to have various problems until I did this, and now my setup is stable again.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sun Dec 22 01:01:30 2024 UTC