Re: Intermittent failure with t/003_logical_slots.pl test on windows

From: Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com>
To: nisha(dot)moond412(at)gmail(dot)com
Cc: vignesh21(at)gmail(dot)com, amit(dot)kapila16(at)gmail(dot)com, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Intermittent failure with t/003_logical_slots.pl test on windows
Date: 2023-11-07 05:35:14
Message-ID: 20231107.143514.1312530013364962475.horikyota.ntt@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

At Mon, 6 Nov 2023 19:42:21 +0530, Nisha Moond <nisha(dot)moond412(at)gmail(dot)com> wrote in
> > Appending '2>&1 test:
> > The command still results in NULL and ends up failing as no data is
> > returned. Which means even no error message is returned. The error log

Thanks for confirmation. So, at least the child process was launced
successfully in the cmd.exe's view.

Upon a quick check on my end with Windows' _popen, I have obseved the
following:

- Once a child process is started, it seems to go undetected as an
error by _popen or subsequent fgets calls if the process ends
abnormally, with a non-zero exit status or even with a SEGV.

- After the child process has flushed data to stdout, it is possible
to read from the pipe even if the child process crashes or ends
thereafter.

- Even if fgets is called before the program starts, it will correctly
block until the program outputs something. Specifically, when I used
popen("sleep 5 & target.exe") and immediately performed fgets on the
pipe, I was able to read the output of target.exe as the first line.

Therefore, based on the information available, it is conceivable that
the child process was killed by something right after it started, or
the program terminated on its own without any error messages.

By the way, in the case of aforementioned SEGV, Application Errors
corresponding to it were identifiable in the Event
Viewer. Additionally, regarding the exit statuses, they can be
captured by using a wrapper batch file (.bat) that records
%ERRORLEVEL% after running the target program. This may yield
insights, aothough its effectiveness is not guaranteed.

regards.

--
Kyotaro Horiguchi
NTT Open Source Software Center

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Noah Misch 2023-11-07 05:53:15 Re: Popcount optimization using AVX512
Previous Message Zhijie Hou (Fujitsu) 2023-11-07 04:30:59 RE: [PoC] pg_upgrade: allow to upgrade publisher node