| From: | Fujii Masao <masao(dot)fujii(at)gmail(dot)com> |
|---|---|
| To: | Yilin Zhang <jiezhilove(at)126(dot)com> |
| Cc: | Mircea Cadariu <cadariu(dot)mircea(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: Re: pg_recvlogical: Prevent flushed data from being re-sent after restarting replication |
| Date: | 2025-12-26 10:31:21 |
| Message-ID: | CAHGQGwG5H2c4TRk68f2D06kB=F=Z9kr2JdUGwdpg65MrWgAYVQ@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Thu, Dec 4, 2025 at 6:41 PM Yilin Zhang <jiezhilove(at)126(dot)com> wrote:
>
> On 28/11/2025 02:15, Fujii Masao <masao(dot)fujii(at)gmail(dot)com> wrote:
> > I've made a few minor adjustments to the test patch.
> > The updated version is attached.
>
> Hi,
> I was reading your code and had a question about the new code you added in the main() function of pg_recvlogical.c:
> if (outfd != -1 && strcmp(outfile, "-") != 0)
> OutputFsync(feGetCurrentTimestamp());
> In the stream loop, the StreamLogicalLog() function already contains similar code:
> if (outfd != -1 &&
> feTimestampDifferenceExceeds(output_last_fsync, now,
> fsync_interval))
> {
> if (!OutputFsync(now))
> goto error;
> }
>
> If the outfile becomes unwritable due to external reasons, would the error reporting here be redundant with the error handling in StreamLogicalLog()?
Are you suggesting that the existing code checks the return
value of OutputFsync(), but since it never returns false,
that check is unnecessary and can be removed? If so, I agree.
The attached 0004 patch does that.
Regards,
--
Fujii Masao
| Attachment | Content-Type | Size |
|---|---|---|
| v3-0004-pg_recvlogical-remove-unnecessary-OutputFsync-ret.txt | text/plain | 2.6 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Japin Li | 2025-12-26 10:50:38 | Re: 17f446784d54da827f74c2acc0fa772a41b92354 breaks orafce build |
| Previous Message | Fujii Masao | 2025-12-26 10:28:26 | Re: pg_recvlogical: Prevent flushed data from being re-sent after restarting replication |