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