| От | Alvaro Herrera |
|---|---|
| Тема | walsender bug: stuck during shutdown |
| Дата | |
| Msg-id | 20201123205253.GA10075@alvherre.pgsql обсуждение исходный текст |
| Ответы |
Re: walsender bug: stuck during shutdown
|
| Список | pgsql-hackers |
Hello Chloe Dives reported that sometimes a walsender would become stuck during shutdown and *not* shutdown, thus preventing postmaster from completing the shutdown cycle. This has been observed to cause the servers to remain in such state for several hours. After a lengthy investigation and thanks to a handy reproducer by Chris Wilson, we found that the problem is that WalSndDone wants to avoid shutting down until everything has been sent and acknowledged; but this test is coded in a way that ignores the possibility that we have never received anything from the other end. In that case, both MyWalSnd->flush and MyWalSnd->write are InvalidRecPtr, so the condition in WalSndDone to terminate the loop is never fulfilled. So the walsender is looping forever and never terminates, blocking shutdown of the whole instance. The attached patch fixes the problem by testing for the problematic condition. Apparently this problem has existed forever. Fujii-san almost patched for it in 5c6d9fc4b2b8 (2014!), but missed it by a zillionth of an inch. -- Álvaro Herrera
В списке pgsql-hackers по дате отправления:
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера