Thread

  1. 8.5alpha3 bug in information_schema.table_privileges

    Robert Treat <xzilla@users.sourceforge.net> — 2010-01-12T01:37:01Z

    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
    
    
  2. Re: 8.5alpha3 bug in information_schema.table_privileges

    Tom Lane <tgl@sss.pgh.pa.us> — 2010-01-12T01:57:09Z

    Robert Treat <xzilla@users.sourceforge.net> 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