elog during holding a spinlock is safe?
Hi,
In HEAD, OwnLatch can elog during holding the spinlock WalSnd->mutex.
This seems to be unsafe because that elog would cause the walsender
to exit without releasing the spinlock. Because of the spinlock being
held, subsequent walsender would get stuck. I wonder if OwnLatch really
needs to be protected by the spinlock.
Regards,
--
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center
Fujii Masao <masao.fujii@gmail.com> writes:
In HEAD, OwnLatch can elog during holding the spinlock WalSnd->mutex.
This seems to be unsafe
Even if it were safe, holding a spinlock through non-straight-line code
is a complete violation of the spinlock coding rules re the length of
time you're supposed to hold the lock. Heikki?
regards, tom lane
On 15/09/10 05:47, Tom Lane wrote:
Fujii Masao<masao.fujii@gmail.com> writes:
In HEAD, OwnLatch can elog during holding the spinlock WalSnd->mutex.
This seems to be unsafeEven if it were safe, holding a spinlock through non-straight-line code
is a complete violation of the spinlock coding rules re the length of
time you're supposed to hold the lock. Heikki?
Yep, that's an oversight. I'll move the OwnLatch call after the spinlock
is released.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com