***What steps will reproduce the problem?***
1. Start a memcached server
2. Send a binary packet for deleting "key" via
echo -en
'\x80\x04\x00\x03\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x0
0\x00\x00\x00\x00\x6b\x65\x79' | nc localhost 11211
3. start a telnet to the server and send "stats" i.e.
>telnet localhost 11211
>stats
***What is the expected output? What do you see instead?***
-=Expected output =-
[...]
STAT delete_misses 1
STAT delete_hits 0
[...]
END
-=Observed Output=-
[...]
STAT delete_misses 0
STAT delete_hits 0
[...]
END
***What version of the product are you using? On what operating system?***
Memcached 1.4.7 on Ubuntu 11.10 x86
***Please provide any additional information below.***
The delete stats are recorded when I do an ascii request for a delete, but not when I do a binary request. Looking at the source, the code that increments the delete counter is indeed missing from the code to do a binary delete. More specifically in
static void process_bin_delete(conn *c) of [memcached.c]
after the line "write_bin_response(c, NULL, 0, 0, 0);", there should be this block of code:
pthread_mutex_lock(&c->thread->stats.mutex);
c->thread->stats.delete_misses++;
pthread_mutex_unlock(&c->thread->stats.mutex);
--Thanks,
Stephen Yang
Original issue reported on code.google.com by step...@uci.edu on 31 Dec 2011 at 1:04
Original issue reported on code.google.com by
step...@uci.edu
on 31 Dec 2011 at 1:04