Re: [HACKERS] postmaster -d option (was Re: [GENERAL] Relation 0 does not exist)
Bruce Momjian <[EMAIL PROTECTED]> writes: > diff -c -c -r1.294 postgres.c > *** src/backend/tcop/postgres.c25 Sep 2002 20:31:40 -1.294 > --- src/backend/tcop/postgres.c26 Sep 2002 05:15:41 - > *** > *** 1281,1288 >* -d 0 allows user to prevent postmaster debug >* from propagating to backend. >*/ > ! SetConfigOption("server_min_messages", "notice", > ! ctx, gucsource); > } > break; > --- 1281,1287 >* -d 0 allows user to prevent postmaster debug >* from propagating to backend. >*/ > ! ResetPGVariable("server_min_messages"); > } > break; If you want "export PGOPTIONS=-d0" to do what the comment says, you'd also need to Reset all of the other GUC variables that -dN might have set. However, I'm not sure that I agree with the goal in the first place. If the admin has set debugging on the postmaster command line, should it really be possible for users to turn it off so easily? regards, tom lane ---(end of broadcast)--- TIP 4: Don't 'kill -9' the postmaster
Re: [HACKERS] postmaster -d option (was Re: [GENERAL] Relation 0 does not exist)
Tom Lane wrote: > Bruce Momjian <[EMAIL PROTECTED]> writes: > > ... Now, we just have the GUC value which does > > propogate like the global one did. Does the postmaster still pass -dX > > down to the child like it used to? > > Evidently not; else Patrick wouldn't be complaining that it doesn't > work like it used to. OK, got it. I knew server_min_messages would propogate to the client, but that doesn't trigger the -d special cases in postgres.c. I re-added the -d flag propogation to the postmaster. I also changed the postgres -d0 behavior to just reset server_min_messages rather than setting it to 'notice. -- Bruce Momjian| http://candle.pha.pa.us [EMAIL PROTECTED] | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup.| Newtown Square, Pennsylvania 19073 Index: src/backend/postmaster/postmaster.c === RCS file: /cvsroot/pgsql-server/src/backend/postmaster/postmaster.c,v retrieving revision 1.288 diff -c -c -r1.288 postmaster.c *** src/backend/postmaster/postmaster.c 4 Sep 2002 20:31:24 - 1.288 --- src/backend/postmaster/postmaster.c 26 Sep 2002 05:15:33 - *** *** 230,235 --- 230,237 static unsigned int random_seed = 0; + static intdebug_flag = 0; + extern char *optarg; extern intoptind, opterr; *** *** 452,457 --- 454,460 SetConfigOption("server_min_messages", debugstr, PGC_POSTMASTER, PGC_S_ARGV); pfree(debugstr); + debug_flag = atoi(optarg); break; } case 'F': *** *** 2028,2033 --- 2031,2037 char *remote_host; char *av[ARGV_SIZE * 2]; int ac = 0; + chardebugbuf[ARGV_SIZE]; charprotobuf[ARGV_SIZE]; chardbbuf[ARGV_SIZE]; charoptbuf[ARGV_SIZE]; *** *** 2207,2212 --- 2211,2225 */ av[ac++] = "postgres"; + + /* +* Pass the requested debugging level along to the backend. +*/ + if (debug_flag > 0) + { + sprintf(debugbuf, "-d%d", debug_flag); + av[ac++] = debugbuf; + } /* * Pass any backend switches specified with -o in the postmaster's own Index: src/backend/tcop/postgres.c === RCS file: /cvsroot/pgsql-server/src/backend/tcop/postgres.c,v retrieving revision 1.294 diff -c -c -r1.294 postgres.c *** src/backend/tcop/postgres.c 25 Sep 2002 20:31:40 - 1.294 --- src/backend/tcop/postgres.c 26 Sep 2002 05:15:41 - *** *** 1281,1288 * -d 0 allows user to prevent postmaster debug * from propagating to backend. */ ! SetConfigOption("server_min_messages", "notice", ! ctx, gucsource); } break; --- 1281,1287 * -d 0 allows user to prevent postmaster debug * from propagating to backend. */ ! ResetPGVariable("server_min_messages"); } break; ---(end of broadcast)--- TIP 4: Don't 'kill -9' the postmaster
Re: [HACKERS] postmaster -d option (was Re: [GENERAL] Relation 0 does not exist)
Bruce Momjian <[EMAIL PROTECTED]> writes: > ... Now, we just have the GUC value which does > propogate like the global one did. Does the postmaster still pass -dX > down to the child like it used to? Evidently not; else Patrick wouldn't be complaining that it doesn't work like it used to. regards, tom lane ---(end of broadcast)--- TIP 6: Have you searched our list archives? http://archives.postgresql.org
Re: [HACKERS] postmaster -d option (was Re: [GENERAL] Relation 0 does not exist)
Uh, yes, it is a little confusing and I am not sure that patch is right anymore. I haven't applied it. Another issue is that we used to have a global debug_level variable that was propogated to the client. Now, we just have the GUC value which does propogate like the global one did. Does the postmaster still pass -dX down to the child like it used to? I don't see why you say, "The postmaster.c code is blowing off all those considerations." I -d0 think functions properly except that it sets the value to 'notice' rather than resetting it to the postgresql.conf value. Is there a way to do that? --- Tom Lane wrote: > Bruce Momjian <[EMAIL PROTECTED]> writes: > > Tom Lane wrote: > >> (Looks at code...) Ah. It looks like -d to the postmaster no longer > >> means anywhere near what it used to. Bruce --- compare the handling > >> of -d in the backend (postgres.c lines 1251ff) with its handling in > >> the postmaster (postmaster.c lines 444ff). Big difference. Are we > >> going to make these more alike? If so, which one do we like? > > > I am sorry but I don't understand. They look like they both set > > server_min_messages. > > Yeah, but postgres.c *also* sets log_connections, log_statement, > debug_print_parse, debug_print_plan, debug_print_rewritten depending > on the -d level. This behavior is not random; it's an attempt to > reproduce the effects of the historical -d switch. The postmaster.c > code is blowing off all those considerations. > > > *** 1275,1288 > > if (atoi(optarg) >= 5) > > >SetConfigOption("debug_print_rewritten", "true", ctx, gucsource); > > } > > - else > > - > > - /* > > -* -d 0 allows user to prevent >postmaster debug > > -* from propagating to backend. > > -*/ > > - SetConfigOption("server_min_messages", >"notice", > > - ctx, >gucsource); > > } > > break; > > I think you are deleting your own code there ... why? > > regards, tom lane > -- Bruce Momjian| http://candle.pha.pa.us [EMAIL PROTECTED] | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup.| Newtown Square, Pennsylvania 19073 ---(end of broadcast)--- TIP 4: Don't 'kill -9' the postmaster
Re: [HACKERS] postmaster -d option (was Re: [GENERAL] Relation 0 does not exist)
Bruce Momjian <[EMAIL PROTECTED]> writes: > Tom Lane wrote: >> (Looks at code...) Ah. It looks like -d to the postmaster no longer >> means anywhere near what it used to. Bruce --- compare the handling >> of -d in the backend (postgres.c lines 1251ff) with its handling in >> the postmaster (postmaster.c lines 444ff). Big difference. Are we >> going to make these more alike? If so, which one do we like? > I am sorry but I don't understand. They look like they both set > server_min_messages. Yeah, but postgres.c *also* sets log_connections, log_statement, debug_print_parse, debug_print_plan, debug_print_rewritten depending on the -d level. This behavior is not random; it's an attempt to reproduce the effects of the historical -d switch. The postmaster.c code is blowing off all those considerations. > *** 1275,1288 > if (atoi(optarg) >= 5) > >SetConfigOption("debug_print_rewritten", "true", ctx, gucsource); > } > - else > - > - /* > - * -d 0 allows user to prevent >postmaster debug > - * from propagating to backend. > - */ > - SetConfigOption("server_min_messages", >"notice", > - ctx, >gucsource); > } > break; I think you are deleting your own code there ... why? regards, tom lane ---(end of broadcast)--- TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]
Re: [HACKERS] postmaster -d option (was Re: [GENERAL] Relation 0 does not exist)
Tom Lane wrote: > Patrick Welche <[EMAIL PROTECTED]> writes: > > ... I was running postmaster -d4, yet the only > > query I saw was the last LOG one. I pretty sure that I would see all queries > > with -d3 before.. > > It looked to me like you were just running with the recently-added > frill to log only queries that cause errors; which is on by default. > > (Looks at code...) Ah. It looks like -d to the postmaster no longer > means anywhere near what it used to. Bruce --- compare the handling > of -d in the backend (postgres.c lines 1251ff) with its handling in > the postmaster (postmaster.c lines 444ff). Big difference. Are we > going to make these more alike? If so, which one do we like? I am sorry but I don't understand. They look like they both set server_min_messages. There was a comment in one that said client_min_messages but I just fixed that. -- Bruce Momjian| http://candle.pha.pa.us [EMAIL PROTECTED] | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup.| Newtown Square, Pennsylvania 19073 Index: src/backend/tcop/postgres.c === RCS file: /cvsroot/pgsql-server/src/backend/tcop/postgres.c,v retrieving revision 1.294 diff -c -c -r1.294 postgres.c *** src/backend/tcop/postgres.c 25 Sep 2002 20:31:40 - 1.294 --- src/backend/tcop/postgres.c 26 Sep 2002 01:57:48 - *** *** 1258,1267 sprintf(debugstr, "debug%s", optarg); SetConfigOption("server_min_messages", debugstr, ctx, gucsource); pfree(debugstr); - /* * -d is not the same as setting !* client_min_messages because it enables other * output options. */ if (atoi(optarg) >= 1) --- 1258,1266 sprintf(debugstr, "debug%s", optarg); SetConfigOption("server_min_messages", debugstr, ctx, gucsource); pfree(debugstr); /* * -d is not the same as setting !* server_min_messages because it enables other * output options. */ if (atoi(optarg) >= 1) *** *** 1275,1288 if (atoi(optarg) >= 5) SetConfigOption("debug_print_rewritten", "true", ctx, gucsource); } - else - - /* -* -d 0 allows user to prevent postmaster debug -* from propagating to backend. -*/ - SetConfigOption("server_min_messages", "notice", - ctx, gucsource); } break; --- 1274,1279 ---(end of broadcast)--- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])