Re: Unexpected "shared memory block is still in use"

Поиск
Список
Период
Сортировка
От Kyotaro HORIGUCHI
Тема Re: Unexpected "shared memory block is still in use"
Дата
Msg-id 20190509.152836.153942217.horiguchi.kyotaro@lab.ntt.co.jp
обсуждение исходный текст
Ответ на Re: Unexpected "shared memory block is still in use"  (Noah Misch <noah@leadboat.com>)
Список pgsql-hackers
At Wed, 8 May 2019 22:54:14 -0700, Noah Misch <noah@leadboat.com> wrote in <20190509055414.GB1066859@rfd.leadboat.com>
> On Wed, May 08, 2019 at 02:32:46PM -0400, Tom Lane wrote:
> > Just now, while running a parallel check-world on HEAD according to the
> > same script I've been using for quite some time, one of the TAP tests
> > died during initdb:
> > 
> > selecting dynamic shared memory implementation ... posix
> > selecting default max_connections ... 100
> > selecting default shared_buffers ... 128MB
> > selecting default timezone ... America/New_York
> > creating configuration files ... ok
> > running bootstrap script ... ok
> > performing post-bootstrap initialization ... 2019-05-08 13:59:19.963 EDT [18351] FATAL:  pre-existing shared memory
block(key 5440004, ID 1734475802) is still in use
 
> > 2019-05-08 13:59:19.963 EDT [18351] HINT:  Terminate any old server processes associated with data directory
"/home/postgres/pgsql/src/test/subscription/tmp_check/t_004_sync_publisher_data/pgdata".
> > child process exited with exit code 1
> > initdb: removing data directory
"/home/postgres/pgsql/src/test/subscription/tmp_check/t_004_sync_publisher_data/pgdata"
> > Bail out!  system initdb failed
> > 
> > I have never seen this happen before in the TAP tests.
> > 
> > I think the odds are very high that this implies something wrong with
> > commit c09850992.
> 
> The odds are very high that you would not have gotten that error before that
> commit.  But if the cause matches your guess, it's not something wrong with
> the commit ...
> 
> > My immediate guess after eyeballing that patch quickly is that it was
> > not a good idea to redefine the rules used by bootstrap/standalone
> > backends.  In particular, it seems somewhat plausible that the bootstrap
> > process hadn't yet completely died when the standalone backend for the
> > post-bootstrap phase came along and decided there was a conflict (which
> > it never would have before).
> 
> If so, I would sure try to fix the initdb sequence to not let that happen.  I
> would not trust such a conflict to be harmless.
> 
> What OS, OS version, and filesystem?

PGSharedMemoryCreate shows the error in SHMSTATE_ANALYSYS_FAILURE
case. PGSharedMemoryAttach returns the code when, for example,
shmat failed with ENOMEM. I'm afraid that the message is not
shown from SHMSTATE_ATTACHED..

regards.

-- 
Kyotaro Horiguchi
NTT Open Source Software Center




В списке pgsql-hackers по дате отправления:

Предыдущее
От: Julien Rouhaud
Дата:
Сообщение: Re: Wrong return code in vacuumdb when multiple jobs are used
Следующее
От: Dilip Kumar
Дата:
Сообщение: Re: POC: Cleaning up orphaned files using undo logs