delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2021/10/19/15:24:08

X-Recipient: archive-cygwin AT delorie DOT com
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A38093858D39
Authentication-Results: sourceware.org; dmarc=none (p=none dis=none)
header.from=SystematicSw.ab.ca
Authentication-Results: sourceware.org;
spf=none smtp.mailfrom=systematicsw.ab.ca
X-Authority-Analysis: v=2.4 cv=QIIL+iHL c=1 sm=1 tr=0 ts=616f1b30
a=T+ovY1NZ+FAi/xYICV7Bgg==:117 a=T+ovY1NZ+FAi/xYICV7Bgg==:17
a=IkcTkHD0fZMA:10 a=TImcKGuyeGIbufSLrCcA:9 a=QEXdDO2ut3YA:10
Subject: Re: Hanging cygwin processes in Windows Server 2019
To: cygwin AT cygwin DOT com
References: <764795149 DOT 682120 DOT 1633022545890 DOT ref AT mail DOT yahoo DOT com>
<764795149 DOT 682120 DOT 1633022545890 AT mail DOT yahoo DOT com>
<552722739 DOT 4126571 DOT 1634558495795 AT mail DOT yahoo DOT com>
<cfe6d4b7-fdac-6618-505a-2f21439598fd AT SystematicSw DOT ab DOT ca>
<1673936147 DOT 4682792 DOT 1634666172598 AT mail DOT yahoo DOT com>
From: Brian Inglis <Brian DOT Inglis AT SystematicSw DOT ab DOT ca>
Organization: Systematic Software
Message-ID: <d63d185b-3ee6-95a0-f895-46168788ca9a@SystematicSw.ab.ca>
Date: Tue, 19 Oct 2021 13:23:27 -0600
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <1673936147.4682792.1634666172598@mail.yahoo.com>
X-CMAE-Envelope: MS4xfAZYrK/o5+dtgdhQo0FnxvtfxubGzWr/ZoQt5K9981dgOUJ+7C0Q66ml9nz1/gaqhJSeOriHjGaj5XvSD9o1E6hWt3YWCDWX1Qs21gSo73Wj9B5l2qKU
NxvQV7axL0O6ZjfDHEBO5jNGgphgvdyYci1mVLWwDY7NsdR4hYo169dYz0H1yqErvG8YrIdd1Ng1PyNy+mp9/h84n4aHS2j/SH+uy1dmeXnURU08cJLlt5tn
X-Spam-Status: No, score=-1165.8 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS,
KAM_LAZY_DOMAIN_SECURITY, NICE_REPLY_A, RCVD_IN_BARRACUDACENTRAL,
RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,
SPF_NONE, TXREP autolearn=no autolearn_force=no version=3.4.4
X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on
server2.sourceware.org
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.29
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Unsubscribe: <https://cygwin.com/mailman/options/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=unsubscribe>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
Reply-To: cygwin AT cygwin DOT com
Cc: "chris DOT hardison AT yahoo DOT com" <chris DOT hardison AT yahoo DOT com>
Errors-To: cygwin-bounces+archive-cygwin=delorie DOT com AT cygwin DOT com
Sender: "Cygwin" <cygwin-bounces+archive-cygwin=delorie DOT com AT cygwin DOT com>

On 2021-10-19 11:56, chris.hardison wrote:
> On Tuesday, October 19, 2021, 12:11:42 PM EDT, Brian Inglis wrote:
> On 2021-10-18 06:01, chris.hardison wrote:
>> On Thursday, September 30, 2021, 01:26:37 PM EDT, chris.hardison wrote:
>>> My cygwin install looks good and things seem to work perfectly
>>> for some time (hours or days), then a cygwin process started by a
>>> windows process that is usually a child process of a windows
>>> service written in perl will hang and then most all other cygwin
>>> processes will hang or take a very long time to return. The
>>> simplest example is a call to \cygwin\bin\ps from powershell.
>>> That normally returns with sub-second response time. Once the
>>> problem occurs that call to \cygwin\bin\ps will often take
>>> several minutes to return. I've found that killing all cygwin
>>> processes will temporarily resolve the problem. >>> I've read about redirecting NUL to stdin when making the call to
>>> cygwin processes from windows and that didn't seem to help.
>>> I've tried "set-processmitigation -name \cygwin\bin\ps.exe 
>>> -disable ForceRelocateImages" with no real benefit.
>>> I've also tried "\cygwin\bin\dash -c /bin/rebaseall" on startup 
>>> before the sshd service starts and that didn't seem to help.
>>> Any suggestions on how to prevent this problem will be greatly 
>>> appreciated.

>> The problem seems to be that my cygwin processes that are always
>> the child or grandchild of a windows service use a console device
>> that is block buffered rather than character buffered. So using
>> mintty to start those processes forces character buffered which
>> solves the problem. I'm looking for cleaner way to force character
>> buffered IO. Here's an example of the change:
>> From
>> chomp(@output = `/cygwin/bin/ps -W`);TO
>> chomp(@output = `/cygwin/bin/mintty.exe -w hide /bin/dash -c 
>> "/bin/ps -W > /tmp/${PID}.out"; sleep 1; type 
>> /cygwin/tmp/${PID}.out; del /cygwin/tmp/${PID}.out`);
>> Hopefully someone can suggest a simpler solution.

> Most Cygwin processes don't care about buffering, as they may be line
> or character buffered from the terminal but block buffered when used
> with pipe or file I/O.
> Try using stdbuf(1) instead of mintty to change buffering.
> You use it as a command prefix like nohup or time.
> Perl may also have ways of changing I/O buffering internally.

 > Thanks for the feedback.  I came across stdbuf earlier today and 
thought for sure that was the answer but when I showed it to my 
co-worker he said he had already tied it with no luck, both with -i0 -e0 
-o0 and with -oL.
 > Actually, what is working is:`\\cygwin\\bin\\mintty.exe -w hide 
/bin/dash -c "/bin/ps -W > /tmp/${PID}.out"`;
 > chomp(@output = `type \\cygwin\\tmp\\${PID}.out && del 
\\cygwin\\tmp\\${PID}.out`);
 > I'm still hoping for a better solution.

You use perl and Cygwin has package perl-IO-Tty which provides perl 
modules IO:Tty and IO::Pty.
You may be able to build a solution equivalent to mintty using one or 
both of those modules.

-- 
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.
[Data in binary units and prefixes, physical quantities in SI.]

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019