]> git.saurik.com Git - redis.git/commit - src/redis.h
Dump ziplist hex value on failed assertion.
authorantirez <antirez@gmail.com>
Mon, 11 Jun 2012 21:44:34 +0000 (23:44 +0200)
committerantirez <antirez@gmail.com>
Mon, 11 Jun 2012 22:49:32 +0000 (00:49 +0200)
commit0b8441c1b2f69cba5dddfdd76a166e6ac5b2afb4
treeb8ae7827760dfc864a3637270b2278b3213a6b81
parenta85c89854f31b26cede276c730d67de954e8182f
Dump ziplist hex value on failed assertion.

The ziplist -> hashtable conversion code is triggered every time an hash
value must be promoted to a full hash table because the number or size of
elements reached the threshold.

If a problem in the ziplist causes the same field to be present
multiple times, the assertion of successful addition of the element
inside the hash table will fail, crashing server with a failed
assertion, but providing little information about the problem.

This code adds a new logging function to perform the hex dump of binary
data, and makes sure that the ziplist -> hashtable conversion code uses
this new logging facility to dump the content of the ziplist when the
assertion fails.

This change was originally made in order to investigate issue #547.
src/debug.c
src/redis.h
src/t_hash.c