Re: Attempt to consolidate reading of XLOG page
От | Antonin Houska |
---|---|
Тема | Re: Attempt to consolidate reading of XLOG page |
Дата | |
Msg-id | 7764.1569658556@antos обсуждение исходный текст |
Ответ на | Re: Attempt to consolidate reading of XLOG page (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
Tom Lane <tgl@sss.pgh.pa.us> wrote: > Alvaro Herrera <alvherre@2ndquadrant.com> writes: > > On 2019-Sep-27, Antonin Houska wrote: > >>> You placed the errinfo in XLogRead's stack rather than its callers' ... > >>> I don't think that works, because as soon as XLogRead returns that > >>> memory is no longer guaranteed to exist. > > >> I was aware of this problem, therefore I defined the field as static: > >> > >> +XLogReadError * > >> +XLogRead(char *buf, XLogRecPtr startptr, Size count, TimeLineID *tli_p, > >> + WALOpenSegment *seg, WALSegmentContext *segcxt, > >> + WALSegmentOpen openSegment) > >> +{ > >> + char *p; > >> + XLogRecPtr recptr; > >> + Size nbytes; > >> + static XLogReadError errinfo; > > > I see. > > That seems like an absolutely terrible "fix". We don't really want > XLogRead to be defined in a way that forces it to be non-reentrant do we? Good point. I forgot that the XLOG reader can be used by frontends, so thread safety is important here. -- Antonin Houska Web: https://www.cybertec-postgresql.com
В списке pgsql-hackers по дате отправления: