DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 50HFwGwO736205 Authentication-Results: delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com Authentication-Results: delorie.com; spf=pass smtp.mailfrom=cygwin.com DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 50HFwGwO736205 Authentication-Results: delorie.com; dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=uAYhWDz2 X-Recipient: archive-cygwin AT delorie DOT com DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8AA353871029 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; s=default; t=1737129493; bh=cCgq2VgsH6u9Gp/xSvsSkeOSLOXQSj6tZ76FbN+COJg=; h=Subject:To:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=uAYhWDz2c50CXS4bAsbmizjZC5zU6lQFlb5YFyaiYyoP/eNZK4XRSoyazSPuSpB1g mQmXGzx0lYSdWuUSneUvDxj4tezXlcGL4WFn0sx+iXBqyO7jnditR+aYWmUdUQMl5C XJaJH9h7upUlMIGq1tMFTgsXmA+LNRQIJS7SOdW4= X-Original-To: cygwin AT cygwin DOT com Delivered-To: cygwin AT cygwin DOT com DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5B8D3386F017 ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 5B8D3386F017 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1737129422; cv=none; b=sAf3tQ9BUj3fU+7FvP2tvRf/p5P/EX2gfmfwbYGpat4XrnxuzB7T4XQY60vltOZgZ30u4kSNHNUn9ojWjJXKnV7Ee9pXUc+kMsIELa72CXcNW3IfSTvqjm2zAcuTl9gfjm/qn6hTbhMG4iAajj0MNOxaTwPGYP7mPMC4+uEzQLI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1737129422; c=relaxed/simple; bh=2HraUjudUmuq8RvhkqagL4TKfLnBMYJgjJroIMnaY70=; h=From:Subject:To:Message-ID:Date:MIME-Version; b=MlId/xC+UZP29DQCRnKtOdvl6v2XXZiuWiq41bw8S2QbCf9y2+fWwUmNNQ8OEHlsiB5OWKed2+u/LFBbF7eRhn0cFTmIKlW5cprkZrdjw/DijMRD/O9jm8LtZhDGSbKmTWlA00STwZfH4Z8+tex7EvR81ftbY+kwT2pUdVtIPgE= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5B8D3386F017 Subject: mq_send()/mq_receive() may never return if used from threads To: cygwin AT cygwin DOT com Message-ID: <838238ed-0bf4-9374-fb8a-bc6a47c512a9@t-online.de> Date: Fri, 17 Jan 2025 16:56:59 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 SeaMonkey/2.53.19 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------C8EC8C10613E75B9E85C0F3C" X-TOI-EXPURGATEID: 150726::1737129420-14FF69FE-1296B0A2/0/0 CLEAN NORMAL X-TOI-MSGID: d1633271-0f6b-4bbe-941e-24020b60c4e6 X-BeenThere: cygwin AT cygwin DOT com X-Mailman-Version: 2.1.30 List-Id: General Cygwin discussions and problem reports List-Archive: List-Post: List-Help: List-Subscribe: , From: Christian Franke via Cygwin Reply-To: cygwin AT cygwin DOT com Cc: Christian Franke Sender: "Cygwin" This is a multi-part message in MIME format. --------------C8EC8C10613E75B9E85C0F3C Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Found with 'stress-ng --workload ...': If mq_receive is called on an empty queue and mq_send is called later from a different thread, both functions never return and signals (including SIGKILL) are no longer processed. Testcase (attached): $ uname -r 3.5.5-1.x86_64 $ gcc -o mqhang mqhang.c $ ./mqhang mq_send... mq_send = 0 mq_receive... mq_receive = 8 mq_receive... mq_send... [...hangs...] Problem does not occur if mq_receive() is called from a fork()ed process instead of a thread. -- Regards, Christian --------------C8EC8C10613E75B9E85C0F3C Content-Type: text/plain; charset=UTF-8; name="mqhang.c" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="mqhang.c" I2luY2x1ZGUgPGZjbnRsLmg+DQojaW5jbHVkZSA8bXF1ZXVlLmg+DQojaW5jbHVkZSA8cHRo cmVhZC5oPg0KI2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8dW5pc3RkLmg+DQoNCnN0 YXRpYyB2b2lkICpyZWNlaXZlcih2b2lkICphcmcpDQp7DQogIG1xZF90IG1xID0gKihtcWRf dCopYXJnOw0KICB1bnNpZ25lZCBwcmlvOw0KICBjaGFyIG1zZ1s0Ml07DQogIGZvciAoaW50 IGkgPSAwOyBpIDwgMjsgaSsrKSB7DQogICAgaWYgKGkgPT0gMCkNCiAgICAgIHNsZWVwKDIp Ow0KICAgIHByaW50ZigibXFfcmVjZWl2ZS4uLlxuIik7IGZmbHVzaChzdGRvdXQpOw0KICAg IHNzaXplX3QgcmV0ID0gbXFfcmVjZWl2ZShtcSwgbXNnLCBzaXplb2YobXNnKSwgJnByaW8p Ow0KICAgIHByaW50ZigibXFfcmVjZWl2ZSA9ICV6ZFxuIiwgcmV0KTsgZmZsdXNoKHN0ZG91 dCk7DQogIA0KICB9DQogIHJldHVybiBOVUxMOw0KfQ0KDQppbnQgbWFpbigpDQp7DQogIGNv bnN0IGNoYXIgbXFfbmFtZVtdID0gIi9tcXRlc3QiOw0KICBzdHJ1Y3QgbXFfYXR0ciBhdHRy ID0geyAwLCAxMCwgNDIsIDAgfTsNCiAgbXFkX3QgbXEgPSBtcV9vcGVuKG1xX25hbWUsIE9f Q1JFQVQgfCBPX1JEV1IsIFNfSVJVU1IgfCBTX0lXVVNSLCAmYXR0cik7DQogIGlmIChtcSA9 PSAobXFkX3QpLTEpIHsNCiAgICBwZXJyb3IoIm1xX29wZW4iKTsgcmV0dXJuIDE7DQogIH0N Cg0KICBwdGhyZWFkX3QgdDsNCiAgaWYgKHB0aHJlYWRfY3JlYXRlKCZ0LCBOVUxMLCByZWNl aXZlciwgJm1xKSkgew0KICAgIGZwcmludGYoc3RkZXJyLCAicHRocmVhZF9jcmVhdGUgZmFp bGVkXG4iKTsgcmV0dXJuIDE7DQogIH0NCg0KICBjb25zdCBjaGFyIG1zZ1tdID0gIk1lc3Nh Z2UiOw0KICBmb3IgKGludCBpID0gMDsgaSA8IDI7IGkrKykgew0KICAgIGlmIChpID09IDEp DQogICAgICBzbGVlcCg1KTsNCiAgICBwcmludGYoIm1xX3NlbmQuLi5cbiIpOyBmZmx1c2go c3Rkb3V0KTsNCiAgICBpbnQgcmV0ID0gbXFfc2VuZChtcSwgbXNnLCBzaXplb2YobXNnKSwg MCk7DQogICAgcHJpbnRmKCJtcV9zZW5kID0gJWRcbiIsIHJldCk7IGZmbHVzaChzdGRvdXQp Ow0KICB9DQoNCiAgcHRocmVhZF9qb2luKHQsIE5VTEwpOw0KICBtcV9jbG9zZShtcSk7DQog IG1xX3VubGluayhtcV9uYW1lKTsgLy8gRmFpbHMsIHNlZSBzZXBhcmF0ZSBwb3N0DQogIHJl dHVybiAwOw0KfQ0K --------------C8EC8C10613E75B9E85C0F3C Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline -- 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 --------------C8EC8C10613E75B9E85C0F3C--