[Pgcluster-general] Cybercluster-1.0.0 recovery bug
At.Mitani
mitani at sraw.co.jp
Wed Jan 16 08:01:05 UTC 2008
Hi Rick,
Thank you for create patch.
If you can agree with , I'd like to recomend check it in the "restore_dir()" as following patch.
--- recovery.c.old 2008-01-16 16:53:43.000000000 +0900
+++ recovery.c 2008-01-16 16:52:03.000000000 +0900
@@ -682,6 +682,10 @@
char bkp_dir[256];
pid_t pid = getpid();
+ if (PGR_Recovery_Mode == PGR_WITHOUT_BACKUP)
+ {
+ return STATUS_OK;
+ }
sprintf(org_dir,"%s",dir_name);
sprintf(bkp_dir,"%s_%d",dir_name,pid);
status = rename(bkp_dir,org_dir);
Regards,
----------------
At.Mitani
On Wed, 16 Jan 2008 00:00:12 -0600
Rick Vernam <rickv at hobi.com> wrote:
> I wrote a patch for pgcluster (which cybercluster is based on) that were not
> applied correctly to cybercluster.
>
> in src/backend/libpq/recovery.c
> all occurrences of restore_dir(...) should be conditional upon
> if (PGR_Recovery_Mode != PGR_WITHOUT_BACKUP)
>
> so, instead of
> restore_dir(...)
>
> it should be
> if (PGR_Recovery_Mode != PGR_WITHOUT_BACKUP)
> restore_dir(...)
>
> This is a serious bug that occurs when a node starts recovery with -u (rsync
> recovery without backup), and results in a lost base directory.
>
> see attached patch for fix.
>
> -Rick
>
--
At.Mitani <mitani at sraw.co.jp>
More information about the Pgcluster-general
mailing list