Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rmsPw-00AMt2-Lt for pgsql-bugs@arkaria.postgresql.org; Wed, 20 Mar 2024 09:39:29 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rmsPv-003yKo-2T for pgsql-bugs@arkaria.postgresql.org; Wed, 20 Mar 2024 09:39:27 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rmsPu-003yKf-JT for pgsql-bugs@lists.postgresql.org; Wed, 20 Mar 2024 09:39:27 +0000 Received: from dd25110.kasserver.com ([85.13.146.49]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rmsPs-005WUq-Dy for pgsql-bugs@lists.postgresql.org; Wed, 20 Mar 2024 09:39:26 +0000 Received: from [192.168.0.101] (ip-037-201-153-175.um10.pools.vodafone-ip.de [37.201.153.175]) by dd25110.kasserver.com (Postfix) with ESMTPSA id CB1CBE1A19BF; Wed, 20 Mar 2024 10:39:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=technowledgy.de; s=kas202308201259; t=1710927562; bh=NZCqgHAGEGGKmjEUdW9LXcR3jwaYkhmrNTXVtd0jhyM=; h=Date:From:Subject:To:Cc:References:In-Reply-To:From; b=Vm8YMSTBnaQhBnZtBQeweoo/GvXAw/4+2WoEI+8U0a1DeNiWswAtGu9iICJRYCDMG k2+85YV4NgxRwJCp5Z/bTgKXubdUULOjSQhu8CawrGOksEOdnBkT2R3ULf2NEyFY0R UasEygfdwijAo9aNFYuVe/pl4S5XZr1evnJte3oxzkJrKiXgXu2/KcMPsoehrgS5vb CEKqDgkoo3km0QRbHM8rGn/mwSgIWAakH0UIg+0sBulhnJ1AmjiRO/0oPKrKr8ajcV 9+EIWFlmsuyFsOnyAoABRG688+HIz/yRi78xU9ecY2ITOJhO79yhbgdHCqqIGCWTT1 1TQuVRII8CpKQ== Content-Type: multipart/mixed; boundary="------------MknV8F0dWCwo0BQOFr1qUkRi" Message-ID: <477fa513-6bf0-456d-8d24-1e22a19df671@technowledgy.de> Date: Wed, 20 Mar 2024 10:39:20 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Wolfgang Walther Subject: Re: Regression tests fail with musl libc because libpq.so can't be loaded Content-Language: en-US To: Thomas Munro , peter@eisentraut.org Cc: Bruce Momjian , Christophe Pettus , Andrew Dunstan , PostgreSQL Bugs , Tom Lane References: <855a1b16-0dc0-42b2-8f90-79eb49cf2893@technowledgy.de> <3561573.1710771812@sss.pgh.pa.us> <4093813.1710899588@sss.pgh.pa.us> <4095435.1710900216@sss.pgh.pa.us> In-Reply-To: X-Spamd-Bar: / List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------MknV8F0dWCwo0BQOFr1qUkRi Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Thomas Munro: > On Wed, Mar 20, 2024 at 3:03 PM Tom Lane wrote: >> +1 for stopping only at one of those two names. > > Here's one like that for Wolfgang to test on musl. Works fine. Peter Eisentraut: > We could turn it around and do > > #if defined(__linux__) > #if defined(__GLIBC__) || defined(__UCLIBC__ ) > #define PS_USE_CLOBBER_ARGV > #else > #define PS_USE_NONE > #endif > #endif This works as well. I also put together a PoC of what was mentioned in musl's mailing list: Instead of clobbering environ at all, exec yourself again with padded argv0. This works, too. Attached. Best, Wolfgang --------------MknV8F0dWCwo0BQOFr1qUkRi Content-Type: text/x-patch; charset=UTF-8; name="0001-ps-status-exec.patch" Content-Disposition: attachment; filename="0001-ps-status-exec.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcHNfc3RhdHVzLmMgYi9zcmMv YmFja2VuZC91dGlscy9taXNjL3BzX3N0YXR1cy5jCmluZGV4IDVkODI5ZTZlNDgzLi5mODAz NWMxNWRmOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wc19zdGF0dXMu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3BzX3N0YXR1cy5jCkBAIC0yMyw4ICsy Myw2IEBACiAjaW5jbHVkZSAidXRpbHMvZ3VjLmgiCiAjaW5jbHVkZSAidXRpbHMvcHNfc3Rh dHVzLmgiCiAKLWV4dGVybiBjaGFyICoqZW52aXJvbjsKLQogLyogR1VDIHZhcmlhYmxlICov CiBib29sCQl1cGRhdGVfcHJvY2Vzc190aXRsZSA9IERFRkFVTFRfVVBEQVRFX1BST0NFU1Nf VElUTEU7CiAKQEAgLTM4LDcgKzM2LDcgQEAgYm9vbAkJdXBkYXRlX3Byb2Nlc3NfdGl0bGUg PSBERUZBVUxUX1VQREFURV9QUk9DRVNTX1RJVExFOwogICoJICAgdXNlIHRoZSBmdW5jdGlv biBzZXRwcm9jdGl0bGUoY29uc3QgY2hhciAqLCAuLi4pCiAgKgkgICAob3RoZXIgQlNEcykK ICAqIFBTX1VTRV9DTE9CQkVSX0FSR1YKLSAqCSAgIHdyaXRlIG92ZXIgdGhlIGFyZ3YgYW5k IGVudmlyb25tZW50IGFyZWEKKyAqCSAgIHdyaXRlIG92ZXIgdGhlIGFyZ3YgYXJlYQogICoJ ICAgKExpbnV4IGFuZCBtb3N0IFN5c1YtbGlrZSBzeXN0ZW1zKQogICogUFNfVVNFX1dJTjMy CiAgKgkgICBwdXNoIHRoZSBzdHJpbmcgb3V0IGFzIHRoZSBuYW1lIG9mIGEgV2luZG93cyBl dmVudApAQCAtNjksOSArNjcsOSBAQCBib29sCQl1cGRhdGVfcHJvY2Vzc190aXRsZSA9IERF RkFVTFRfVVBEQVRFX1BST0NFU1NfVElUTEU7CiAKICNpZm5kZWYgUFNfVVNFX05PTkUKIAot I2lmbmRlZiBQU19VU0VfQ0xPQkJFUl9BUkdWCiAvKiBhbGwgYnV0IG9uZSBvcHRpb24gbmVl ZCBhIGJ1ZmZlciB0byB3cml0ZSB0aGVpciBwcyBsaW5lIGluICovCiAjZGVmaW5lIFBTX0JV RkZFUl9TSVpFIDI1NgorI2lmbmRlZiBQU19VU0VfQ0xPQkJFUl9BUkdWCiBzdGF0aWMgY2hh ciBwc19idWZmZXJbUFNfQlVGRkVSX1NJWkVdOwogc3RhdGljIGNvbnN0IHNpemVfdCBwc19i dWZmZXJfc2l6ZSA9IFBTX0JVRkZFUl9TSVpFOwogI2Vsc2UJCQkJCQkJLyogUFNfVVNFX0NM T0JCRVJfQVJHViAqLwpAQCAtMTA1LDkgKzEwMyw3IEBAIHN0YXRpYyBjaGFyICoqc2F2ZV9h cmd2OwogICogZnJvbSBiZWluZyBjbG9iYmVyZWQgYnkgc3Vic2VxdWVudCBwc19kaXNwbGF5 IGFjdGlvbnMuCiAgKgogICogKFRoZSBvcmlnaW5hbCBhcmd2W10gd2lsbCBub3QgYmUgb3Zl cndyaXR0ZW4gYnkgdGhpcyByb3V0aW5lLCBidXQgbWF5IGJlCi0gKiBvdmVyd3JpdHRlbiBk dXJpbmcgaW5pdF9wc19kaXNwbGF5LiAgQWxzbywgdGhlIHBoeXNpY2FsIGxvY2F0aW9uIG9m IHRoZQotICogZW52aXJvbm1lbnQgc3RyaW5ncyBtYXkgYmUgbW92ZWQsIHNvIHRoaXMgc2hv dWxkIGJlIGNhbGxlZCBiZWZvcmUgYW55IGNvZGUKLSAqIHRoYXQgbWlnaHQgdHJ5IHRvIGhh bmcgb250byBhIGdldGVudigpIHJlc3VsdC4pCisgKiBvdmVyd3JpdHRlbiBkdXJpbmcgaW5p dF9wc19kaXNwbGF5LikKICAqCiAgKiBOb3RlIHRoYXQgaW4gY2FzZSBvZiBmYWlsdXJlIHRo aXMgY2Fubm90IGNhbGwgZWxvZygpIGFzIHRoYXQgaXMgbm90CiAgKiBpbml0aWFsaXplZCB5 ZXQuICBXZSByZWx5IG9uIHdyaXRlX3N0ZGVycigpIGluc3RlYWQuCkBAIC0xMjYsNyArMTIy LDYgQEAgc2F2ZV9wc19kaXNwbGF5X2FyZ3MoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCSAq LwogCXsKIAkJY2hhcgkgICAqZW5kX29mX2FyZWEgPSBOVUxMOwotCQljaGFyCSAgKipuZXdf ZW52aXJvbjsKIAkJaW50CQkJaTsKIAogCQkvKgpAQCAtMTQ1LDM4ICsxNDAsMzIgQEAgc2F2 ZV9wc19kaXNwbGF5X2FyZ3MoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJcmV0dXJuIGFy Z3Y7CiAJCX0KIAotCQkvKgotCQkgKiBjaGVjayBmb3IgY29udGlndW91cyBlbnZpcm9uIHN0 cmluZ3MgZm9sbG93aW5nIGFyZ3YKLQkJICovCi0JCWZvciAoaSA9IDA7IGVudmlyb25baV0g IT0gTlVMTDsgaSsrKQotCQl7Ci0JCQlpZiAoZW5kX29mX2FyZWEgKyAxID09IGVudmlyb25b aV0pCi0JCQkJZW5kX29mX2FyZWEgPSBlbnZpcm9uW2ldICsgc3RybGVuKGVudmlyb25baV0p OwotCQl9Ci0KIAkJcHNfYnVmZmVyID0gYXJndlswXTsKIAkJbGFzdF9zdGF0dXNfbGVuID0g cHNfYnVmZmVyX3NpemUgPSBlbmRfb2ZfYXJlYSAtIGFyZ3ZbMF07CiAKLQkJLyoKLQkJICog bW92ZSB0aGUgZW52aXJvbm1lbnQgb3V0IG9mIHRoZSB3YXkKLQkJICovCi0JCW5ld19lbnZp cm9uID0gKGNoYXIgKiopIG1hbGxvYygoaSArIDEpICogc2l6ZW9mKGNoYXIgKikpOwotCQlp ZiAoIW5ld19lbnZpcm9uKQorCQlpZiAocHNfYnVmZmVyX3NpemUgPCBQU19CVUZGRVJfU0la RSkKIAkJewotCQkJd3JpdGVfc3RkZXJyKCJvdXQgb2YgbWVtb3J5XG4iKTsKKwkJCWNoYXIg ICAgKmFyZ3YwX3BhZGRlZDsKKwkJCWludAkJIGxlbiA9IHN0cmxlbihhcmd2WzBdKTsKKwkJ CWNoYXIJKnNlbGYgPSBhcmd2WzBdOworCisJCQkvKiByaWdodCBwYWQgYXJndlswXSB3aXRo IHNsYXNoZXMgdXAgdG8gUFNfQlVGRkVSX1NJWkUgKi8KKwkJCWFyZ3YwX3BhZGRlZCA9IChj aGFyICopIG1hbGxvYyhsZW4gKyBQU19CVUZGRVJfU0laRSAtIHBzX2J1ZmZlcl9zaXplKTsK KwkJCW1lbWNweShhcmd2MF9wYWRkZWQsIGFyZ3ZbMF0sIGxlbik7CisJCQlNZW1TZXQoYXJn djBfcGFkZGVkICsgbGVuLCAnLycsIFBTX0JVRkZFUl9TSVpFIC0gbGVuIC0gMSk7CisJCQlh cmd2WzBdID0gYXJndjBfcGFkZGVkOworCisJCQlleGVjdnAoc2VsZiwgYXJndik7CisJCQl3 cml0ZV9zdGRlcnIoImV4ZWMgZmFpbGVkOiAlc1xuJXMiLCBzdHJlcnJvcihlcnJubyksIHNl bGYpOwogCQkJZXhpdCgxKTsKIAkJfQotCQlmb3IgKGkgPSAwOyBlbnZpcm9uW2ldICE9IE5V TEw7IGkrKykKKwkJZWxzZQogCQl7Ci0JCQluZXdfZW52aXJvbltpXSA9IHN0cmR1cChlbnZp cm9uW2ldKTsKLQkJCWlmICghbmV3X2Vudmlyb25baV0pCi0JCQl7Ci0JCQkJd3JpdGVfc3Rk ZXJyKCJvdXQgb2YgbWVtb3J5XG4iKTsKLQkJCQlleGl0KDEpOwotCQkJfQorCQkJLyogV2Ug bWlnaHQgaGF2ZSBhbHJlYWR5IHBhZGRlZCBhcmd2WzBdLCBzbyB3ZSBtdXN0IHN0cmlwCisJ CSAJICogaXQgYWdhaW4gdG8gbWFrZSBnZXRfcHJvZ3JhbV9uYW1lIHdvcmsuICovCisJCQlp bnQJCWxlbiA9IHN0cmxlbihhcmd2WzBdKTsKKwkJCXdoaWxlIChsZW4gPiAwICYmIGFyZ3Zb MF1bbGVuIC0gMV0gPT0gJy8nKSBhcmd2WzBdWy0tbGVuXSA9ICdcMCc7CiAJCX0KLQkJbmV3 X2Vudmlyb25baV0gPSBOVUxMOwotCQllbnZpcm9uID0gbmV3X2Vudmlyb247CiAJfQogCiAJ LyoKLS0gCjIuNDQuMAoK --------------MknV8F0dWCwo0BQOFr1qUkRi--