Date: Fri, 29 Sep 2000 10:21:28 +0200 (IST) From: Roman Shterenzon <roman@harmonic.co.il> To: freebsd-stable@freebsd.org Subject: pthreads bug? Message-ID: <970215688.39d451088fbef@webmail.harmonic.co.il>
next in thread | raw e-mail | index | archive | help
This message is in MIME format. ---MOQ9702156882c3814b98ff110c20b2fe29156f0ad46 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Hello, I noticed some strange behavior in pthreads applications, close on socket which is in accept() will be blocked untill there's a connection to port and accept returns. It's observed on 4.0 - 4.1-STABLE, perhaps 4.1.1-STABLE as well, but I didn't try it. I don't have 3.5.1-STABLE system to test it there. It affects, for example, openldap - start it , then kill -15 it. It won't die (and it should). Now, try to telnet localhost 389 ; now it died. The same behavior is a program we're writing right now, it's very annoying, in fact we don't know how to deal with it. It works on solaris and linux. btw, linux doesn't dump core on threaded application, how one's supposed to debug it? I attach example program, which, when receives SIGUSR1 should close the socket, but, in fact gets blocked in the close() function. Obviously it's waiting to acquire some lock. Does anyone have an idea? --Roman Shterenzon, UNIX System Administrator and Consultant [ Xpert UNIX Systems Ltd., Herzlia, Israel. Tel: +972-9-9522361 ] ---MOQ9702156882c3814b98ff110c20b2fe29156f0ad46 Content-Type: application/octet-stream; name="pthreadtest.c"; name="pthreadtest.c" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="pthreadtest.c" I2luY2x1ZGUgPHB0aHJlYWQuaD4KI2luY2x1ZGUgPHN5cy90eXBlcy5oPgojaW5jbHVkZSA8c3lz L3NvY2tldC5oPgojaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgojaW5jbHVkZSA8c2lnbmFsLmg+CiNp bmNsdWRlIDxlcnJuby5oPgoKaW50IHNvY2s7Cgp2b2lkKiByb3V0aW5lKHZvaWQgKmFyZykKewog IHdoaWxlKDEpIHNsZWVwKDUpOwogIC8qa2lsbChnZXRwaWQoKSwgU0lHVVNSMSk7Ki8KfQoKdm9p ZCB1c3IxaGFuZGxlcihpbnQgc2lnKQp7CiAgaW50IHJjPS0yOwogIHByaW50ZigiQ2xvc2luZyBz b2NrZXQ6ICVkXG4iLCBzb2NrKTsKICByYz1jbG9zZShzb2NrKTsKICBwcmludGYoIkNsb3NlZCBz b2NrZXQsIHJjOiAlZFxuIiwgcmMpOwp9CgppbnQgbWFpbih2b2lkKQp7CiAgcHRocmVhZF90IHRp ZDsKICBpbnQgbmV3ZmQsIHNpbl9zaXplLCBvbj0xOwogIHN0cnVjdCBzb2NrYWRkcl9pbiBteWFk ZHIsIGhpc2FkZHI7CiAgc2lnbmFsKFNJR1VTUjEsIHVzcjFoYW5kbGVyKTsKCiAgcHRocmVhZF9j cmVhdGUoJnRpZCwgTlVMTCwgcm91dGluZSwgTlVMTCk7CgogIGlmICggKHNvY2s9c29ja2V0KFBG X0lORVQsIFNPQ0tfU1RSRUFNLCA2KSk9PS0xKSB7CiAgICBwZXJyb3Ioc29ja2V0KTsKICAgIHB0 aHJlYWRfa2lsbCh0aWQsIFNJR1RFUk0pOwogICAgZXhpdCgtMSk7CiAgfQogIHNldHNvY2tvcHQo c29jaywgU09MX1NPQ0tFVCwgU09fUkVVU0VBRERSLCAmb24sIHNpemVvZihvbikpOwoKICBteWFk ZHIuc2luX2ZhbWlseT1QRl9JTkVUOwogIG15YWRkci5zaW5fcG9ydD1odG9ucygxMTExKTsKICBt eWFkZHIuc2luX2FkZHIuc19hZGRyPUlOQUREUl9BTlk7CiAgYnplcm8oJihteWFkZHIuc2luX3pl cm8pLCA4KTsKCiAgaWYgKChiaW5kKHNvY2ssIChzdHJ1Y3Qgc29ja2FkZHIqKSZteWFkZHIsIHNp emVvZihzdHJ1Y3Qgc29ja2FkZHIpKSk9PS0xKSB7CiAgICBwZXJyb3IoYmluZCk7CiAgICBwdGhy ZWFkX2tpbGwodGlkLCBTSUdURVJNKTsKICAgIGV4aXQoLTEpOwogIH0KCiAgaWYgKGxpc3Rlbihz b2NrLCAyKSA9PSAtMSApIHsKICAgIHBlcnJvcigibGlzdGVuIik7CiAgICBwdGhyZWFkX2tpbGwo dGlkLCBTSUdURVJNKTsKICAgIGV4aXQoLTEpOwogIH0KICB3aGlsZSgxKSB7CiAgICBpZiAoKCBu ZXdmZD1hY2NlcHQoc29jaywgKHN0cnVjdCBzb2NrYWRkciAqKSZoaXNhZGRyLCAmc2luX3NpemUp KT09LTEpewovKgogICAgICBpZiAoIGVycm5vPT1FSU5UUiApIHsKICAgICAgICBwcmludGYoIkl0 IHdhcyBhIHNpZ24hXG4iKTsKICAgICAgICBicmVhazsKICAgICAgfQoqLwogICAgICBwZXJyb3Io ImFjY2VwdCIpOwogICAgICBleGl0KC0xKTsKICAgIH0KICAgIHByaW50ZigiY29ubmVjdGlvbiBh Y2NlcHRlZFxuIik7CiAgICBjbG9zZShuZXdmZCk7CiAgfQogIHB0aHJlYWRfa2lsbCh0aWQsIFNJ R1RFUk0pOwogIHJldHVybiAwOwp9Cg== ---MOQ9702156882c3814b98ff110c20b2fe29156f0ad46-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?970215688.39d451088fbef>