Re: jsonpath
От | Tomas Vondra |
---|---|
Тема | Re: jsonpath |
Дата | |
Msg-id | 2265b7fe-3b0e-c437-fe15-ac1807319b73@2ndquadrant.com обсуждение исходный текст |
Ответ на | Re: jsonpath (Tomas Vondra <tomas.vondra@2ndquadrant.com>) |
Ответы |
Re: jsonpath
|
Список | pgsql-hackers |
On 11/6/18 4:48 PM, Tomas Vondra wrote: > On 11/6/18 3:31 PM, Nikita Glukhov wrote: >> On 29.10.2018 2:20, Tomas Vondra wrote:> >> >> ... >>> >>> 9) It's generally a good idea to make the individual pieces committable >>> separately, but that means e.g. the regression tests have to pass after >>> each patch. At the moment that does not seem to be the case for 0002, >>> see the attached file. I'm running with -DRANDOMIZE_ALLOCATED_MEMORY, >>> not sure if that's related. >> >> This should definitely be a bug in json support, but I can't reproduce >> it simply by defining -DRANDOMIZE_ALLOCATED_MEMORY. Could you provide >> a stack trace at least? >> > I'll try. > Not sure why you can't reproduce the failures, it's perfectly reproducible for me. For the record, I'm doing this: ./configure --prefix=/home/user/pg-jsonpath --enable-debug --enable-cassert CFLAGS="-O0 -DRANDOMIZE_ALLOCATED_MEMORY" && make -s clean && make -s -j4 && make check After sticking Assert(false) to JsonEncodeJsonbValue (to the default case), I get a failure like this: select json '{}' @* 'lax $[0]'; ! WARNING: unknown jsonb value type: 20938064 ! server closed the connection unexpectedly ! This probably means the server terminated abnormally ! before or while processing the request. ! connection to server was lost The backtrace is attached. My guess is JsonValueListGetList in jsonb_jsonpath_query only does shallow copy instead of copying the pieces into funcctx->multi_call_memory_ctx, so it gets corrupted on subsequent calls. I also attach valgrind report, but I suppose the reported issues are a consequence of the same bug. regard -- Tomas Vondra http://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Вложения
В списке pgsql-hackers по дате отправления: