X-Spam-Check-By: sourceware.org Date: Sat, 24 Mar 2007 14:16:49 -0500 (CDT) From: Satish Balay To: cygwin AT cygwin DOT com Subject: python errors with popen/threads/select Message-ID: X-Mailer: PINE 4.64 MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="8323328-395579008-1174763809=:7959" X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , 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: 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--