Backend crash while accessing pg_user :-( - Mailing list pgsql-bugs

From Jan Iven
Subject Backend crash while accessing pg_user :-(
Date
Msg-id df01aef839f3fecc1f04d3c01fafcff9
Whole thread Raw
List pgsql-bugs
Your name        :    Jan Iven
Your email address    :    rzsji@rz.uni-sb.de


System Configuration
- ---------------------
  Architecture (example: Intel Pentium)      : Intel PPro

  Operating System (example: Linux 2.0.26 ELF)     : Linux 2.0.36

  PostgreSQL version (example: PostgreSQL-6.4)  :   PostgreSQL-6.4/CVS

  Compiler used (example:  gcc 2.8.0)        : gcc version egcs-2.91.57 19980901 (egcs-1.1 release)


Please enter a FULL description of your problem:
- ------------------------------------------------
The Backend crashes while trying to get pg_users




Please describe a way to repeat the problem.   Please try to provide a
concise reproducible example, if at all possible:
- ----------------------------------------------------------------------
(while logged in as postgres super user)
createuser

or running postgres standalone with
SELECT * FROM pg_user;



If you know how this problem might be fixed, list the solution below:
- ---------------------------------------------------------------------
no idea. Perhaps some stupid setup over here?


gdb backtrace:
#0  0x8109ce7 in ApplyRetrieveRule (parsetree=0x822ca80, rule=0xbfffb7a4, rt_index=1, relation_level=1,
relation=0x822ccf0,modified=0xbfffb7a0) at rewriteHandler.c:1817 
#1  0x810a34c in fireRIRrules (parsetree=0x822ca80) at rewriteHandler.c:2079
#2  0x810abca in QueryRewrite (parsetree=0x822ca80) at rewriteHandler.c:2615
#3  0x811bc0d in pg_parse_and_plan (query_string=0xbfffd8c8 "select * from pg_user;\n", typev=0x0, nargs=0,
queryListP=0xbfffd86c,dest=Debug, aclOverride=0 '\000') at postgres.c:505 
#4  0x811c07a in pg_exec_query_dest (query_string=0xbfffd8c8 "select * from pg_user;\n", dest=Debug, aclOverride=0
'\000')at postgres.c:722 
#5  0x811c030 in pg_exec_query (query_string=0xbfffd8c8 "select * from pg_user;\n") at postgres.c:699
#6  0x811d1c3 in PostgresMain (argc=4, argv=0xbffff914, real_argc=4, real_argv=0xbffff914) at postgres.c:1646
#7  0x80be6eb in main (argc=4, argv=0xbffff914) at main.c:107
(gdb) f 0
#0  0x8109ce7 in ApplyRetrieveRule (parsetree=0x822ca80, rule=0xbfffb7a4, rt_index=1, relation_level=1,
relation=0x822ccf0,modified=0xbfffb7a0) at rewriteHandler.c:1817 

(gdb) print rule_action
$1 = (Query *) 0x0

the offender is

1817: rtable = nconc(rtable, copyObject(rule_action->rtable));

with rule_action being a NULL pointer, since rule->action is a NULL
pointer as well...(and therefore the if-clause on line 1791 doesn´t
do anything).

(gdb) print *rule
$3 = {ruleId = 0, event = CMD_SELECT, attrno = -1, qual = 0x0, actions = 0x0, isInstead = 104 'h'}

Well, I´ll put a
    if(!nothing) {

    }
around the above line and see what happens.

Regards,
Jan

pgsql-bugs by date:

Previous
From: Super-User
Date:
Subject: stuck spinlock while initdb
Next
From: Bruce Momjian
Date:
Subject: Re: [HACKERS] Failures with arrays