Re: pgsql: Close stdin where it's not needed in TestLib.pm procedures

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема Re: pgsql: Close stdin where it's not needed in TestLib.pm procedures
Дата
Msg-id 2658c496-f885-02db-13bb-228423782524@2ndQuadrant.com
обсуждение исходный текст
Ответ на Re: pgsql: Close stdin where it's not needed in TestLib.pm procedures  (Andrew Dunstan <andrew.dunstan@2ndquadrant.com>)
Ответы Re: pgsql: Close stdin where it's not needed in TestLib.pm procedures  (Michael Paquier <michael@paquier.xyz>)
Список pgsql-committers
On 11/26/19 5:08 PM, Andrew Dunstan wrote:
> On 11/26/19 3:30 PM, Tom Lane wrote:
>> Peter Eisentraut <peter.eisentraut@2ndquadrant.com> writes:
>>> On 2019-11-26 05:43, Michael Paquier wrote:
>>>> This one is causing failures with the TAP tests of initdb on all AIX
>>>> animals and prairiedog:
>>>> # Running: initdb --help
>>>> Can't locate IO/Pty.pm in @INC (@INC contains: ../../../src/test/perl/
>>>> . /usr/local/perl5.8.3/lib/5.8.3/darwin-2level
>>>> [...]
>>>> Unexpected SCALAR(0x1987690) in harness() parameter 7 at
>>>> ../../../src/test/perl//TestLib.pm line 692
>>> I'm also seeing this problem on macOS in 
>>> src/test/recovery/t/016_min_consistency.pl .
>> I just noticed that my buildfarm animal longfin has been stuck for
>> the past 24 hours in t/001_initdb.pl, and I can replicate that
>> in a manual build.  ktrace says it's in some sort of loop.
>>
>> Apparently, macOS has got IO::Pty but it doesn't actually work
>> the way this patch expects.  Therefore, the proposed patch will
>> leave things still broken for macOS :-(
>>
>> I tried this:
>>
>> diff --git a/src/test/perl/TestLib.pm b/src/test/perl/TestLib.pm
>> index 18b4ce35c2..d67ffc4368 100644
>> --- a/src/test/perl/TestLib.pm
>> +++ b/src/test/perl/TestLib.pm
>> @@ -192,8 +192,7 @@ INIT
>>     }
>>     else
>>     {
>> -       use charnames ':full';
>> -       @no_stdin = ('<pty<', \"\N{END OF TRANSMISSION}");
>> +       @no_stdin = ('<pty<', \"");
>>     }
>>  }
>>
>> and that seems to fix it.  I wonder what's the point of sending
>> a nonempty string to the pty, exactly?
>>
>>             
>
>
> Oh, I missed seeing this.
>
>
> The short answer is I didn't question it because it worked for me. I'll
> test out your change on Linux with my test case.
>
>

This causes some of the new tests I want to run to hang on Linux,
presumably waiting for the pty to close :-(


So I'm a bit stuck. Probably the best thing to do for now is revert the
patch and mark the tests that need it in the libpq-sslpassword patch as
TODO (with todo_skip). If somebody whose perl-fu is greater than mine
can disentangle this mess that would be nice :-)


Thoughts?


cheers


andrew


-- 
Andrew Dunstan                https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services




В списке pgsql-committers по дате отправления:

Предыдущее
От: Andrew Dunstan
Дата:
Сообщение: Re: pgsql: Use native methods to open input in TestLib::slurp_file onWindo
Следующее
От: Michael Paquier
Дата:
Сообщение: Re: pgsql: Close stdin where it's not needed in TestLib.pm procedures