Re: [HACKERS] 8.5alpha3 bug in information_schema.table_privileges

2010-01-11 Thread Tom Lane
Robert Treat  writes:
> pagila=# select * from information_schema.table_privileges;
> TRAP: FailedAssertion("!(idx[0] < (((int *) (((char *) (acl)) + 
> sizeof(ArrayType)))[0]))", File: "acl.c", Line: 1740)
> server closed the connection unexpectedly
> This probably means the server terminated abnormally
> before or while processing the request.

Hmm, looks like somebody forgot to consider the case of a zero-element
ACL array ...

regards, tom lane

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


[HACKERS] 8.5alpha3 bug in information_schema.table_privileges

2010-01-11 Thread Robert Treat
pagila=# select * from information_schema.table_privileges;
TRAP: FailedAssertion("!(idx[0] < (((int *) (((char *) (acl)) + 
sizeof(ArrayType)))[0]))", File: "acl.c", Line: 1740)
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.

On a build without assertions it dumps core, which gives a backtrace like so: 
(dbx) where 
current thread: t...@1
=>[1] aclexplode(fcinfo = ???) (optimized), at 0x7345fa (line ~1743) in 
"acl.c"
  [2] ExecMakeFunctionResult(fcache = ???, econtext = ???, isNull = ???, 
isDone = ???) (optimized), at 0x65ae76 (line ~1590) in "execQual.c"
  [3] ExecEvalFieldSelect(fstate = ???, econtext = ???, isNull = ???, isDone = 
???) (optimized), at 0x65e57c (line ~3759) in "execQual.c"
  [4] ExecTargetList(targetlist = ???, econtext = ???, values = ???, isnull = 
???, itemIsDone = ???, isDone = ???) (optimized), at 0x6600b8 (line ~4981) in 
"execQual.c"
  [5] ExecProject(projInfo = ???, isDone = ???) (optimized), at 0x660a2d (line 
~5198) in "execQual.c"
  [6] ExecScan(node = ???, accessMtd = ???, recheckMtd = ???) (optimized), at 
0x660b57 (line ~139) in "execScan.c"
  [7] ExecSeqScan(node = ???) (optimized), at 0x671c5f (line ~116) in 
"nodeSeqscan.c"
  [8] ExecProcNode(node = ???) (optimized), at 0x658cc9 (line ~378) in 
"execProcnode.c"
  [9] SubqueryNext(node = ???) (optimized), at 0x674fd8 (line ~53) in 
"nodeSubqueryscan.c"
  [10] ExecScan(node = ???, accessMtd = ???, recheckMtd = ???) (optimized), at 
0x660d3d (line ~82) in "execScan.c"
  [11] ExecSubqueryScan(node = ???) (optimized), at 0x675007 (line ~87) in 
"nodeSubqueryscan.c"
  [12] ExecProcNode(node = ???) (optimized), at 0x658c95 (line ~396) in 
"execProcnode.c"
  [13] ExecNestLoop(node = ???) (optimized), at 0x670ef0 (line ~154) in 
"nodeNestloop.c"
  [14] ExecProcNode(node = ???) (optimized), at 0x658c48 (line ~419) in 
"execProcnode.c"
  [15] ExecNestLoop(node = ???) (optimized), at 0x670eb4 (line ~120) in 
"nodeNestloop.c"
  [16] ExecProcNode(node = ???) (optimized), at 0x658c48 (line ~419) in 
"execProcnode.c"
  [17] ExecNestLoop(node = ???) (optimized), at 0x670eb4 (line ~120) in 
"nodeNestloop.c"
  [18] ExecProcNode(node = ???) (optimized), at 0x658c48 (line ~419) in 
"execProcnode.c"
  [19] ExecutePlan(estate = ???, planstate = ???, operation = ???, sendTuples 
= ???, numberTuples = ???, direction = ???, dest = ???) (optimized), at 
0x657220 (line ~1190) in "execMain.c"
  [20] standard_ExecutorRun(queryDesc = ???, direction = ???, count = ???) 
(optimized), at 0x6561e8 (line ~284) in "execMain.c"
  [21] ExecutorRun(queryDesc = ???, direction = ???, count = ???) (optimized), 
at 0x65610b (line ~227) in "execMain.c"
  [22] PortalRunSelect(portal = ???, forward = ???, count = ???, dest = ???) 
(optimized), at 0x71f8a4 (line ~953) in "pquery.c"
  [23] PortalRun(portal = ???, count = ???, isTopLevel = ???, dest = ???, 
altdest = ???, completionTag = ???) (optimized), at 0x71f4b2 (line ~779) in 
"pquery.c"
  [24] exec_simple_query(query_string = ???) (optimized), at 0x719ed6 (line 
~1052) in "postgres.c"
  [25] PostgresMain(argc = ???, argv = ???, username = ???) (optimized), at 
0x71de04 (line ~3671) in "postgres.c"
  [26] BackendRun(port = ???) (optimized), at 0x6e9b57 (line ~3369) in 
"postmaster.c"
  [27] BackendStartup(port = ???) (optimized), at 0x6e94a9 (line ~3076) in 
"postmaster.c"
  [28] ServerLoop() (optimized), at 0x6e709e (line ~1400) in "postmaster.c"
  [29] PostmasterMain(argc = ???, argv = ???) (optimized), at 0x6e675f (line 
~1065) in "postmaster.c"
  [30] main(argc = ???, argv = ???) (optimized), at 0x688336 (line ~188) in 
"main.c"

Both of those systems run Solaris, though one was compiled with gcc, the other 
with SunStudio. I can probably dig up more info if needed. 

Oh, seems it might be related to one of:
http://git.postgresql.org/gitweb?p=postgresql.git&a=search&h=HEAD&st=commit&s=aclexplode

HTH

-- 
Robert Treat
Conjecture: http://www.xzilla.net
Consulting: http://www.omniti.com

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers