Re: make check-world regress failed

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: make check-world regress failed
Дата
Msg-id 20150108204635.GK6299@alap3.anarazel.de
обсуждение исходный текст
Ответ на Re: make check-world regress failed  (Heikki Linnakangas <hlinnakangas@vmware.com>)
Ответы Fwd: Re: make check-world regress failed  (Vladimir Koković <vladimir.kokovic@gmail.com>)
Список pgsql-hackers
On 2014-12-04 16:38:45 +0200, Heikki Linnakangas wrote:
> On 11/23/2014 08:37 PM, Vladimir Koković wrote:
> >PostgreSQL check-world regress failed with current GIT HEAD on my Kubuntu
> >14.10.
> >
> >uname -a
> >Linux vlD-kuci 3.16.0-24-generic #32-Ubuntu SMP Tue Oct 28 13:13:18 UTC
> >2014 i686 athlon i686 GNU/Linux
> >
> >gdb -d /home/src/postgresql-devel/postgresql-git/postgresql/src -c core
> >...
> >Loaded symbols for
> >/home/src/postgresql-devel/dev-build/src/test/regress/regress.so
> >(gdb) bt
> >#0  0xb76ecc7c in __kernel_vsyscall ()
> >#1  0xb7075577 in __GI_raise (sig=sig@entry=6) at
> >../nptl/sysdeps/unix/sysv/linux/raise.c:56
> >#2  0xb7076cf3 in __GI_abort () at abort.c:89
> >#3  0x084c326a in ?? ()
> >#4  0x0a56c3b8 in ?? ()
> >#5  0xb76d232f in pg_atomic_init_u64 (ptr=0xbfa16fd4, val=0) at
> >/home/src/postgresql-devel/postgresql-git/postgresql/src/include/port/atomics.h:445
> >#6  0xb76d50e4 in test_atomic_uint64 () at
> >/home/src/postgresql-devel/postgresql-git/postgresql/src/test/regress/regress.c:1022
> >#7  0xb76d5756 in test_atomic_ops (fcinfo=0xa57c76c) at
> >/home/src/postgresql-devel/postgresql-git/postgresql/src/test/regress/regress.c:1114
> >#8  0x0825bfee in ?? ()
> >...
>
> Andres, have you had a chance to look at this?

Nope, missed it somehow.

> On 32-bit x86, arch-x86.h leaves PG_HAVE_ATOMIC_U64_SUPPORT undefined. But
> generic-gcc.h, which is included later, then defines it.

That's fine. The only reason arch-x86.h implements anything itself is
that that allows older compilers than relying on intrinsics. But
implementing 64bit atomics is too annoying by hand and isn't currently
required.

> pg_atomic_init_u64 does AssertPointerAlignment(ptr, 8) on the variable, but
> there is no guarantee that it is 8-bytes aligned on x86.

Hrmpf. Annoying. Gcc for a while claimed that was guaranteed, but, if I
understood the tickets correctly, gave up on that.

Unfortunately we have to rely (IIRC) on that for (quite old) x86s and
some other architectures. It doesn't seem to be a problem on any native
64bit platform, because 64bit variables are 8byte aligned natively
there.

I think it can relatively easily be fixed by something like the
attached. Don't have a pure 32bit environment to test though - the
problem isn't reproducable in a 32bit chroot...


Vladimir, if you apply that patch, do things work for you?

Greetings,

Andres Freund

--
 Andres Freund                       http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Andrew Dunstan
Дата:
Сообщение: Re: Patch: [BUGS] BUG #12320: json parsing with embedded double quotes
Следующее
От: Peter Eisentraut
Дата:
Сообщение: Re: Turning recovery.conf into GUCs