Both this and the other behavior you reported sure seem like "can't
happen" situations. I do have a theory though: I think you are doing
something that is spawning multiple threads inside the backend, and then
the backend logic goes nuts because it's expecting to be single-threaded.
pg_buffercache wouldn't do that, and a quick google search suggests that
V8 knows nothing of threads either. Have you got anything else going
on in there?
No, we don't use anything except sql, plv8 and plpgsql.
it is also sometimes crashes on simplest queries like select 'ping'.
Is it possible that some signal handler resets the TopTransactionContext to NULL?
--
Best regards,
Dmitriy Sarafannikov