Re: BUG #14897: Segfault on statitics SQL request
Dmitry Dolgov <9erthalion6@gmail.com>
From: Dmitry Dolgov <9erthalion6@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Michael Paquier <michael.paquier@gmail.com>, Vincent Lachenal <vincent.lachenal@gmail.com>, PostgreSQL mailing lists <pgsql-bugs@postgresql.org>
Date: 2017-11-11T16:52:34Z
Lists: pgsql-bugs
> On 11 November 2017 at 17:36, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> Would you guys who are seeing the problem note whether the address of
> the int128 field is 16-aligned, or only 8-aligned?
__alignof__(__int128) returns 16 on my machine.
> Also, it'd be real useful to see some disassembly around the point of
> the crash, so that we can check whether the compiler is using SIMD
> instructions. (Or just get the compiler to generate a numeric.s file
> with -S.)
Here is the disassembly section I've got in my case:
0x00000000007fc474 numericvar_to_int128+458 je 0x7fc48c
<numericvar_to_int128+482>
0x00000000007fc476 numericvar_to_int128+460 mov -0x88(%rbp),%rax
0x00000000007fc47d numericvar_to_int128+467 movdqa -0x60(%rbp),%xmm0
--> 0x00000000007fc482 numericvar_to_int128+472 movaps %xmm0,(%rax)
0x00000000007fc485 numericvar_to_int128+475 mov $0x1,%eax
0x00000000007fc48a numericvar_to_int128+480 jmp 0x7fc455
<numericvar_to_int128+427>
0x00000000007fc48c numericvar_to_int128+482 negq -0x60(%rbp)
Commits
-
Prevent int128 from requiring more than MAXALIGN alignment.
- d4e38489f98a 9.5.11 landed
- 619a8c47da72 10.2 landed
- 4a15f87d2277 9.6.7 landed
- 7518049980be 11.0 landed
-
Rearrange c.h to create a "compiler characteristics" section.
- cfc157078f2e 9.5.11 landed
- a8910506757c 10.2 landed
- 6c35b3aa465e 9.6.7 landed
- 91aec93e6089 11.0 landed