Abhishek Bhola <abhishek.bhola@japannext.co.jp> writes:
> This morning I noticed this error in my PG CSV log file.
> 2022-05-25 23:59:17.776 JST,,,117110,,628cf2c5.1c976,1,,2022-05-25 23:59:17
> JST,9/611296,0,ERROR,XX001,"uncommitted xmin 16395356 from before xid
> cutoff 144683296 needs to be frozen",,,,,"while scanning block 19267 of
> relation ""relation_name""
> This was a data corruption error that I resolved by truncating the table
> and reloading it. However, I was curious why this message was not sent to
> my syslog.
Seems to me this filter explains that well enough:
> ## Added by DataConsulting Team for syslog filter
> if $programname == 'postgres' and \
> ($msg contains 'CODE:28000' or \
> $msg contains 'CODE:28P01' or \
> $msg contains 'CODE:3D000' or \
> $msg contains 'CODE:08006' or \
> $msg contains 'CODE:42501' \
> ) then /xxxx/xxxx/xxx/pg_log/postgres_filter.log
You should realize of course that syslog is not a 100% reliable logging
mechanism -- at least most implementations are capable of dropping
messages under load. But we needn't guess about reasons for missed
messages here.
regards, tom lane