Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pqrxC-0001b9-96 for pgsql-hackers@arkaria.postgresql.org; Mon, 24 Apr 2023 08:53:46 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pqrxA-0006q8-DS for pgsql-hackers@arkaria.postgresql.org; Mon, 24 Apr 2023 08:53:44 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pqrxA-0006pz-3s for pgsql-hackers@lists.postgresql.org; Mon, 24 Apr 2023 08:53:44 +0000 Received: from feynman.df7cb.de ([195.49.152.168]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1pqrx3-004lpO-5s for pgsql-hackers@lists.postgresql.org; Mon, 24 Apr 2023 08:53:43 +0000 Received: from msg.df7cb.de (unknown [IPv6:2a02:908:1482:3660:2ae7:2867:64d8:87dc]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-384) server-digest SHA384) (Client did not present a certificate) by feynman.df7cb.de (Postfix) with ESMTPSA id 4Q4f736jmxz3Dyq; Mon, 24 Apr 2023 10:53:35 +0200 (CEST) Date: Mon, 24 Apr 2023 10:53:35 +0200 From: Christoph Berg To: Andres Freund Cc: pgsql-hackers@lists.postgresql.org Subject: could not extend file "base/5/3501" with FileFallocate(): Interrupted system call Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Re: Andres Freund > Add smgrzeroextend(), FileZero(), FileFallocate() Hi, I'm often seeing PG16 builds erroring out in the pgbench tests: 00:33:12 make[2]: Entering directory '/<>/build/src/bin/pgbench' 00:33:12 echo "# +++ tap check in src/bin/pgbench +++" && rm -rf '/<>/build/src/bin/pgbench'/tmp_check && /bin/mkdir -p '/<>/build/src/bin/pgbench'/tmp_check && cd /<>/build/../src/bin/pgbench && TESTLOGDIR='/<>/build/src/bin/pgbench/tmp_check/log' TESTDATADIR='/<>/build/src/bin/pgbench/tmp_check' PATH="/<>/build/tmp_install/usr/lib/postgresql/16/bin:/<>/build/src/bin/pgbench:$PATH" LD_LIBRARY_PATH="/<>/build/tmp_install/usr/lib/aarch64-linux-gnu" PGPORT='65432' top_builddir='/<>/build/src/bin/pgbench/../../..' PG_REGRESS='/<>/build/src/bin/pgbench/../../../src/test/regress/pg_regress' /usr/bin/prove -I /<>/build/../src/test/perl/ -I /<>/build/../src/bin/pgbench --verbose t/*.pl 00:33:12 # +++ tap check in src/bin/pgbench +++ 00:33:14 # Failed test 'concurrent OID generation status (got 2 vs expected 0)' 00:33:14 # at t/001_pgbench_with_server.pl line 31. 00:33:14 # Failed test 'concurrent OID generation stdout /(?^:processed: 125/125)/' 00:33:14 # at t/001_pgbench_with_server.pl line 31. 00:33:14 # 'pgbench (16devel (Debian 16~~devel-1.pgdg100+~20230423.1656.g8bbd0cc)) 00:33:14 # transaction type: /<>/build/src/bin/pgbench/tmp_check/t_001_pgbench_with_server_main_data/001_pgbench_concurrent_insert 00:33:14 # scaling factor: 1 00:33:14 # query mode: prepared 00:33:14 # number of clients: 5 00:33:14 # number of threads: 1 00:33:14 # maximum number of tries: 1 00:33:14 # number of transactions per client: 25 00:33:14 # number of transactions actually processed: 118/125 00:33:14 # number of failed transactions: 0 (0.000%) 00:33:14 # latency average = 26.470 ms 00:33:14 # initial connection time = 66.583 ms 00:33:14 # tps = 188.889760 (without initial connection time) 00:33:14 # ' 00:33:14 # doesn't match '(?^:processed: 125/125)' 00:33:14 # Failed test 'concurrent OID generation stderr /(?^:^$)/' 00:33:14 # at t/001_pgbench_with_server.pl line 31. 00:33:14 # 'pgbench: error: client 2 script 0 aborted in command 0 query 0: ERROR: could not extend file "base/5/3501" with FileFallocate(): Interrupted system call 00:33:14 # HINT: Check free disk space. 00:33:14 # pgbench: error: Run was aborted; the above results are incomplete. 00:33:14 # ' 00:33:14 # doesn't match '(?^:^$)' 00:33:26 # Looks like you failed 3 tests of 428. 00:33:26 t/001_pgbench_with_server.pl .. 00:33:26 not ok 1 - concurrent OID generation status (got 2 vs expected 0) I don't think the disk is full since it's always hitting that same spot, on some of the builds: https://pgdgbuild.dus.dg-i.net/job/postgresql-16-binaries-snapshot/833/ This is overlayfs with tmpfs (upper)/ext4 (lower). Manually running that test works though, and the FS seems to support posix_fallocate: #include #include int main () { int f; int err; if (!(f = open("moo", O_CREAT | O_RDWR, 0666))) perror("open"); err = posix_fallocate(f, 0, 10); perror("posix_fallocate"); return 0; } $ ./a.out posix_fallocate: Success The problem has been there for some weeks - I didn't report it earlier as I was on vacation, in the free time trying to bootstrap s390x support for apt.pg.o, and there was this other direct IO problem making all the builds fail for some time. Christoph