Re: segmentation fault when cassert enabled
Jehan-Guillaume de Rorthais <jgdr@dalibo.com>
From: Jehan-Guillaume de Rorthais <jgdr@dalibo.com>
To: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Cc: tgl@sss.pgh.pa.us, pgsql-hackers@lists.postgresql.org
Date: 2019-11-12T17:00:43Z
Lists: pgsql-hackers
On Mon, 28 Oct 2019 16:47:02 +0900 (JST) Kyotaro Horiguchi <horikyota.ntt@gmail.com> wrote: > At Fri, 25 Oct 2019 12:28:38 -0400, Tom Lane <tgl@sss.pgh.pa.us> wrote in > > Jehan-Guillaume de Rorthais <jgdr@dalibo.com> writes: > > > When investigating for the bug reported in thread "logical replication - > > > negative bitmapset member not allowed", I found a way to seg fault > > > postgresql only when cassert is enabled. > > > ... > > > I hadn't time to digg further yet. However, I don't understand why this > > > crash is triggered when cassert is enabled. > > > > Most likely, it's not so much assertions that provoke the crash as > > CLOBBER_FREED_MEMORY, ie the actual problem here is use of already-freed > > memory. > > Agreed. > > By the way I didn't get a crash by Jehan's script with the > --enable-cassert build of the master HEAD of a few days ago. I am now working with HEAD and I can confirm I am able to make it crash 99% of the time using my script. It feels like a race condition between cache invalidation and record processing from worker.c. Make sure you have enough write activity during the test. > FWIW I sometimes got SEGVish crashes or mysterious misbehavor when > some structs were changed and I didn't do "make clean". Rarely I > needed "make distclean". (Yeah, I didn't ususally turn on > --enable-depend..) I'm paranoid, I always do: * make distclean * git reset; git clean -df * ./configure && make install Regards,
Commits
-
Fix subscriber invalid memory access on DDL.
- d6eca4958d78 10.12 landed
- 046830164ee4 11.7 landed
- c74111d8bd68 12.2 landed
- 04c8a69c0ccc 13.0 landed
-
Fix memory allocation mistake
- a5b95016af91 10.11 landed
- d213f3114d99 11.6 landed
- 39a6210f9e0f 12.1 landed
- d40abd5fcfb2 13.0 landed