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 1v7vgL-00A0uo-JX for pgsql-hackers@arkaria.postgresql.org; Sun, 12 Oct 2025 13:00:13 +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 1v7vgI-001PxX-5R for pgsql-hackers@arkaria.postgresql.org; Sun, 12 Oct 2025 13:00:11 +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 1v7vgH-001PxP-Qn for pgsql-hackers@lists.postgresql.org; Sun, 12 Oct 2025 13:00:10 +0000 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1v7vgG-001kdA-1x for pgsql-hackers@lists.postgresql.org; Sun, 12 Oct 2025 13:00:10 +0000 Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-3ee12a63af1so1956296f8f.1 for ; Sun, 12 Oct 2025 06:00:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760274002; x=1760878802; darn=lists.postgresql.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=msD88la4DApTIZmFuwvNXKjEq5fwCK7OK/MZS6WuAa4=; b=H1QwKnnw9tnMs1lDadrYACpGl2HTggePTkTfyShsmCTuiN2yKs+t3Q1MKqMQ4zJZuq kbGlTOSmw/5t3awH9hDjg9Qv3ws+CZVW9FspEhDoO4b44S2XwOyIvxsDvvFHBevn55cP 4lv2zWLEP84MGe2o2LrWVhrPE37CZN5wOkCctRI4xBog/lRRtWLS9/s8Q1xxcQDFMm2d TlmYkrWMgRJ7bUSbTDLmghe6wzJ7YzQDu7we2Hi8rY2KRY9z7loqbHxnJJZZe3DbX3UP 5Yte+f+GwX60+7M27uOms/dDElNBpSRlYPIuTt5NjtFa5rghZT+QGsf2AfCfEwWrysIK LbZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760274002; x=1760878802; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=msD88la4DApTIZmFuwvNXKjEq5fwCK7OK/MZS6WuAa4=; b=DgNuG0kQvNl6jPx+6+L0BMt5dEdL/Ddti47C2ugYVvMC65pkGxf0I37SYTo4nsIiuu wOguSCuneY3PTuMMrepLVFqvQ/Ip16iQo6U8XV19S/VQ7tp0xwiYvBuZ3tbT3oDuaXsZ oQPPji4H18EA6vwSj7rlydWlh5MfwGj2ZEyKECJm+/mxHuV2bOWT78zXKeiQG2UUlDsP faKTzd/LGTNMducENkZMiVtTpEirQZYEB4aIlxy+kVeifEhaPBSxAh3vDrYmOq0rPlxD +UVV0PlVzEErJzQn2V2J29yVQ56T4/7+5O43d1scZ19goB8ALPAu5iVt7TGijNy1Foib cXsQ== X-Forwarded-Encrypted: i=1; AJvYcCWEPRdFU2HnmNX0UZQCwQGTSkUeOmGVw1X3a5eBYLTWPssnBondH/zHCeEaPmzT6wRJXgdct4+7ENWzzIcA@lists.postgresql.org X-Gm-Message-State: AOJu0Yz4GuttEXNxz8qsc8RY6BKulBxWryIqeLgEP28h5i56z2/MgFzZ nDKhwTbRkOlR+B+Pqa+IlkgL+tafq8uNrnwnNJ76XgBsDY/CBLFLUaEs X-Gm-Gg: ASbGnctcxK8izcWSJzYFWIRegQEBs26m/2B+Mwxu7+cD8DBG4uE9UfyiVLLB2sjimir WiifWhQ/EZ0kB/u/xXHYwEgQAIBLPwjrLribu45Ss9QKnFuCNVYL46dmycaC2pkGYW1N+hoHzM6 oVjXn++s28O0Krm1NENiKoAf+iHHLwX2qepvDNkt9xwI0x2I/SxWJnIPfh9oiVtP4z+Jv22pCqW 6uUsSpKzlB5zDAsWTsz9/QaW87W71j5EP8j/zXHGxz2TFLYYo+/1pFawtp8OXLGFyJlev3fI/Ff 2OrI73wWdHAsykFjEqT516OZdVmcf1lzq5SCfNtU0hKqhIAgAgYX6uPrgQ2wmFmE6lJDo8PNi7O msu4MF1ufBcIxLyEksGQYKZVm9jc134vJWUHOnX63F4jk X-Google-Smtp-Source: AGHT+IG2waclk/gh18jX1UeAo3uhB3ZltEBQK+7GwogIAEwMyjHx3bQFiBBoPSiU74zhpZTHl9KLTA== X-Received: by 2002:a05:6000:2f83:b0:414:6fe6:8fa1 with SMTP id ffacd0b85a97d-4266e7dfdbemr11497344f8f.38.1760274002000; Sun, 12 Oct 2025 06:00:02 -0700 (PDT) Received: from [192.168.0.50] ([89.149.120.198]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-46fb482b99fsm140004125e9.3.2025.10.12.06.00.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 12 Oct 2025 06:00:01 -0700 (PDT) Message-ID: Date: Sun, 12 Oct 2025 16:00:00 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: GNU/Hurd portability patches To: Michael Banck Cc: Thomas Munro , Tom Lane , Michael Paquier , pgsql-hackers@lists.postgresql.org References: <68d3a0a0.050a0220.167290.bcf3@mx.google.com> <68d3cbe8.5d0a0220.65f10.da5f@mx.google.com> <3314741.1758724126@sss.pgh.pa.us> <68d413a3.a70a0220.24c74c.8be9@mx.google.com> <68d55c1e.050a0220.6136.4224@mx.google.com> <3771131.1758819153@sss.pgh.pa.us> <68d629f2.050a0220.3685b9.5ce2@mx.google.com> <68eb6761.7b0a0220.1711d0.1819@mx.google.com> Content-Language: en-US From: Alexander Lakhin In-Reply-To: <68eb6761.7b0a0220.1711d0.1819@mx.google.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi Michael, 12.10.2025 11:31, Michael Banck wrote: > > Any way to easily reproduce this? It happened only once on fruitcrow so > far. I'd say it happens pretty often when `make check` doesn't hang (so it takes an hour or two for me to reproduce). Though now that you've mentioned MAX_CONNECTIONS => '3', I also tried: EXTRA_REGRESS_OPTS="--max-connections=3" make -s check and it passed 6 iterations for me. Iteration 7 failed with: not ok 213   + partition_aggregate                      1027 ms --- /home/demo/postgresql/src/test/regress/expected/partition_aggregate.out 2025-10-11 10:04:36.000000000 +0100 +++ /home/demo/postgresql/src/test/regress/results/partition_aggregate.out 2025-10-12 13:02:05.000000000 +0100 @@ -1476,14 +1476,14 @@  (15 rows)  SELECT x, sum(y), avg(y), sum(x+y), count(*) FROM pagg_tab_para GROUP BY x HAVING avg(y) < 7 ORDER BY 1, 2, 3; - x  | sum  |        avg         |  sum  | count -----+------+--------------------+-------+------- -  0 | 5000 | 5.0000000000000000 |  5000 |  1000 -  1 | 6000 | 6.0000000000000000 |  7000 |  1000 - 10 | 5000 | 5.0000000000000000 | 15000 |  1000 - 11 | 6000 | 6.0000000000000000 | 17000 |  1000 - 20 | 5000 | 5.0000000000000000 | 25000 |  1000 - 21 | 6000 | 6.0000000000000000 | 27000 |  1000 + x  | sum  |            avg             |  sum  | count +----+------+----------------------------+-------+------- +  0 | 5000 |         5.0000000000000000 |  5000 |  1000 +  1 | 6000 |         6.0000000000000000 |  7000 |  1000 + 10 | 5000 | 0.000000052757140846001326 | 15000 |  1000 + 11 | 6000 |         6.0000000000000000 | 17000 |  1000 + 20 | 5000 |         5.0000000000000000 | 25000 |  1000 + 21 | 6000 |         6.0000000000000000 | 27000 |  1000  (6 rows) Then another 6 iterations passed, seventh one hanged. Then 10 iterations passed. With  EXTRA_REGRESS_OPTS="--max-connections=10" make -s check, I got: 2025-10-12 13:52:58.559 BST client backend[15475] pg_regress/constraints STATEMENT:  ALTER TABLE notnull_tbl2 ALTER a DROP NOT NULL; !!!wrapper_handler[15479]| postgres_signal_arg: 30, PG_NSIG: 33 !!!wrapper_handler[15476]| postgres_signal_arg: 30, PG_NSIG: 33 !!!wrapper_handler[15476]| postgres_signal_arg: 28481392, PG_NSIG: 33 TRAP: failed Assert("postgres_signal_arg < PG_NSIG"), File: "pqsignal.c", Line: 94, PID: 15476 postgres(ExceptionalCondition+0x5a) [0x1006af78a] postgres(+0x70f59a) [0x10070f59a] /lib/x86_64-gnu/libc.so.0.3(+0x39fee) [0x102b89fee] /lib/x86_64-gnu/libc.so.0.3(+0x39fdd) [0x102b89fdd] on iteration 5. So we can conclude that the issue with signals is better reproduced with higher concurrency. 28481392 (0x1b29770) is pretty close to 28476608 (0x1b284c0), which I showed before, so numbers are apparently not random. > I had to reboot fruitcrow last night because it had crashed, but that > was the first time in literally weeks. I tend to reboot it once a week, > but otherwise it ran pretty stable. Today I also tried to test my machine with stress-ng: stress-ng -v --class os --sequential 20 --timeout 120s It hanged/crashed at tests access, brk, close, enosys and never reached the end... Some tests might pass after restart, some fail consistently... For example: Fatal glibc error: ../sysdeps/mach/hurd/mig-reply.c:73 (__mig_dealloc_reply_port): assertion failed: port == arg stress-ng: info:  [9395] stressor terminated with unexpected signal 6 'SIGABRT' backtrace:   stress-ng-enosys [run](+0xace81) [0x1000ace81]   stress-ng-enosys [run](+0x927b6c) [0x100927b6c]   /lib/x86_64-gnu/libc.so.0.3(+0x39fee) [0x1029c8fee]   /lib/x86_64-gnu/libc.so.0.3(+0x21aec) [0x1029b0aec] > It took me a while to get there though before I applied for it to be a > buildfarm animal, here is what I did: > > 1) (builfarm client specific): removed "HEAD => ['debug_parallel_query = > regress']," and set "MAX_CONNECTIONS => '3'," in build-farm.conf, to > reduce concurrency. Thank you for the info! I didn't specify debug_parallel_query for `make check`, but num_connections really makes the difference. > 2. Gave it 4G of memory to the VM via KVM. Also set -M q35, but I guess > you are already doing that as it does not boot properly otherwise IME. Mine has 4GB too. > 3. Removed swap (this is already the case for the x86-64 2025 Debian > image, but it was not the case for the earlier 2023 i386 image when I > started this project). Paging to disk has been problematic and prone to > issues (critical parts getting paged out accidently), but this has been > fixed over the summer so in principle running a current gnumach/hurd > package combination from unstable should be fine again. Yes, I have no swap enabled. > 4. Removed tmpfs translators (so that the default-pager is not used > anywhere, in conjunction with not setting swap, see above), by setting > RAMLOCK=no and RAMTMP=no in /etc/default/tmpfs, as well as commenting > out 'mount_run mount_noupdate'/'mount_tmp mount_noupdate' in > /etc/init.d/mountall.sh and 'mount_run "$MNTMODE"' in > /etc/init.d/mountkernfs.sh (maybe there is a more minimal change, but > that is what I have right now). I have RAMLOCK=no and RAMTMP=no in my /etc/default/tmpfs and can't see any tmpfs mounts. Thank you for your help! Best regards, Alexander