Re: valgrind error in subscription code
Petr Jelinek <petr.jelinek@2ndquadrant.com>
From: Petr Jelinek <petr.jelinek@2ndquadrant.com>
To: Andres Freund <andres@anarazel.de>, pgsql-hackers@postgresql.org,
Petr Jelinek <petr@2ndquadrant.com>, Peter Eisentraut <peter_e@gmx.net>
Date: 2017-04-22T19:08:18Z
Lists: pgsql-hackers
Attachments
- Properly-initialize-memory-for-logical-replication-r.patch (text/plain) patch
On 22/04/17 20:31, Andres Freund wrote: > Hi, > > I enabled skink / the valgrind animal to run the tap tests too (hugely > increasing the test time :(), and that paid of: > https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=skink&dt=2017-04-22%2004%3A52%3A13 > > ==606== VALGRINDERROR-BEGIN > ==606== Conditional jump or move depends on uninitialised value(s) > ==606== at 0x46A207: logicalrep_rel_open (relation.c:361) > ==606== by 0x472D12: copy_table (tablesync.c:669) > ==606== by 0x473186: LogicalRepSyncTableStart (tablesync.c:803) > ==606== by 0x475287: ApplyWorkerMain (worker.c:1530) > ==606== by 0x440AFD: StartBackgroundWorker (bgworker.c:835) > ==606== by 0x44E48A: do_start_bgworker (postmaster.c:5577) > ==606== by 0x44E59F: maybe_start_bgworker (postmaster.c:5761) > ==606== by 0x44F11D: sigusr1_handler (postmaster.c:5015) > ==606== by 0x4E430BF: ??? (in /lib/x86_64-linux-gnu/libpthread-2.24.so) > ==606== by 0x6FB8212: __select_nocancel (syscall-template.S:84) > ==606== by 0x44F868: ServerLoop (postmaster.c:1693) > ==606== by 0x450C53: PostmasterMain (postmaster.c:1337) > ==606== Uninitialised value was created by a heap allocation > ==606== at 0x605382: MemoryContextAlloc (mcxt.c:729) > ==606== by 0x5E4E6A: DynaHashAlloc (dynahash.c:266) > ==606== by 0x5E4EEE: element_alloc (dynahash.c:1637) > ==606== by 0x5E5018: get_hash_entry (dynahash.c:1248) > ==606== by 0x5E5898: hash_search_with_hash_value (dynahash.c:1033) > ==606== by 0x5E5A0D: hash_search (dynahash.c:890) > ==606== by 0x469D38: logicalrep_relmap_update (relation.c:179) > ==606== by 0x472D05: copy_table (tablesync.c:666) > ==606== by 0x473186: LogicalRepSyncTableStart (tablesync.c:803) > ==606== by 0x475287: ApplyWorkerMain (worker.c:1530) > ==606== by 0x440AFD: StartBackgroundWorker (bgworker.c:835) > ==606== by 0x44E48A: do_start_bgworker (postmaster.c:5577) > ==606== > ==606== VALGRINDERROR-END Thanks, here is patch to fix that - I also removed the individual settings of everything to NULL/0/InvalidOid etc and just replaced it all with memset. -- Petr Jelinek http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Commits
-
Zero padding in replication origin's checkpointed on disk-state.
- 81ff04deda21 9.5.7 landed
- 39369b41451e 9.6.3 landed
- eb97aa7e6562 10.0 landed
-
Initialize all memory for logical replication relation cache.
- e84d243b1ce6 10.0 landed