summaryrefslogtreecommitdiff
path: root/sql/sql_handler.cc
diff options
context:
space:
mode:
authorunknown <konstantin@mysql.com>2006-01-04 17:35:30 +0300
committerunknown <konstantin@mysql.com>2006-01-04 17:35:30 +0300
commitf577d864cdac14d9a5cf7714b3506bab7688b1c7 (patch)
tree12c607d43ac445a9f67b581d304e538eea483b50 /sql/sql_handler.cc
parentd105ee3cc6451b6cbafc77fcdccc0b13810150fc (diff)
downloadmariadb-git-f577d864cdac14d9a5cf7714b3506bab7688b1c7.tar.gz
A fix for Bug#7209 "Client error with "Access Denied" on updates
when high concurrency": remove HASH::current_record and make it an external search parameter, so that it can not be the cause of a race condition under high concurrent load. The bug was in a race condition in table_hash_search, when column_priv_hash.current_record was overwritten simultaneously by multiple threads, causing the search for a suitable grant record to fail. No test case as the bug is repeatable only under concurrent load. include/hash.h: - remove current_record from HASH, instead modify hash_first, hash_next to accept HASH_SEARCH_STATE as an IN/OUT parameter mysys/hash.c: - remove HASH::current_record - change declarations of functions that use HASH in read-only mode to accept const HASH * instead of HASH *. - implement hash_search; move the old implementation of hash_search to hash_first mysys/testhash.c: - adjust the test case to changed function declarations sql/lock.cc: - adjust to changed declarations of hash_search, hash_next sql/sql_acl.cc: - adjust to changed declarations of hash_search, hash_next sql/sql_base.cc: - adjust to changed declarations of hash_search, hash_nex sql/sql_cache.cc: - adjust to a changed declaration of hash_replace
Diffstat (limited to 'sql/sql_handler.cc')
0 files changed, 0 insertions, 0 deletions