[Postgres-xl-bugs] PostGIS support

Brian Gottreu gottreu at umn.edu
Fri Nov 7 10:45:58 PST 2014


A postgres server process (not the master process) segfaults if one tries
to alter the distribution of a table created by an extension.

The first backtrace is from Postgres-XL built from the 9.2 source tarball
with no debugging enabled.

Program received signal SIGSEGV, Segmentation fault.
0x00000000005bfa4d in CopyRelationLocInfo ()
(gdb) bt
#0  0x00000000005bfa4d in CopyRelationLocInfo ()
#1  0x000000000057072c in ATController ()
#2  0x0000000000693f0e in standard_ProcessUtility ()
#3  0x000000000068e9eb in PortalRunUtility ()
#4  0x000000000068f5ed in PortalRunMulti ()
#5  0x0000000000690ea8 in PortalRun ()
#6  0x000000000068c771 in PostgresMain ()
#7  0x000000000064c424 in ServerLoop ()
#8  0x000000000064cd28 in PostmasterMain ()
#9  0x0000000000464427 in main ()

I then compiled Postgres-XL from git commit
da103e5efee854250f0e3516c634e8a7ff658117 with debugging and assertions
enabled.  It's running on an Ubuntu 14.04 server. The specific query I used
was "alter table spatial_ref_sys distribute by replication;" after loading
the PostGIS extension.  (I got similar results with other tables created
from other extensions.)  Here's the backtrace I got.

Program received signal SIGABRT, Aborted.
0x00007f755e73cbb9 in __GI_raise (sig=sig at entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
56      ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  0x00007f755e73cbb9 in __GI_raise (sig=sig at entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007f755e73ffc8 in __GI_abort () at abort.c:89
#2  0x000000000078b277 in ExceptionalCondition
(conditionName=conditionName at entry=0x902b1e "!(oldLocInfo)",
errorType=errorType at entry=0x7d9750 "FailedAssertion",
    fileName=fileName at entry=0x9027dc "tablecmds.c",
lineNumber=lineNumber at entry=10237) at assert.c:54
#3  0x000000000059066d in BuildRedistribCommands (subCmds=0x131cb28,
relid=<optimized out>) at tablecmds.c:10237
#4  ATController (rel=0x7f755bcbd6e8, cmds=<optimized out>,
recurse=<optimized out>, lockmode=lockmode at entry=8) at tablecmds.c:3046
#5  0x00000000005908d3 in AlterTable (relid=relid at entry=24847,
lockmode=lockmode at entry=8, stmt=<optimized out>) at tablecmds.c:2744
#6  0x00000000006cae7e in standard_ProcessUtility (parsetree=<optimized
out>, queryString=0x127bb48 "alter table spatial_ref_sys distribute by
replication;",
    params=0x0, isTopLevel=<optimized out>, dest=<optimized out>,
sentToRemote=<optimized out>, completionTag=0x7fffe4c0b300 "") at
utility.c:1204
#7  0x00000000006c542b in PortalRunUtility (portal=portal at entry=0x130f498,
utilityStmt=utilityStmt at entry=0x127c6c8, isTopLevel=isTopLevel at entry=1
'\001',
    dest=dest at entry=0x127ca50, completionTag=completionTag at entry=0x7fffe4c0b300
"") at pquery.c:1689
#8  0x00000000006c6172 in PortalRunMulti (portal=portal at entry=0x130f498,
isTopLevel=isTopLevel at entry=1 '\001', dest=dest at entry=0x127ca50,
    altdest=altdest at entry=0x127ca50,
completionTag=completionTag at entry=0x7fffe4c0b300
"") at pquery.c:1836
#9  0x00000000006c7c10 in PortalRun (portal=portal at entry=0x130f498,
count=count at entry=9223372036854775807, isTopLevel=isTopLevel at entry=1 '\001',
    dest=dest at entry=0x127ca50, altdest=altdest at entry=0x127ca50,
completionTag=completionTag at entry=0x7fffe4c0b300 "") at pquery.c:1109
#10 0x00000000006c3131 in exec_simple_query (query_string=0x127bb48 "alter
table spatial_ref_sys distribute by replication;") at postgres.c:1277
#11 PostgresMain (argc=<optimized out>, argv=argv at entry=0x11d38c8,
dbname=0x11d3728 "segfault", username=<optimized out>) at postgres.c:4557
#12 0x0000000000679da1 in BackendRun (port=0x11f5da0) at postmaster.c:3880
#13 BackendStartup (port=0x11f5da0) at postmaster.c:3570
#14 ServerLoop () at postmaster.c:1502
#15 0x000000000067a67e in PostmasterMain (argc=argc at entry=5,
argv=argv at entry=0x11d13e0)
at postmaster.c:1262
#16 0x00000000004645a1 in main (argc=5, argv=0x11d13e0) at main.c:201
(gdb) cont
Continuing.

I can imagine altering an extension's tables would not be a supported
operation, but a segfault seems ungraceful at best.

Brian Gottreu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.postgres-xl.org/private.cgi/postgres-xl-bugs-postgres-xl.org/attachments/20141107/7680b47d/attachment.htm>


More information about the postgres-xl-bugs mailing list