Thread
Commits
-
Fix translatable string
- 8d5ec8ee3809 9.5.10 landed
- a1af1e7cfaef 10.0 landed
- bd75335a83bf 9.6.6 landed
- 863d75439e87 11.0 landed
-
pg_rewind: Fix some problems when copying files >2GB.
- 73fbf3d3d0a5 9.6.4 cited
-
pgsql: pg_rewind: Fix some problems when copying files >2GB.
Robert Haas <rhaas@postgresql.org> — 2017-07-22T02:10:27Z
pg_rewind: Fix some problems when copying files >2GB. When incrementally updating a file larger than 2GB, the old code could either fail outright (if the client asked the server for bytes beyond the 2GB boundary) or fail to copy all the blocks that had actually been modified (if the server reported a file size to the client in excess of 2GB), resulting in data corruption. Generally, such files won't occur anyway, but they might if using a non-default segment size or if there the directory contains stray files unrelated to PostgreSQL. Fix by a more prudent choice of data types. Even with these improvements, this code still uses a mix of different types (off_t, size_t, uint64, int64) to represent file sizes and offsets, not all of which necessarily have the same width or signedness, so further cleanup might be in order here. However, at least now they all have the potential to be 64 bits wide on 64-bit platforms. Kuntal Ghosh and Michael Paquier, with a tweak by me. Discussion: http://postgr.es/m/CAGz5QC+8gbkz=Brp0TgoKNqHWTzonbPtPex80U0O6Uh_bevbaA@mail.gmail.com Branch ------ REL9_6_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/73fbf3d3d0a59d79f75a8202e03863fe462d052f Modified Files -------------- src/bin/pg_rewind/libpq_fetch.c | 47 ++++++++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 12 deletions(-)
-
Re: [COMMITTERS] pgsql: pg_rewind: Fix some problems when copying files >2GB.
Alvaro Herrera <alvherre@2ndquadrant.com> — 2017-08-28T13:05:45Z
Robert Haas wrote: > pg_rewind: Fix some problems when copying files >2GB. I just noticed that this broke pg_rewind translation, because of the INT64_FORMAT marker in the translatable string. The message catalog now has this: msgid "received chunk for file \"%s\", offset " for this source line: pg_log(PG_DEBUG, "received chunk for file \"%s\", offset " INT64_FORMAT ", size %d\n", filename, chunkoff, chunksize); I don't think that this is terribly valuable as a translatable string, so my preferred fix would be to have a new function pg_debug() here where the messages are *not* marked for translations. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services -
Re: [COMMITTERS] pgsql: pg_rewind: Fix some problems when copying files >2GB.
Robert Haas <robertmhaas@gmail.com> — 2017-08-28T14:08:44Z
On Mon, Aug 28, 2017 at 9:05 AM, Alvaro Herrera <alvherre@2ndquadrant.com> wrote: > Robert Haas wrote: >> pg_rewind: Fix some problems when copying files >2GB. > > I just noticed that this broke pg_rewind translation, because of the > INT64_FORMAT marker in the translatable string. The message catalog now > has this: > > msgid "received chunk for file \"%s\", offset " > > for this source line: > > pg_log(PG_DEBUG, "received chunk for file \"%s\", offset " INT64_FORMAT ", size %d\n", > filename, chunkoff, chunksize); > > I don't think that this is terribly valuable as a translatable string, > so my preferred fix would be to have a new function pg_debug() here > where the messages are *not* marked for translations. I am fine with however you want to handle it, but it seems odd to me that we don't have a way of embedding INT64_FORMAT in a translatable string. Surely that's going to be a problem in some case, sometime, isn't it? -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
-
Re: [COMMITTERS] pgsql: pg_rewind: Fix some problems when copying files >2GB.
Alvaro Herrera <alvherre@2ndquadrant.com> — 2017-08-28T14:16:31Z
Robert Haas wrote: > On Mon, Aug 28, 2017 at 9:05 AM, Alvaro Herrera > <alvherre@2ndquadrant.com> wrote: > > Robert Haas wrote: > >> pg_rewind: Fix some problems when copying files >2GB. > > > > I just noticed that this broke pg_rewind translation, because of the > > INT64_FORMAT marker in the translatable string. The message catalog now > > has this: > > > > msgid "received chunk for file \"%s\", offset " > > > > for this source line: > > > > pg_log(PG_DEBUG, "received chunk for file \"%s\", offset " INT64_FORMAT ", size %d\n", > > filename, chunkoff, chunksize); > > > > I don't think that this is terribly valuable as a translatable string, > > so my preferred fix would be to have a new function pg_debug() here > > where the messages are *not* marked for translations. > > I am fine with however you want to handle it, but it seems odd to me > that we don't have a way of embedding INT64_FORMAT in a translatable > string. Surely that's going to be a problem in some case, sometime, > isn't it? The way we do that elsewhere is to print out the value to a string variable and then use %s in the translatable message. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
-
Re: [COMMITTERS] pgsql: pg_rewind: Fix some problems when copying files >2GB.
Robert Haas <robertmhaas@gmail.com> — 2017-08-28T14:24:14Z
On Mon, Aug 28, 2017 at 10:16 AM, Alvaro Herrera <alvherre@2ndquadrant.com> wrote: >> I am fine with however you want to handle it, but it seems odd to me >> that we don't have a way of embedding INT64_FORMAT in a translatable >> string. Surely that's going to be a problem in some case, sometime, >> isn't it? > > The way we do that elsewhere is to print out the value to a string > variable and then use %s in the translatable message. Hmm. OK. That doesn't sound great, but if there's no better option... -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
-
Re: Re: [COMMITTERS] pgsql: pg_rewind: Fix some problems when copying files >2GB.
Michael Paquier <michael.paquier@gmail.com> — 2017-08-29T02:22:12Z
On Mon, Aug 28, 2017 at 11:24 PM, Robert Haas <robertmhaas@gmail.com> wrote: > On Mon, Aug 28, 2017 at 10:16 AM, Alvaro Herrera > <alvherre@2ndquadrant.com> wrote: >>> I am fine with however you want to handle it, but it seems odd to me >>> that we don't have a way of embedding INT64_FORMAT in a translatable >>> string. Surely that's going to be a problem in some case, sometime, >>> isn't it? >> >> The way we do that elsewhere is to print out the value to a string >> variable and then use %s in the translatable message. > > Hmm. OK. That doesn't sound great, but if there's no better option... I don't like breaking the abstraction of pg_log() with the existing flags with some kind of pg_debug() layer. The set of APIs present now in pg_rewind for logging is nice to have, and I think that those debug messages should be translated. So what about the attached? -- Michael
-
Re: Re: [COMMITTERS] pgsql: pg_rewind: Fix some problems when copying files >2GB.
Tom Lane <tgl@sss.pgh.pa.us> — 2017-08-29T02:26:24Z
Michael Paquier <michael.paquier@gmail.com> writes: > I don't like breaking the abstraction of pg_log() with the existing > flags with some kind of pg_debug() layer. The set of APIs present now > in pg_rewind for logging is nice to have, and I think that those debug > messages should be translated. So what about the attached? Your point about INT64_FORMAT not necessarily working with fprintf is an outstanding reason not to keep it like it is. I've not reviewed this patch in detail but I think this is basically the way to fix it. regards, tom lane
-
Re: Re: [COMMITTERS] pgsql: pg_rewind: Fix some problems when copying files >2GB.
Michael Paquier <michael.paquier@gmail.com> — 2017-08-30T22:16:59Z
On Tue, Aug 29, 2017 at 11:26 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Michael Paquier <michael.paquier@gmail.com> writes: >> I don't like breaking the abstraction of pg_log() with the existing >> flags with some kind of pg_debug() layer. The set of APIs present now >> in pg_rewind for logging is nice to have, and I think that those debug >> messages should be translated. So what about the attached? > > Your point about INT64_FORMAT not necessarily working with fprintf > is an outstanding reason not to keep it like it is. I've not reviewed > this patch in detail but I think this is basically the way to fix it. So, perhaps it would be better to fix that before the next point release? -- Michael
-
Re: Re: [COMMITTERS] pgsql: pg_rewind: Fix some problems when copying files >2GB.
Alvaro Herrera <alvherre@alvh.no-ip.org> — 2017-08-30T23:39:18Z
Michael Paquier wrote: > On Tue, Aug 29, 2017 at 11:26 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > > Michael Paquier <michael.paquier@gmail.com> writes: > >> I don't like breaking the abstraction of pg_log() with the existing > >> flags with some kind of pg_debug() layer. The set of APIs present now > >> in pg_rewind for logging is nice to have, and I think that those debug > >> messages should be translated. So what about the attached? > > > > Your point about INT64_FORMAT not necessarily working with fprintf > > is an outstanding reason not to keep it like it is. I've not reviewed > > this patch in detail but I think this is basically the way to fix it. > > So, perhaps it would be better to fix that before the next point release? Sure, I'll get it done on Friday, or tomorrow if I can manage it. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
-
Re: Re: [COMMITTERS] pgsql: pg_rewind: Fix some problems when copying files >2GB.
Michael Paquier <michael.paquier@gmail.com> — 2017-08-30T23:50:54Z
On Thu, Aug 31, 2017 at 8:39 AM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote: > Michael Paquier wrote: >> So, perhaps it would be better to fix that before the next point release? > > Sure, I'll get it done on Friday, or tomorrow if I can manage it. Thanks, Álvaro. -- Michael
-
Re: Re: [COMMITTERS] pgsql: pg_rewind: Fix some problems when copying files >2GB.
Alvaro Herrera <alvherre@alvh.no-ip.org> — 2017-09-04T10:03:57Z
Tom Lane wrote: > Michael Paquier <michael.paquier@gmail.com> writes: > > I don't like breaking the abstraction of pg_log() with the existing > > flags with some kind of pg_debug() layer. The set of APIs present now > > in pg_rewind for logging is nice to have, and I think that those debug > > messages should be translated. So what about the attached? > > Your point about INT64_FORMAT not necessarily working with fprintf > is an outstanding reason not to keep it like it is. I've not reviewed > this patch in detail but I think this is basically the way to fix it. Actually this code goes throgh vsnprintf, not fprintf, which should be safe, so I removed that part of the comment, and pushed. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
-
Re: Re: [COMMITTERS] pgsql: pg_rewind: Fix some problems when copying files >2GB.
Peter Eisentraut <peter.eisentraut@2ndquadrant.com> — 2017-09-07T01:11:51Z
On 9/4/17 06:03, Alvaro Herrera wrote: > Tom Lane wrote: >> Michael Paquier <michael.paquier@gmail.com> writes: >>> I don't like breaking the abstraction of pg_log() with the existing >>> flags with some kind of pg_debug() layer. The set of APIs present now >>> in pg_rewind for logging is nice to have, and I think that those debug >>> messages should be translated. So what about the attached? >> >> Your point about INT64_FORMAT not necessarily working with fprintf >> is an outstanding reason not to keep it like it is. I've not reviewed >> this patch in detail but I think this is basically the way to fix it. > > Actually this code goes throgh vsnprintf, not fprintf, which should be > safe, so I removed that part of the comment, and pushed. Is there a reason this was not backpatched to 9.5? -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
-
Re: Re: [COMMITTERS] pgsql: pg_rewind: Fix some problems when copying files >2GB.
Michael Paquier <michael.paquier@gmail.com> — 2017-09-07T01:28:57Z
On Thu, Sep 7, 2017 at 10:11 AM, Peter Eisentraut <peter.eisentraut@2ndquadrant.com> wrote: > On 9/4/17 06:03, Alvaro Herrera wrote: >> Tom Lane wrote: >>> Michael Paquier <michael.paquier@gmail.com> writes: >>>> I don't like breaking the abstraction of pg_log() with the existing >>>> flags with some kind of pg_debug() layer. The set of APIs present now >>>> in pg_rewind for logging is nice to have, and I think that those debug >>>> messages should be translated. So what about the attached? >>> >>> Your point about INT64_FORMAT not necessarily working with fprintf >>> is an outstanding reason not to keep it like it is. I've not reviewed >>> this patch in detail but I think this is basically the way to fix it. >> >> Actually this code goes throgh vsnprintf, not fprintf, which should be >> safe, so I removed that part of the comment, and pushed. > > Is there a reason this was not backpatched to 9.5? Indeed. Please note that cherry-picking the fix from 23c1f0a works just fine. -- Michael
-
Re: Re: [COMMITTERS] pgsql: pg_rewind: Fix some problems when copying files >2GB.
Alvaro Herrera <alvherre@alvh.no-ip.org> — 2017-09-07T07:22:17Z
Peter Eisentraut wrote: > On 9/4/17 06:03, Alvaro Herrera wrote: > > Tom Lane wrote: > >> Michael Paquier <michael.paquier@gmail.com> writes: > >>> I don't like breaking the abstraction of pg_log() with the existing > >>> flags with some kind of pg_debug() layer. The set of APIs present now > >>> in pg_rewind for logging is nice to have, and I think that those debug > >>> messages should be translated. So what about the attached? > >> > >> Your point about INT64_FORMAT not necessarily working with fprintf > >> is an outstanding reason not to keep it like it is. I've not reviewed > >> this patch in detail but I think this is basically the way to fix it. > > > > Actually this code goes throgh vsnprintf, not fprintf, which should be > > safe, so I removed that part of the comment, and pushed. > > Is there a reason this was not backpatched to 9.5? No, I'll backpatch later. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
-
Re: Re: [COMMITTERS] pgsql: pg_rewind: Fix some problems when copying files >2GB.
Alvaro Herrera <alvherre@alvh.no-ip.org> — 2017-09-07T09:42:26Z
Peter Eisentraut wrote: > On 9/4/17 06:03, Alvaro Herrera wrote: > > Tom Lane wrote: > >> Michael Paquier <michael.paquier@gmail.com> writes: > >>> I don't like breaking the abstraction of pg_log() with the existing > >>> flags with some kind of pg_debug() layer. The set of APIs present now > >>> in pg_rewind for logging is nice to have, and I think that those debug > >>> messages should be translated. So what about the attached? > >> > >> Your point about INT64_FORMAT not necessarily working with fprintf > >> is an outstanding reason not to keep it like it is. I've not reviewed > >> this patch in detail but I think this is basically the way to fix it. > > > > Actually this code goes throgh vsnprintf, not fprintf, which should be > > safe, so I removed that part of the comment, and pushed. > > Is there a reason this was not backpatched to 9.5? Done. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services