From: | Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com> |
---|---|
To: | PostgreSQL Developers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | bug in SlabAlloc / VALGRIND_MAKE_MEM_DEFINED |
Date: | 2017-04-04 20:42:39 |
Message-ID: | a6543b6d-6015-99b1-63ef-3ed55a76a730@2ndquadrant.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
Andres nagged to me about valgrind runs taking much longer since
9fab40ad introduced the SlabContext into reorderbuffer.c. And by
"longer" I mean hours instead of minutes.
After a bit of investigation I stumbled on this line in slab.c:
VALGRIND_MAKE_MEM_DEFINED(chunk, SlabChunkGetPointer(chunk));
which is wrong, because the second parameter should be size and not
another pointer. This essentially marks a lot of memory as defined,
which results in the extreme test runtime.
Instead, the line should be:
VALGRIND_MAKE_MEM_DEFINED(SlabChunkGetPointer(chunk), sizeof(int32));
Patch attached.
--
Tomas Vondra http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Attachment | Content-Type | Size |
---|---|---|
slab-valgrind-fix.patch | binary/octet-stream | 603 bytes |
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Geoghegan | 2017-04-04 20:49:11 | Re: tuplesort_gettuple_common() and *should_free argument |
Previous Message | Andres Freund | 2017-04-04 20:32:02 | Re: tuplesort_gettuple_common() and *should_free argument |