]> granicus.if.org Git - postgresql/commit
Retry DSM control segment creation if Windows indicates access denied.
authorRobert Haas <rhaas@postgresql.org>
Tue, 20 Sep 2016 16:04:41 +0000 (12:04 -0400)
committerRobert Haas <rhaas@postgresql.org>
Tue, 20 Sep 2016 16:12:27 +0000 (12:12 -0400)
commit6bcd26c43c4f0ef718e984643338ddd5b207f9f9
treeca0c9ca724739199fdf5472c55ba4d9e4acbe038
parentfd94ac501f11a747093e0fa5af8514af7408dbc3
Retry DSM control segment creation if Windows indicates access denied.

Otherwise, attempts to run multiple postmasters running on the same
machine may fail, because Windows sometimes returns ERROR_ACCESS_DENIED
rather than ERROR_ALREADY_EXISTS when there is an existing segment.

Hitting this bug is much more likely because of another defect not
fixed by this patch, namely that dsm_postmaster_startup() uses
random() which returns the same value every time.  But that's not
a reason not to fix this.

Kyotaro Horiguchi and Amit Kapila, reviewed by Michael Paquier

Discussion: <CAA4eK1JyNdMeF-dgrpHozDecpDfsRZUtpCi+1AbtuEkfG3YooQ@mail.gmail.com>
src/backend/storage/ipc/dsm_impl.c