On 5 June 2015 at 13:58, Kal Sze <swordangel@gmail.com> wrote:
> On 5 June 2015 at 13:27, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> Kal Sze <swordangel@gmail.com> writes:
>>> I'm trying to debug a problem that is occurring rather rarely, which
>>> causes multiple clients connected to the same postgresql 9.4 server to
>>> crash at the same time.
>>
>>> These clients send *lots* of SQL statements. I want to turn on
>>> statement logging, but I am baffled by the fact that the LOG level is
>>> *below* WARNING and ERROR levels, for the `log_min_error_statement`
>>> configuration option. This results in my log being flooded with
>>> useless messages about statements that have succeeded.
>>
>>> Why is it designed like that?
>>
>> LOG level is meant for non-client-facing log messages, which should get
>> sent to the postmaster log even if log_min_messages has been set high
>> enough to suppress logging of everyday SQL-statement errors. On the other
>> hand, they're not meant for client consumption so they don't get sent to
>> the client at the default client_min_messages setting.
>>
>> You didn't say exactly where the problematic messages are coming from,
>> but it sounds a bit like somebody on the client side misunderstood what
>> they should use LOG for.
>>
>> regards, tom lane
>
> I want to turn on statement logging on the server side, not sending
> the messages to the clients.
>
> Right now, I don't even know where the problematic messages come from,
> which is why I want to turn on statement logging on the server side.
> All I know is that both clients crash at the same time while
> performing some COPYs in a transaction. And I suspect it's a problem
> with this particular server instance because I have another,
> physically separate setup of server and clients, and that setup is not
> crashing.
Put another way, what kinds of messages are included in the ERROR
level? When the wrong data type is supplied for a table column? When a
value in an COPY statement would violate a unique constraint? If so,
why should LOG be even below ERROR? If not, then what kinds of
messages fall into the ERROR level? I know there are also the FATAL
and PANIC levels, but FATAL is supposed to be for really bad things
that cause a *session* to abort, so I don't expect stuff like unique
constraint violation to fall into that level, unless I'm
misunderstanding what is meant by a *session*.