Sat Jul 10 18:32:38 PDT 2004
- Previous message: [Slony1-general] Password showing in 'ps' listings
- Next message: [Slony1-general] Password showing in 'ps' listings
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 7/10/2004 1:47 PM, Erik G. Burrows wrote:
> I've only been using Slony-I for a few days, but I already love it! It's
> going to make database migrations and upgrades much, much easier.
> However, I didn't like the fact that the PostgreSQL connection string
> passed to the slon process shows up in 'ps' output.
>
> Attached is my patch to slon.c to erase the argv entry with the
> connection string after slon finishes processing it's arguments, and
> restore it in case of a restart. I'm not sure how portable this fix is,
> but it should work on most *nix platforms, I think. I hope you find it
> useful.
We know from the PostgreSQL main project how much of a headache mucking
with the commandline arguments is. I would much more prefer changing the
slony commandline into taking a filename argument where to find all the
configuration parameters that are now passed with switches. Would you be
willing to rework it into something like that?
Jan
>
> Thanks,
> Erik G. Burrows
>
>
>
> ------------------------------------------------------------------------
>
> Index: slon.c
> ===================================================================
> RCS file: /usr/local/cvsroot/slony1/slony1-engine/src/slon/slon.c,v
> retrieving revision 1.27
> diff -c -r1.27 slon.c
> *** slon.c 8 Jun 2004 15:15:49 -0000 1.27
> --- slon.c 10 Jul 2004 17:35:14 -0000
> ***************
> *** 52,57 ****
> --- 52,58 ----
> static char *const *main_argv;
> static void sigalrmhandler(int signo);
>
> + int conn_param_argv_idx;
>
> /* ----------
> * main
> ***************
> *** 174,179 ****
> --- 175,187 ----
> rtcfg_conninfo = (char *)argv[++optind];
>
> /*
> + * Remove the connection params from argv, so as not to show up in 'ps' listings, but save
> + * it's position within the argv array, as we'll need to put it back in the case of a restart.
> + */
> + conn_param_argv_idx = optind;
> + bzero((char *)argv[conn_param_argv_idx], strlen((char *)argv[conn_param_argv_idx]));
> +
> + /*
> * Connect to the local database for reading the initial configuration
> */
> startup_conn = PQconnectdb(rtcfg_conninfo);
> ***************
> *** 520,525 ****
> --- 528,537 ----
> if (slon_restart_request)
> {
> slon_log(SLON_DEBUG1, "main: restart requested\n");
> +
> + /* Put the connection param argv element back */
> + strcpy(argv[conn_param_argv_idx], rtcfg_conninfo);
> +
> execvp(argv[0], argv);
> slon_log(SLON_FATAL,
> "main: cannot restart via execvp(): %s\n", strerror(errno));
> ***************
> *** 551,556 ****
> --- 563,571 ----
> slon_log(SLON_WARN, "main: shutdown timeout\n");
> if (slon_restart_request)
> {
> + /* Put the connection param argv element back */
> + strcpy(main_argv[conn_param_argv_idx], rtcfg_conninfo);
> +
> execvp(main_argv[0], main_argv);
> slon_log(SLON_FATAL,
> "main: cannot restart via execvp(): %s\n", strerror(errno));
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Slony1-general mailing list
> Slony1-general at gborg.postgresql.org
> http://gborg.postgresql.org/mailman/listinfo/slony1-general
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#================================================== JanWieck at Yahoo.com #
- Previous message: [Slony1-general] Password showing in 'ps' listings
- Next message: [Slony1-general] Password showing in 'ps' listings
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-general mailing list