Michael Fuhr wrote:
> The latest HEAD is segfaulting on startup if I have the following
> lines in postgresql.conf:
>
> custom_variable_classes = 'plperl'
> plperl.use_strict = on
>
> If I comment out the second line then the server starts successfully.
> Platform is Solaris 9/sparc.
>
> (gdb) bt
> #0 0xff0340a0 in strcmp () from /usr/lib/libc.so.1
> #1 0x00257504 in verify_config_option (name=0x0, value=0x397258 "on",
> context=PGC_POSTMASTER, source=PGC_S_FILE, isNewEqual=0xffbff2cb "\001",
> isContextOK=0xffbff2ca "\001\001") at guc.c:5513
> #2 0x0025d3b4 in ProcessConfigFile (context=PGC_POSTMASTER) at guc-file.l:152
> #3 0x0025d80c in SelectConfigFiles (userDoption=0x1 bounds>, progname=0x390610 "postgres") at guc.c:2867
> #4 0x0019a450 in PostmasterMain (argc=5, argv=0x391240) at postmaster.c:602
> #5 0x001518c8 in main (argc=5, argv=0x391240) at main.c:187
Thanks for the report. This attached, applied patch fixes it. The
problem was that custom variables have _no_ default value for strings on
startup, and the checking code was being too agressive.
--
Bruce Momjian [EMAIL PROTECTED]
EnterpriseDBhttp://www.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +
Index: src/backend/utils/misc/guc.c
===
RCS file: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v
retrieving revision 1.339
diff -c -c -r1.339 guc.c
*** src/backend/utils/misc/guc.c 13 Aug 2006 02:22:24 - 1.339
--- src/backend/utils/misc/guc.c 13 Aug 2006 15:34:13 -
***
*** 5512,5518
{
struct config_string *conf = (struct config_string *) record;
! return strcmp(*conf->variable, newvalue) == 0;
}
}
--- 5512,5521
{
struct config_string *conf = (struct config_string *) record;
! if (!*conf->variable) /* custom variable with no value yet */
! return false;
! else
! return strcmp(*conf->variable, newvalue) == 0;
}
}
---(end of broadcast)---
TIP 4: Have you searched our list archives?
http://archives.postgresql.org