Hi folks,
I am trying to get a version (any version !) of PostgreSQL running
on OpenBSD 2.4 upwards, but I am getting some weird behaviour with
the SIGQUIT in elog():
from kdump:
21633 postgres RET write 56/0x38
21633 postgres CALL sendto(0x4,0x125640,0x3a,0,0,0)
21633 postgres GIO fd 4 wrote 58 bytes "EERROR: destroydb: database 'regression' does not exist \0"
21633 postgres RET sendto 58/0x3a
21633 postgres CALL kill(0x5481,0x3)
21633 postgres RET kill -1 errno 1 Operation not permitted
21633 postgres CALL sigprocmask(0x1,0)
21633 postgres RET sigprocmask 0
21633 postgres CALL sigsuspend(0)
For those who cannot read hex, FYI 0x5481 == 21633. What this basically
means that the process is getting permission denied sending a signal
to itself. Hmm. This is with a snapshot from a few days agao, but
the results are identical for 6.4.2 as well.
Oh, the result - the regression tests hang waiting for the postgres
process to receive the SIGQUIT to abort transaction that never
comes.
The OpenBSD folks don't seem to be bothered. I have RTFM, APUE and
kern_sig.c in OpenBSD - no joy. Any ideas anyone ? Seen this before ?
Is it some bizarre interaction of sigprocmask() or whatever ?
Regards,
--
Peter Galbavy
Knowledge Matters Ltd
http://www.knowledge.com /http://www.wonderland.org/ http://www.literature.org/