Bug #66889 Memcache interface yields invalid CAS value on GETS with caching policy
| Submitted: | 20 Sep 2012 12:09 | Modified: | 16 Apr 2019 22:13 |
|---|---|---|---|
| Reporter: | Michael Gagnon | Email Updates: | |
| Status: | Can't repeat | Impact on me: | |
| Category: | MySQL Cluster: Memcached | Severity: | S2 (Serious) |
| Version: | mysql-cluster-gpl-7.2.7-debian6.0-x86_64 | OS: | Linux |
| Assigned to: | MySQL Verification Team | CPU Architecture: | Any |
| Tags: | caching, CAS, gets, Memcache | ||
[20 Sep 2012 13:17]
Michael Gagnon
using the caching policy, CAS fails; switching to something else such as ndb-only and the CAS is returned properly. Switching back to caching and it returns invalid incrementing numbers again. This has been narrowed down to the definitive bug inducing variable
[16 Apr 2019 22:13]
MySQL Verification Team
Hi, I cannot reproduce this with any of the modern versions of mysql cluster + memcached. please retest with modern version of mysql cluster and reopen if necesary kind regards Bogdan
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.050 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.
Description: Attempt to use CAS through the memcache interface on a container configured with cas_column fails under some circumstances. A specific configuration which exposes the incorrect values is provided. When running in verbose mode, no error is reported. Large values that cause usage of the large_values_table can be set and retrieved just fine. Attempt to use 'GETS' yields a CAS value which is invalid and does not correspond to the CAS column; furthermore, the returned CAS appears to be an incrementing value starting from 1, which may be a clue as to the source of the problem. Using the example container provided with the distro that includes CAS without the large_values_table works fine. The inclusion of the large_value_table initially *appears* to be the cause, though some other quality of my specific configuration below may well be the cause. How to repeat: Container configured as follows: SET name = "big_data", db_schema = "nosql", db_table = "big_data", key_columns = "id", value_columns = "data", flags = "flags", expire_time_column = "expire_time", cas_column = "cas_value", large_values_table = "big_data_partition" big_data table structure: `id` VARBINARY(64) NOT NULL, `data` VARBINARY(1024), `cas_value` BIGINT UNSIGNED, `flags` INT UNSIGNED NULL, `expire_time` TIMESTAMP NULL, `ext_id` INT UNSIGNED, `ext_size` INT UNSIGNED big_data_partition table structure: `id` INT UNSIGNED AUTO_INCREMENT NOT NULL, `part` SMALLINT NOT NULL, `content` VARBINARY(13950) NOT NULL TELNET commands: set foo 0 0 3 one STORED get foo VALUE foo 0 3 one END gets foo VALUE foo 0 3 1 one END cas foo 0 0 3 1 two EXISTS