Re: WIP: BRIN multi-range indexes
От | Tomas Vondra |
---|---|
Тема | Re: WIP: BRIN multi-range indexes |
Дата | |
Msg-id | 8d58c39f-4df9-83b0-d503-1addb3a445b7@enterprisedb.com обсуждение исходный текст |
Ответ на | Re: WIP: BRIN multi-range indexes (Tomas Vondra <tomas.vondra@enterprisedb.com>) |
Список | pgsql-hackers |
On 3/26/21 3:45 PM, Tomas Vondra wrote: > On 3/26/21 3:04 PM, Tomas Vondra wrote: >> On 3/26/21 2:55 PM, Tom Lane wrote: >>> Tomas Vondra <tomas.vondra@enterprisedb.com> writes: >>>> I recall seeing "bus error" on sparc with other patches because of >>>> alignment issues, so I wonder if this is what's happening here. >>> >>> Try compiling with the address sanitizer enabled. Per c.h, >>> >>> * Testing can be done with "-fsanitize=alignment -fsanitize-trap=alignment" >>> * on clang, or "-fsanitize=alignment -fno-sanitize-recover=alignment" on gcc. >>> >> >> Bingo! I see the one failing x86_64 machine has -fsanitize=alignment. >> > > Yeah, the deserialization is borked. It assumes it can just point into > the serialized representation of the summary, but that is "compacted" by > ignoring alignment. Hence the failures. For me it fails only for timetz > and interval types, but perhaps sparc is more sensitive, or maybe it's > about 32/64 bits too (the only backtrace I'm aware of is from snapper, > so assuming it's 32bits it'd make sense it fails on int8). > > I have a feeling I made the same mistake in serialization of MCV stats > some time ago, shame on me. I'll get this fixed. > I've pushed a fix, ensuring proper alignment. There was a second issue that'd affect big endian systems, so I fixed that too. regards -- Tomas Vondra EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: