[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