Return-Path: Delivered-To: apmail-apr-dev-archive@www.apache.org Received: (qmail 46004 invoked from network); 3 Jun 2005 06:22:24 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 3 Jun 2005 06:22:24 -0000 Received: (qmail 59322 invoked by uid 500); 3 Jun 2005 06:22:22 -0000 Delivered-To: apmail-apr-dev-archive@apr.apache.org Received: (qmail 59273 invoked by uid 500); 3 Jun 2005 06:22:21 -0000 Mailing-List: contact dev-help@apr.apache.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Id: Delivered-To: mailing list dev@apr.apache.org Received: (qmail 59259 invoked by uid 99); 3 Jun 2005 06:22:21 -0000 X-ASF-Spam-Status: No, hits=0.1 required=10.0 tests=FORGED_RCVD_HELO X-Spam-Check-By: apache.org Received-SPF: neutral (hermes.apache.org: local policy) Received: from sccrmhc13.comcast.net (HELO sccrmhc13.comcast.net) (204.127.202.64) by apache.org (qpsmtpd/0.28) with ESMTP; Thu, 02 Jun 2005 23:22:21 -0700 Received: from localhost.localdomain (c-24-6-11-151.hsd1.ca.comcast.net[24.6.11.151]) by comcast.net (sccrmhc13) with ESMTP id <2005060306220301600rgha3e>; Fri, 3 Jun 2005 06:22:04 +0000 Received: from [192.168.123.1] (helo=localhost) by localhost.localdomain with esmtp (Exim 4.50) id 1De5ZD-0002jj-Qx for dev@apr.apache.org; Thu, 02 Jun 2005 23:22:03 -0700 Subject: Re: [patch] Deadlock in apr_thread_cond_wait on WIN32 platform [BugID 27654, 34336] From: Henry Jen To: dev@apr.apache.org In-Reply-To: <1117778720.6961.17.camel@hammerhead.sfbay.sun.com> References: <1117778720.6961.17.camel@hammerhead.sfbay.sun.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-+oVEJeBN/3LXzpUAJ898" Date: Thu, 02 Jun 2005 23:21:26 -0700 Message-Id: <1117779686.6961.20.camel@hammerhead.sfbay.sun.com> Mime-Version: 1.0 X-Mailer: Evolution 2.0.2 X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N --=-+oVEJeBN/3LXzpUAJ898 Content-Type: multipart/mixed; boundary="=-NC850C316ARPfxQVxAPm" --=-NC850C316ARPfxQVxAPm Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Oops, keep reminding myself to attach the patch, but in the end ... Here it is. On Thu, 2005-06-02 at 23:05 -0700, Henry Jen wrote: > Hi, >=20 > We encountered the issue as reported in Bug > 27654(http://issues.apache.org/bugzilla/show_bug.cgi?id=3D27654), too bad > I did not check the issue database earlier until I figured it out after > 3 days. >=20 > The patch in the issues database should be working, is there a reason > for not committing it? >=20 > Anyway, I have created another patch(see attachment) to address the same > issue and which would also fix bug 34336 as it totally removing the > cond->mutex. I believe using the mutex passed in to ensure mutual access > should be sufficient. >=20 > Unless the different threads can use different mutex for the same cond, > but I don't see that as a valid usage and nor can I think of a use case > for that. >=20 > Please review it, comments are welcome. I would like to see the patch be > committed to head and also back port to 0.9.x release. The patch had > been tested for both apr-0.9.6 and SVN trunk with 'patch -Np0' in the > apr folder. > =20 > Cheers, --=20 Henry Jen aka slowhog http://blogs.sun.com/slowhog --=-NC850C316ARPfxQVxAPm Content-Disposition: attachment; filename=win32_thread_cond.diff Content-Type: text/x-patch; name=win32_thread_cond.diff; charset=utf-8 Content-Transfer-Encoding: base64 LS0tIGluY2x1ZGUvYXJjaC93aW4zMi9hcHJfYXJjaF90aHJlYWRfY29uZC5vcmlnXzA5Ni5oCTIw MDUtMDItMDQgMTI6MzY6MzEuMDAwMDAwMDAwIC0wODAwDQorKysgaW5jbHVkZS9hcmNoL3dpbjMy L2Fwcl9hcmNoX3RocmVhZF9jb25kLmgJMjAwNS0wNi0wMiAxODowMDowMS4yNTAwMDAwMDAgLTA3 MDANCkBAIC0yMiw3ICsyMiw2IEBADQogc3RydWN0IGFwcl90aHJlYWRfY29uZF90IHsNCiAgICAg YXByX3Bvb2xfdCAqcG9vbDsNCiAgICAgSEFORExFIGV2ZW50Ow0KLSAgICBIQU5ETEUgbXV0ZXg7 DQogICAgIGludCBzaWduYWxfYWxsOw0KICAgICBpbnQgbnVtX3dhaXRpbmc7DQogICAgIGludCBz aWduYWxsZWQ7DQotLS0gbG9ja3Mvd2luMzIvdGhyZWFkX2NvbmQub3JpZ18wOTYuYwkyMDA1LTA2 LTAyIDIyOjI3OjUxLjI2NTYyNTAwMCAtMDcwMA0KKysrIGxvY2tzL3dpbjMyL3RocmVhZF9jb25k LmMJMjAwNS0wNi0wMiAyMjozNDowNi4wNzgxMjUwMDAgLTA3MDANCkBAIC0yNSw3ICsyNSw2IEBA DQogc3RhdGljIGFwcl9zdGF0dXNfdCB0aHJlYWRfY29uZF9jbGVhbnVwKHZvaWQgKmRhdGEpDQog ew0KICAgICBhcHJfdGhyZWFkX2NvbmRfdCAqY29uZCA9IGRhdGE7DQotICAgIENsb3NlSGFuZGxl KGNvbmQtPm11dGV4KTsNCiAgICAgQ2xvc2VIYW5kbGUoY29uZC0+ZXZlbnQpOw0KICAgICByZXR1 cm4gQVBSX1NVQ0NFU1M7DQogfQ0KQEAgLTM2LDcgKzM1LDYgQEANCiAgICAgKmNvbmQgPSBhcHJf cGFsbG9jKHBvb2wsIHNpemVvZigqKmNvbmQpKTsNCiAgICAgKCpjb25kKS0+cG9vbCA9IHBvb2w7 DQogICAgICgqY29uZCktPmV2ZW50ID0gQ3JlYXRlRXZlbnQoTlVMTCwgVFJVRSwgRkFMU0UsIE5V TEwpOw0KLSAgICAoKmNvbmQpLT5tdXRleCA9IENyZWF0ZU11dGV4KE5VTEwsIEZBTFNFLCBOVUxM KTsNCiAgICAgKCpjb25kKS0+c2lnbmFsX2FsbCA9IDA7DQogICAgICgqY29uZCktPm51bV93YWl0 aW5nID0gMDsNCiAgICAgcmV0dXJuIEFQUl9TVUNDRVNTOw0KQEAgLTQ4LDIwICs0NiwxNCBAQA0K ICAgICBEV09SRCByZXM7DQogDQogICAgIHdoaWxlICgxKSB7DQotICAgICAgICByZXMgPSBXYWl0 Rm9yU2luZ2xlT2JqZWN0KGNvbmQtPm11dGV4LCBJTkZJTklURSk7DQotICAgICAgICBpZiAocmVz ICE9IFdBSVRfT0JKRUNUXzApIHsNCi0gICAgICAgICAgICByZXR1cm4gYXByX2dldF9vc19lcnJv cigpOw0KLSAgICAgICAgfQ0KICAgICAgICAgY29uZC0+bnVtX3dhaXRpbmcrKzsNCi0gICAgICAg IFJlbGVhc2VNdXRleChjb25kLT5tdXRleCk7DQogDQogICAgICAgICBhcHJfdGhyZWFkX211dGV4 X3VubG9jayhtdXRleCk7DQogICAgICAgICByZXMgPSBXYWl0Rm9yU2luZ2xlT2JqZWN0KGNvbmQt PmV2ZW50LCBJTkZJTklURSk7DQorICAgICAgICBhcHJfdGhyZWFkX211dGV4X2xvY2sobXV0ZXgp Ow0KICAgICAgICAgY29uZC0+bnVtX3dhaXRpbmctLTsNCiAgICAgICAgIGlmIChyZXMgIT0gV0FJ VF9PQkpFQ1RfMCkgew0KLSAgICAgICAgICAgIGFwcl9zdGF0dXNfdCBydiA9IGFwcl9nZXRfb3Nf ZXJyb3IoKTsNCi0gICAgICAgICAgICBSZWxlYXNlTXV0ZXgoY29uZC0+bXV0ZXgpOw0KLSAgICAg ICAgICAgIHJldHVybiBydjsNCisgICAgICAgICAgICByZXR1cm4gYXByX2dldF9vc19lcnJvcigp Ow0KICAgICAgICAgfQ0KICAgICAgICAgaWYgKGNvbmQtPnNpZ25hbF9hbGwpIHsNCiAgICAgICAg ICAgICBpZiAoY29uZC0+bnVtX3dhaXRpbmcgPT0gMCkgew0KQEAgLTc0LDkgKzY2LDcgQEANCiAg ICAgICAgICAgICBSZXNldEV2ZW50KGNvbmQtPmV2ZW50KTsNCiAgICAgICAgICAgICBicmVhazsN CiAgICAgICAgIH0NCi0gICAgICAgIFJlbGVhc2VNdXRleChjb25kLT5tdXRleCk7DQogICAgIH0N Ci0gICAgYXByX3RocmVhZF9tdXRleF9sb2NrKG11dGV4KTsNCiAgICAgcmV0dXJuIEFQUl9TVUND RVNTOw0KIH0NCiANCkBAIC04OCwyMyArNzgsMTQgQEANCiAgICAgRFdPUkQgdGltZW91dF9tcyA9 IChEV09SRCkgYXByX3RpbWVfYXNfbXNlYyh0aW1lb3V0KTsNCiANCiAgICAgd2hpbGUgKDEpIHsN Ci0gICAgICAgIHJlcyA9IFdhaXRGb3JTaW5nbGVPYmplY3QoY29uZC0+bXV0ZXgsIHRpbWVvdXRf bXMpOw0KLSAgICAgICAgaWYgKHJlcyAhPSBXQUlUX09CSkVDVF8wKSB7DQotICAgICAgICAgICAg aWYgKHJlcyA9PSBXQUlUX1RJTUVPVVQpIHsNCi0gICAgICAgICAgICAgICAgcmV0dXJuIEFQUl9U SU1FVVA7DQotICAgICAgICAgICAgfQ0KLSAgICAgICAgICAgIHJldHVybiBhcHJfZ2V0X29zX2Vy cm9yKCk7DQotICAgICAgICB9DQogICAgICAgICBjb25kLT5udW1fd2FpdGluZysrOw0KLSAgICAg ICAgUmVsZWFzZU11dGV4KGNvbmQtPm11dGV4KTsNCiANCiAgICAgICAgIGFwcl90aHJlYWRfbXV0 ZXhfdW5sb2NrKG11dGV4KTsNCiAgICAgICAgIHJlcyA9IFdhaXRGb3JTaW5nbGVPYmplY3QoY29u ZC0+ZXZlbnQsIHRpbWVvdXRfbXMpOw0KKyAgICAgICAgYXByX3RocmVhZF9tdXRleF9sb2NrKG11 dGV4KTsNCiAgICAgICAgIGNvbmQtPm51bV93YWl0aW5nLS07DQogICAgICAgICBpZiAocmVzICE9 IFdBSVRfT0JKRUNUXzApIHsNCiAgICAgICAgICAgICBhcHJfc3RhdHVzX3QgcnYgPSBhcHJfZ2V0 X29zX2Vycm9yKCk7DQotICAgICAgICAgICAgUmVsZWFzZU11dGV4KGNvbmQtPm11dGV4KTsNCi0g ICAgICAgICAgICBhcHJfdGhyZWFkX211dGV4X2xvY2sobXV0ZXgpOw0KICAgICAgICAgICAgIGlm IChyZXMgPT0gV0FJVF9USU1FT1VUKSB7DQogICAgICAgICAgICAgICAgIHJldHVybiBBUFJfVElN RVVQOw0KICAgICAgICAgICAgIH0NCkBAIC0xMjEsOSArMTAyLDcgQEANCiAgICAgICAgICAgICBS ZXNldEV2ZW50KGNvbmQtPmV2ZW50KTsNCiAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgIH0N Ci0gICAgICAgIFJlbGVhc2VNdXRleChjb25kLT5tdXRleCk7DQogICAgIH0NCi0gICAgYXByX3Ro cmVhZF9tdXRleF9sb2NrKG11dGV4KTsNCiAgICAgcmV0dXJuIEFQUl9TVUNDRVNTOw0KIH0NCiAN CkBAIC0xMzIsMTYgKzExMSwxMSBAQA0KICAgICBhcHJfc3RhdHVzX3QgcnYgPSBBUFJfU1VDQ0VT UzsNCiAgICAgRFdPUkQgcmVzOw0KIA0KLSAgICByZXMgPSBXYWl0Rm9yU2luZ2xlT2JqZWN0KGNv bmQtPm11dGV4LCBJTkZJTklURSk7DQotICAgIGlmIChyZXMgIT0gV0FJVF9PQkpFQ1RfMCkgew0K LSAgICAgICAgcmV0dXJuIGFwcl9nZXRfb3NfZXJyb3IoKTsNCi0gICAgfQ0KICAgICBjb25kLT5z aWduYWxsZWQgPSAxOw0KICAgICByZXMgPSBTZXRFdmVudChjb25kLT5ldmVudCk7DQogICAgIGlm IChyZXMgPT0gMCkgew0KICAgICAgICAgcnYgPSBhcHJfZ2V0X29zX2Vycm9yKCk7DQogICAgIH0N Ci0gICAgUmVsZWFzZU11dGV4KGNvbmQtPm11dGV4KTsNCiAgICAgcmV0dXJuIHJ2Ow0KIH0NCiAN CkBAIC0xNTAsMTcgKzEyNCwxMiBAQA0KICAgICBhcHJfc3RhdHVzX3QgcnYgPSBBUFJfU1VDQ0VT UzsNCiAgICAgRFdPUkQgcmVzOw0KIA0KLSAgICByZXMgPSBXYWl0Rm9yU2luZ2xlT2JqZWN0KGNv bmQtPm11dGV4LCBJTkZJTklURSk7DQotICAgIGlmIChyZXMgIT0gV0FJVF9PQkpFQ1RfMCkgew0K LSAgICAgICAgcmV0dXJuIGFwcl9nZXRfb3NfZXJyb3IoKTsNCi0gICAgfQ0KICAgICBjb25kLT5z aWduYWxsZWQgPSAxOw0KICAgICBjb25kLT5zaWduYWxfYWxsID0gMTsNCiAgICAgcmVzID0gU2V0 RXZlbnQoY29uZC0+ZXZlbnQpOw0KICAgICBpZiAocmVzID09IDApIHsNCiAgICAgICAgIHJ2ID0g YXByX2dldF9vc19lcnJvcigpOw0KICAgICB9DQotICAgIFJlbGVhc2VNdXRleChjb25kLT5tdXRl eCk7DQogICAgIHJldHVybiBydjsNCiB9DQogDQo= --=-NC850C316ARPfxQVxAPm-- --=-+oVEJeBN/3LXzpUAJ898 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBCn/bmLNaoAyBG0PURAlK3AJ4toZHkZLIjJTtgDEbw/zILsg4R0ACfeYV8 1tT4F2p5oBuM69Ns5OWRydM= =uf2f -----END PGP SIGNATURE----- --=-+oVEJeBN/3LXzpUAJ898--