Comment 2 for bug 637114

Revision history for this message
Michael Koziarski (michael-koziarski) wrote :

The cause of this is a broken back port of the upstream change set:

https://github.com/memcached/memcached/commit/d9cd01ede97f4145af9781d448c62a3318952719

That changeset uses strncmp whereas the .diff file uses strcmp

++ if (ptr - c->rcurr > 100 ||
++ strcmp(ptr, "get ") && strcmp(ptr, "gets ")) {
++ conn_set_state(c, conn_closing);
++ return 1;
++ }

Given that the string being compared contains either "get HUGE KEY" or "gets HUGE KEYS" the check in the ubuntu diff will *always* return false.

Simply correcting that back port appears to solve the problem for us.