Re: Fix pg_ctl restart bug

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: Fix pg_ctl restart bug
Дата
Msg-id 200806261912.m5QJCWA22609@momjian.us
обсуждение исходный текст
Ответ на Re: Fix pg_ctl restart bug  (Bruce Momjian <bruce@momjian.us>)
Список pgsql-patches
Bruce Momjian wrote:
> I am attaching a minimal patch that will fix the bug in back branches.
> Keep in mind that a patched pg_ctl will not be able to restart a backend
> that was not patched.

I think this patch will work for unpatched backends as well.  I am still
uncertain if it should be backpatched.

--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +
Index: src/backend/postmaster/postmaster.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v
retrieving revision 1.551
diff -c -c -r1.551 postmaster.c
*** src/backend/postmaster/postmaster.c    11 Jan 2008 00:54:09 -0000    1.551
--- src/backend/postmaster/postmaster.c    26 Jun 2008 19:11:37 -0000
***************
*** 4163,4169 ****

      fprintf(fp, "%s", fullprogname);
      for (i = 1; i < argc; i++)
!         fprintf(fp, " %s%s%s", SYSTEMQUOTE, argv[i], SYSTEMQUOTE);
      fputs("\n", fp);

      if (fclose(fp))
--- 4163,4169 ----

      fprintf(fp, "%s", fullprogname);
      for (i = 1; i < argc; i++)
!         fprintf(fp, " \"%s\"", argv[i]);
      fputs("\n", fp);

      if (fclose(fp))
Index: src/bin/pg_ctl/pg_ctl.c
===================================================================
RCS file: /cvsroot/pgsql/src/bin/pg_ctl/pg_ctl.c,v
retrieving revision 1.92.2.3
diff -c -c -r1.92.2.3 pg_ctl.c
*** src/bin/pg_ctl/pg_ctl.c    29 Feb 2008 23:31:42 -0000    1.92.2.3
--- src/bin/pg_ctl/pg_ctl.c    26 Jun 2008 19:11:37 -0000
***************
*** 613,627 ****
              {
                  char       *arg1;

!                 arg1 = strchr(optline, *SYSTEMQUOTE);
!                 if (arg1 == NULL || arg1 == optline)
!                     post_opts = "";
!                 else
                  {
!                     *(arg1 - 1) = '\0'; /* this should be a space */
!                     post_opts = arg1;
                  }
!                 if (postgres_path != NULL)
                      postgres_path = optline;
              }
              else
--- 613,629 ----
              {
                  char       *arg1;

!                 /*
!                  * Are we at the first option, as defined by space and
!                  * double-quote?
!                  */
!                 if ((arg1 = strstr(optline, " \"")) != NULL ||
!                     (arg1 = strstr(optline, " -")) != NULL)
                  {
!                     *arg1 = '\0';    /* terminate so we get only program name */
!                     post_opts = arg1 + 1; /* point past whitespace */
                  }
!                 if (postgres_path == NULL)
                      postgres_path = optline;
              }
              else

В списке pgsql-patches по дате отправления:

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: Fix pg_ctl restart bug
Следующее
От: Alvaro Herrera
Дата:
Сообщение: Re: Fix pg_ctl restart bug