delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2007/03/24/14:17:14

X-Spam-Check-By: sourceware.org
Date: Sat, 24 Mar 2007 14:16:49 -0500 (CDT)
From: Satish Balay <balay AT fastmail DOT fm>
To: cygwin AT cygwin DOT com
Subject: python errors with popen/threads/select
Message-ID: <Pine.LNX.4.64.0703241357500.7954@asterix>
X-Mailer: PINE 4.64
MIME-Version: 1.0
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

--8323328-395579008-1174763809=:7959
Content-Type: TEXT/PLAIN; charset=US-ASCII


We are encountering errors in our python code when invoking system
commands using popen2.Popen3() in a separate thread. This code works
fine on linux [and many other OSes ] - but not on cygwin/python/WinXP.

I'm attaching a minimal example code that demonstrates this problem.
This test code runs the command '/bin/true' in 2 modes. [multiple
times in a loop]

- run the command in a separate thread [using popen]
- run the command directly [using popen]

The thread version fails numerous times [with wait() on pipe returning
error codes] - whereas the one run directly does not.

Hoping the bug can be identified.

thanks,
Satish

----------------------------

$ /usr/bin/cygcheck.exe -c cygwin python
Cygwin Package Information
Package              Version        Status
cygwin               1.5.24-2       OK
python               2.5-1          OK

$ python th-bug.py 
pipe.wait() returns error code: 1280
pipe.wait() returns error code: 1280
pipe.wait() returns error code: 1280
pipe.wait() returns error code: 1280
pipe.wait() returns error code: 1280
pipe.wait() returns error code: 1280
pipe.wait() returns error code: 1280
pipe.wait() returns error code: 1280
pipe.wait() returns error code: 1280
pipe.wait() returns error code: 1280
thread+pipe overhead 2.47299981117
pipe overhead 2.26300001144

--8323328-395579008-1174763809=:7959
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=th-bug.py
Content-Transfer-Encoding: BASE64
Content-ID: <Pine DOT LNX DOT 4 DOT 64 DOT 0703241416490 DOT 7959 AT asterix>
Content-Description: 
Content-Disposition: attachment; filename=th-bug.py

aW1wb3J0IHBvcGVuMg0KaW1wb3J0IHRocmVhZGluZw0KaW1wb3J0IHRpbWUN
CmltcG9ydCBvcw0KdGltZW91dCA9IDEwDQoNCmRlZiBvcGVuUGlwZShjb21t
YW5kKToNCiAgJycnV2UgbmVlZCB0byB1c2UgdGhlIGFzeW5jaHJvbm91cyB2
ZXJzaW9uIGhlcmUgc2luY2Ugd2Ugd2FudCB0byBhdm9pZCBibG9ja2luZyBy
ZWFkcycnJw0KICBwaXBlICAgPSBwb3BlbjIuUG9wZW4zKGNvbW1hbmQsIDEp
DQogIGlucHV0ICA9IHBpcGUudG9jaGlsZA0KICBvdXRwdXQgPSBwaXBlLmZy
b21jaGlsZA0KICBlcnIgICAgPSBwaXBlLmNoaWxkZXJyDQogIHJldHVybiAo
aW5wdXQsIG91dHB1dCwgZXJyLCBwaXBlKQ0KDQpkZWYgcnVuU2hlbGxDb21t
YW5kKGNvbW1hbmQpOg0KICBpbXBvcnQgc2VsZWN0DQoNCiAgcmV0ICAgICAg
ICA9IE5vbmUNCiAgb3V0ICAgICAgICA9ICcnDQogIGVyciAgICAgICAgPSAn
Jw0KICBjb3VudCAgICAgID0gMA0KCQ0KICAoaW5wdXQsIG91dHB1dCwgZXJy
b3IsIHBpcGUpID0gb3BlblBpcGUoY29tbWFuZCkNCiAgaW5wdXQuY2xvc2Uo
KQ0KICBsc3QgPSBbb3V0cHV0LCBlcnJvcl0NCiAgd2hpbGUgbHN0Og0KICAg
IHJlYWR5ID0gc2VsZWN0LnNlbGVjdChsc3QsIFtdLCBbXSkNCiAgICBjb3Vu
dCA9IGNvdW50ICsgMSAjIHNvbWVob3cgdGhpcyBsaW5lIHRyaWdnZXJzIHRo
ZSBidWcgbW9yZSBmcmVxdWVudGx5DQogICAgaWYgbGVuKHJlYWR5WzBdKToN
CiAgICAgIGlmIGVycm9yIGluIHJlYWR5WzBdOg0KICAgICAgICBtc2cgPSBl
cnJvci5yZWFkbGluZSgpDQogICAgICAgIGlmIG1zZzoNCiAgICAgICAgICBl
cnIgKz0gbXNnDQogICAgICAgIGVsc2U6DQogICAgICAgICAgbHN0LnJlbW92
ZShlcnJvcikNCiAgICAgIGlmIG91dHB1dCBpbiByZWFkeVswXToNCiAgICAg
ICAgbXNnID0gb3V0cHV0LnJlYWRsaW5lKCkNCiAgICAgICAgaWYgbXNnOg0K
ICAgICAgICAgIG91dCArPSBtc2cNCiAgICAgICAgZWxzZToNCiAgICAgICAg
ICBsc3QucmVtb3ZlKG91dHB1dCkNCiAgb3V0cHV0LmNsb3NlKCkNCiAgZXJy
b3IuY2xvc2UoKQ0KICBpZiBwaXBlOg0KICAgIHJldCA9IHBpcGUud2FpdCgp
DQogIGlmIHJldDogcHJpbnQgJ3BpcGUud2FpdCgpIHJldHVybnMgZXJyb3Ig
Y29kZTonLCByZXQNCiAgcmV0dXJuIChvdXQsIGVyciwgcmV0KQ0KDQojIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIw0KDQoNCmRlZiBydW5UaHJlYWRTaGVsbENvbW1hbmQoY29tbWFuZCk6
DQogIHRocmVhZCA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0ID0gcnVuU2hl
bGxDb21tYW5kLCBuYW1lID0gJ1NoZWxsIENvbW1hbmQnLCBhcmdzID0gKGNv
bW1hbmQsKSkNCiAgdGhyZWFkLnNldERhZW1vbigxKQ0KICB0aHJlYWQuc3Rh
cnQoKQ0KICB0aHJlYWQuam9pbih0aW1lb3V0KQ0KICByZXR1cm4gMA0KDQp0
aW1lMSA9IHRpbWUudGltZSgpDQpmb3IgY291bnQgaW4gcmFuZ2UoMCwzMCk6
DQogIHJ1blRocmVhZFNoZWxsQ29tbWFuZCgnL2Jpbi90cnVlJykNCnRpbWUy
ID0gdGltZS50aW1lKCkNCnByaW50ICd0aHJlYWQrcGlwZSBvdmVyaGVhZCcs
dGltZTItdGltZTENCg0KdGltZTEgPSB0aW1lLnRpbWUoKQ0KZm9yIGNvdW50
IGluIHJhbmdlKDAsMzApOg0KICBydW5TaGVsbENvbW1hbmQoJy9iaW4vdHJ1
ZScpDQp0aW1lMiA9IHRpbWUudGltZSgpDQpwcmludCAncGlwZSBvdmVyaGVh
ZCcsIHRpbWUyLXRpbWUxDQo=


--8323328-395579008-1174763809=:7959
Content-Type: text/plain; charset=us-ascii

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/
--8323328-395579008-1174763809=:7959--

- Raw text -


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