recovery test failure on morepork with timestamp mystery

Поиск
Список
Период
Сортировка
От Melanie Plageman
Тема recovery test failure on morepork with timestamp mystery
Дата
Msg-id CAAKRu_ZaFgCN6tMNi2PqdsbTcZ5c4d1D2Q-+pSeEMk8kS4vW4Q@mail.gmail.com
обсуждение исходный текст
Ответы Re: recovery test failure on morepork with timestamp mystery  (Peter Smith <smithpb2250@gmail.com>)
Re: recovery test failure on morepork with timestamp mystery  (Andres Freund <andres@anarazel.de>)
Список pgsql-hackers
Andres drew my attention to this [1] build farm failure.

Looks like a test I wrote resetting pg_stat_replication_slots is
failing:

  #   Failed test 'Check that reset timestamp is later after resetting
stats for slot 'test_slot' again.'
  #   at t/006_logical_decoding.pl line 261.
  #          got: 'f'
  #     expected: 't'
  # Looks like you failed 1 test of 20.
  [19:59:58] t/006_logical_decoding.pl ............

This is the test code itself:

  is( $node_primary->safe_psql(
      'postgres',
      qq(SELECT stats_reset > '$reset1'::timestamptz FROM
pg_stat_replication_slots WHERE slot_name = '$stats_test_slot1')
    ),
    qq(t),
    qq(Check that reset timestamp is later after resetting stats for
slot '$stats_test_slot1' again.)
  );

This is the relevant SQL statement:

  SELECT stats_reset > '$reset1'::timestamptz FROM
pg_stat_replication_slots WHERE slot_name = '$stats_test_slot1'

When this statement is executed, reset1 is as shown:

  2022-05-12 19:59:58.342 CEST [88829:3] 006_logical_decoding.pl LOG:
statement: SELECT stats_reset > '2022-05-12
19:59:58.402808+02'::timestamptz FROM pg_stat_replication_slots WHERE
slot_name = 'test_slot'

Note the timestamp of this execution. The stats reset occurred in the
past, and as such *must* have come before '2022-05-12
19:59:58.402808+02'::timestamptz.

The starred line is where `reset1` is fetched:

  2022-05-12 19:59:58.305 CEST [86784:2] [unknown] LOG:  connection
authorized: user=pgbf database=postgres
application_name=006_logical_decoding.pl
* 2022-05-12 19:59:58.306 CEST [86784:3] 006_logical_decoding.pl LOG:
statement: SELECT stats_reset FROM pg_stat_replication_slots WHERE
slot_name = 'test_slot'
  2022-05-12 19:59:58.308 CEST [86784:4] 006_logical_decoding.pl LOG:
disconnection: session time: 0:00:00.003 user=pgbf database=postgres
host=[local]
  2022-05-12 19:59:58.315 CEST [18214:1] [unknown] LOG:  connection
received: host=[local]
  2022-05-12 19:59:58.316 CEST [18214:2] [unknown] LOG:  connection
authorized: user=pgbf database=postgres
application_name=006_logical_decoding.pl
  2022-05-12 19:59:58.317 CEST [18214:3] 006_logical_decoding.pl LOG:
statement: SELECT pg_stat_reset_replication_slot(NULL)
  2022-05-12 19:59:58.322 CEST [18214:4] 006_logical_decoding.pl LOG:
disconnection: session time: 0:00:00.007 user=pgbf database=postgres
host=[local]
  2022-05-12 19:59:58.329 CEST [45967:1] [unknown] LOG:  connection
received: host=[local]
  2022-05-12 19:59:58.330 CEST [45967:2] [unknown] LOG:  connection
authorized: user=pgbf database=postgres
application_name=006_logical_decoding.pl
  2022-05-12 19:59:58.331 CEST [45967:3] 006_logical_decoding.pl LOG:
statement: SELECT stats_reset IS NOT NULL FROM
pg_stat_replication_slots WHERE slot_name = 'logical_slot'
  2022-05-12 19:59:58.333 CEST [45967:4] 006_logical_decoding.pl LOG:
disconnection: session time: 0:00:00.003 user=pgbf database=postgres
host=[local]
  2022-05-12 19:59:58.341 CEST [88829:1] [unknown] LOG:  connection
received: host=[local]
  2022-05-12 19:59:58.341 CEST [88829:2] [unknown] LOG:  connection
authorized: user=pgbf database=postgres
application_name=006_logical_decoding.pl
  2022-05-12 19:59:58.342 CEST [88829:3] 006_logical_decoding.pl LOG:
statement: SELECT stats_reset > '2022-05-12
19:59:58.402808+02'::timestamptz FROM pg_stat_replication_slots WHERE
slot_name = 'test_slot'
  2022-05-12 19:59:58.344 CEST [88829:4] 006_logical_decoding.pl LOG:
disconnection: session time: 0:00:00.003 user=pgbf database=postgres
host=[local]
  2022-05-12 19:59:58.350 CEST [50055:4] LOG:  received fast shutdown request
  2022-05-12 19:59:58.350 CEST [50055:5] LOG:  aborting any active transactions
  2022-05-12 19:59:58.352 CEST [50055:6] LOG:  background worker
"logical replication launcher" (PID 89924) exited with exit code 1
  2022-05-12 19:59:58.352 CEST [56213:1] LOG:  shutting down
  2022-05-12 19:59:58.352 CEST [56213:2] LOG:  checkpoint starting:
shutdown immediate
  2022-05-12 19:59:58.353 CEST [56213:3] LOG:  checkpoint complete:
wrote 4 buffers (3.1%); 0 WAL file(s) added, 0 removed, 0 recycled;
write=0.001 s, sync=0.001 s, total=0.001 s; sync files=0,
longest=0.000 s, average=0.000 s; distance=0 kB, estimate=0 kB
  2022-05-12 19:59:58.355 CEST [50055:7] LOG:  database system is shut down

stats_reset was set in the past, so `reset1` shouldn't be after
'2022-05-12 19:59:58.306 CEST'. It looks like the timestamp appearing in
the test query would correspond to a time after the database is shut
down.

- melanie

[1] https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=morepork&dt=2022-05-12%2017%3A50%3A47



В списке pgsql-hackers по дате отправления:

Предыдущее
От: "osumi.takamichi@fujitsu.com"
Дата:
Сообщение: RE: First draft of the PG 15 release notes
Следующее
От: Amit Langote
Дата:
Сообщение: Re: First draft of the PG 15 release notes