Andres Freund wrote:
> Improve 64bit atomics support.
>
> When adding atomics back in b64d92f1a, I added 64bit support as
> optional; there wasn't yet a direct user in sight. That turned out to
> be a bit short-sighted, it'd already have been useful a number of times.
Seems like this killed an arapaima:
https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=arapaima&dt=2017-04-07%2022%3A06%3A59
Program terminated with signal 6, Aborted.
#0 0x00c6a402 in __kernel_vsyscall ()
#0 0x00c6a402 in __kernel_vsyscall ()
#1 0x00284b10 in raise () from /lib/libc.so.6
#2 0x00286421 in abort () from /lib/libc.so.6
#3 0x084d967e in ExceptionalCondition ( conditionName=0xe19dac "(((uintptr_t) ((uintptr_t)(ptr)) + ((8) - 1)) &
~((uintptr_t)((8) - 1))) != (uintptr_t)(ptr)", errorType=0xe19831 "UnalignedPointer", fileName=0xe19d88
"../../../src/include/port/atomics.h",lineNumber=428) at assert.c:54
#4 0x00e189b0 in pg_atomic_init_u64 () at ../../../src/include/port/atomics.h:428
#5 test_atomic_uint64 () at regress.c:1007
#6 0x00e1905d in test_atomic_ops (fcinfo=0x9362584) at regress.c:1097
#7 0x08273ab2 in ExecInterpExpr (state=0x9362510, econtext=0x93622e0, isnull=0xbfbc1a4b "") at
execExprInterp.c:650
#8 0x082990a7 in ExecEvalExprSwitchContext (node=0x9362294) at ../../../src/include/executor/executor.h:289
#9 ExecProject (node=0x9362294) at ../../../src/include/executor/executor.h:323
#10 ExecResult (node=0x9362294) at nodeResult.c:132
#11 0x0827c6d5 in ExecProcNode (node=0x9362294) at execProcnode.c:416
#12 0x0827a08d in ExecutePlan (queryDesc=0x92daf38, direction=ForwardScanDirection, count=0, execute_once=1 '\001')
at execMain.c:1651
#13 standard_ExecutorRun (queryDesc=0x92daf38, direction=ForwardScanDirection, count=0, execute_once=1 '\001') at
execMain.c:360
#14 0x083cd8bb in PortalRunSelect (portal=0x92d78a8, forward=<value optimized out>, count=0, dest=0x9337728) at
pquery.c:933
#15 0x083cef1e in PortalRun (portal=0x92d78a8, count=2147483647, isTopLevel=1 '\001', run_once=1 '\001',
dest=0x9337728, altdest=0x9337728, completionTag=0xbfbc1c6a "") at pquery.c:774
#16 0x083cb38f in exec_simple_query ( query_string=0x93360b0 "SELECT test_atomic_ops();") at postgres.c:1105
#17 0x083cc640 in PostgresMain (argc=1, argv=0x92e4160, dbname=0x92e3fe0 "regression", username=0x92e3fc4
"postgres") at postgres.c:4075
#18 0x08349eaf in BackendStartup () at postmaster.c:4317
#19 ServerLoop () at postmaster.c:1729
#20 0x0834db50 in PostmasterMain (argc=8, argv=0x92b9968) at postmaster.c:1337
#21 0x082c01e2 in main (argc=8, argv=Cannot access memory at address 0x5aa5
) at main.c:228
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services