On my old HPUX box: $ ./pg_test_fsync 2 seconds per test Direct I/O is not supported on this platform.
Compare file sync methods using one 8kB write: (in wal_sync_method preference order, except fdatasync is Linux's default) open_datasync 165.122 ops/sec ( 6056 microsecs/op) fdatasync Alarm call $ echo $? 142 -- that's SIGALRM The reason it's failing is that according to the traditional (not BSD) definition of signal(2), the signal handler is reset to SIG_DFL when the signal is delivered. So the second occurrence of SIGALRM doesn't call the signal handler but just crashes the process. The quick-and-dirty fix for this is to just copy pqsignal() into pg_test_fsync, and use that instead of calling signal() directly. I wonder though if we shouldn't move that function into libpgport. Thoughts? regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers