PG 13.6 : Data corruption error message not being sent to syslog

From: Abhishek Bhola <abhishek(dot)bhola(at)japannext(dot)co(dot)jp>
To: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: PG 13.6 : Data corruption error message not being sent to syslog
Date: 2022-05-25 08:32:30
Message-ID: CAEDsCzhtpDwCMPzhStxzw7k6ZHsv-gQr1WfnE4y_3pSgRJr7OQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

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.

My logging configuration in the `postgresql.conf` is as follows:
```
# Logging settings
# ----------------
log_destination = 'csvlog,syslog'
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql_%Y%m%d.log'
log_truncate_on_rotation = off
log_rotation_age = 1h
log_rotation_size = 0

log_timezone = 'Japan'
log_line_prefix = '%t [%p]: [%l-1] %h:%u(at)%d:[PG]:CODE:%e '

log_statement = 'all'
log_min_messages = info # DEBUG5
log_min_error_statement = info # DEBUG5
log_error_verbosity = default
log_checkpoints = on
log_lock_waits = on
log_temp_files = 0
log_connections = on
log_disconnections = on
log_duration = off
log_min_duration_statement = 1000
log_autovacuum_min_duration = 3000ms
```

The OS info for the server on which this DB is running is as follows:
```
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.9.2009 (Core)
Release: 7.9.2009
Codename: Core
```

And there is a filter defined for the rsyslog messages as follows:
```
## 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

if $programname == 'postgres' and \
( \
not ($msg contains '[PG]') or \
$msg contains 'CODE:00000' or \
$msg contains 'CODE:28000' or \
$msg contains 'CODE:28P01' or \
$msg contains 'CODE:3D000' or \
$msg contains 'CODE:42501' or \
$msg contains 'CODE:42601' or \
$msg contains 'CODE:42P01' or \
$msg contains 'CODE:42P02' or \
$msg contains 'CODE:08006' or \
$msg contains 'CODE:42703' \
) then stop
```

`syslog_ident` and `syslog_facility` is as follows:
```
postgres=# show syslog_ident ;
syslog_ident
--------------
postgres
(1 row)

postgres=# show syslog_facility ;
syslog_facility
-----------------
local0
(1 row)
```

I was thinking that such an error message would be sent to the
`/var/log/message`, from where it would be picked, but this wasn't the
case. Could someone explain why this is so and what can I change for these
messages to be sent to syslog?

--
_This correspondence (including any attachments) is for the intended
recipient(s) only. It may contain confidential or privileged information or
both. No confidentiality or privilege is waived or lost by any
mis-transmission. If you receive this correspondence by mistake, please
contact the sender immediately, delete this correspondence (and all
attachments) and destroy any hard copies. You must not use, disclose, copy,
distribute or rely on any part of this correspondence (including any
attachments) if you are not the intended
recipient(s).本メッセージに記載および添付されている情報(以下、総称して「本情報」といいます。)は、本来の受信者による使用のみを意図しています。誤送信等により本情報を取得された場合でも、本情報に係る秘密、または法律上の秘匿特権が失われるものではありません。本電子メールを受取られた方が、本来の受信者ではない場合には、本情報及びそのコピーすべてを削除・破棄し、本電子メールが誤って届いた旨を発信者宛てにご通知下さいますようお願いします。本情報の閲覧、発信または本情報に基づくいかなる行為も明確に禁止されていることをご了承ください。_

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Matthias Apitz 2022-05-25 09:21:41 Re: existing row not found by SELECT ... WHERE CTID = ?
Previous Message jian he 2022-05-25 08:22:21 link that explain ICU_LOCALE locale concept about local variant code and keywords.