Re: Postgres, fsync, and OSs (specifically linux)
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Dmitry Dolgov <9erthalion6@gmail.com>
Cc: Thomas Munro <thomas.munro@enterprisedb.com>, Craig Ringer <craig@2ndquadrant.com>, Heikki Linnakangas <hlinnaka@iki.fi>, Robert Haas <robertmhaas@gmail.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2018-05-22T18:59:51Z
Lists: pgsql-hackers
Attachments
On 2018-05-22 20:54:46 +0200, Dmitry Dolgov wrote: > > On 22 May 2018 at 18:47, Andres Freund <andres@anarazel.de> wrote: > > On 2018-05-22 08:57:18 -0700, Andres Freund wrote: > >> Hi, > >> > >> > >> On 2018-05-22 17:37:28 +0200, Dmitry Dolgov wrote: > >> > Thanks for the patch. Out of curiosity I tried to play with it a bit. > >> > >> Thanks. > >> > >> > >> > `pgbench -i -s 100` actually hang on my machine, because the > >> > copy process ended up with waiting after `pg_uds_send_with_fd` > >> > had > >> > >> Hm, that had worked at some point... > >> > >> > >> > errno == EWOULDBLOCK || errno == EAGAIN > >> > > >> > as well as the checkpointer process. > >> > >> What do you mean with that latest sentence? > > To investigate what's happening I attached with gdb to two processes, COPY > process from pgbench and checkpointer (since I assumed it may be involved). > Both were waiting in WaitLatchOrSocket right after SendFsyncRequest. Huh? Checkpointer was in SendFsyncRequest()? Coudl you share the backtrace? > >> > Looks like with the default > >> > configuration and `max_wal_size=1GB` it writes more than reads to a > >> > socket, and a buffer eventually becomes full. > >> > >> That's intended to then wake up the checkpointer immediately, so it can > >> absorb the requests. So something isn't right yet. > > > > Doesn't hang here, but it's way too slow. > > Yep, in my case it was also getting slower, but eventually hang. > > > Reason for that is that I've wrongly resolved a merge conflict. Attached is a > > fixup patch - does that address the issue for you? > > Hm...is it a correct patch? I see the same committed in > 8c3debbbf61892dabd8b6f3f8d55e600a7901f2b, so I can't really apply it. Yea, sorry for that. Too many files in my patch directory... Right one attached. Greetings, Andres Freund
Commits
-
PANIC on fsync() failure.
- 9ccdd7f66e33 12.0 landed
- f1ff5f51d249 9.4.21 landed
- 312435232217 9.5.16 landed
- b9cce9ddfa17 9.6.12 landed
- afbe03f65470 10.7 landed
- 6534d544cd77 11.2 landed
-
Fix and improve pg_atomic_flag fallback implementation.
- 8c3debbbf618 11.0 cited