Обсуждение: Re: [HACKERS] heads up -- subtle change of behavior of new initdb
darnit!
patch attached.
(Thinks - do we need to worry about suid sgid and sticky bits on data dir?)
andrew
Tom Lane wrote:
>Joe Conway <mail@joeconway.com> writes:
>
>
>>I just noticed tonight that the new initdb introduced a subtle change of
>>behavior. I use a shell script to automate the process of
>>- rm old data directory
>>- mkdir new data directory
>>- initdb
>>- load from pgdumpall
>>Now, that second step is not needed, but as of today it produces an
>>installation that won't start due to improper permissions on data
>>
>>
>
>That's a bug --- evidently the "fix permissions" path of control is
>wrong; can you take a look?
>
>
>
>
? .deps
? initdb
Index: initdb.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/bin/initdb/initdb.c,v
retrieving revision 1.7
diff -c -w -r1.7 initdb.c
*** initdb.c 13 Nov 2003 23:46:31 -0000 1.7
--- initdb.c 14 Nov 2003 06:47:50 -0000
***************
*** 2345,2350 ****
--- 2345,2359 ----
made_new_pgdata = true;
}
+ else
+ {
+ printf("fixing permissions on existing directory %s... ",pg_data);
+ fflush(stdout);
+ if (!chmod(pg_data,0700))
+ exit_nicely();
+ else
+ check_ok();
+ }
/* Create required subdirectories */
Andrew Dunstan <andrew@dunslane.net> writes:
> darnit!
> patch attached.
Applied with correction (you got the return-value check backwards)
and further work to deal reasonably with error conditions occurring
in check_data_dir.
regards, tom lane
Patch applied. Thanks.
---------------------------------------------------------------------------
Andrew Dunstan wrote:
>
> darnit!
>
> patch attached.
>
> (Thinks - do we need to worry about suid sgid and sticky bits on data dir?)
>
> andrew
>
> Tom Lane wrote:
>
> >Joe Conway <mail@joeconway.com> writes:
> >
> >
> >>I just noticed tonight that the new initdb introduced a subtle change of
> >>behavior. I use a shell script to automate the process of
> >>- rm old data directory
> >>- mkdir new data directory
> >>- initdb
> >>- load from pgdumpall
> >>Now, that second step is not needed, but as of today it produces an
> >>installation that won't start due to improper permissions on data
> >>
> >>
> >
> >That's a bug --- evidently the "fix permissions" path of control is
> >wrong; can you take a look?
> >
> >
> >
> >
> ? .deps
> ? initdb
> Index: initdb.c
> ===================================================================
> RCS file: /projects/cvsroot/pgsql-server/src/bin/initdb/initdb.c,v
> retrieving revision 1.7
> diff -c -w -r1.7 initdb.c
> *** initdb.c 13 Nov 2003 23:46:31 -0000 1.7
> --- initdb.c 14 Nov 2003 06:47:50 -0000
> ***************
> *** 2345,2350 ****
> --- 2345,2359 ----
>
> made_new_pgdata = true;
> }
> + else
> + {
> + printf("fixing permissions on existing directory %s... ",pg_data);
> + fflush(stdout);
> + if (!chmod(pg_data,0700))
> + exit_nicely();
> + else
> + check_ok();
> + }
>
> /* Create required subdirectories */
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
Tom Lane wrote: > Andrew Dunstan <andrew@dunslane.net> writes: > > darnit! > > patch attached. > > Applied with correction (you got the return-value check backwards) > and further work to deal reasonably with error conditions occurring > in check_data_dir. Tom applied it before I could. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073
Tom Lane wrote: >Andrew Dunstan <andrew@dunslane.net> writes: > > >>darnit! >>patch attached. >> >> > >Applied with correction (you got the return-value check backwards) >and further work to deal reasonably with error conditions occurring >in check_data_dir. > darnit again. I'm taking a break - my head is swimming with Java, JavaScript, Perl, HTML and XML/XSL from my real (i.e. paying) work, and context switching is causing massive mental thrashing. cheers andrew