8000 Synchronization with collector may be lost if backend is terminated · Issue #48 · postgrespro/pg_wait_sampling · GitHub
[go: up one dir, main page]

Skip to content
Synchronization with collector may be lost if backend is terminated #48
Closed
@shinderuk

Description

@shinderuk

Consider the following scenario:

  1. Session 1 requests history.
  2. Session 1 is terminated while wating for collector.
  3. Session 2 requests profile.
  4. Collector sends history requested by session 1.
  5. Session 2 receives history instead of profile.

Stop the collector just before LockAcquire(&tag, ExclusiveLock, false, false); in collector_main (collector.c:442).

Session 1:

postgres=# select * from pg_wait_sampling_history limit 5;
FATAL:  terminating connection due to administrator command
server closed the connection unexpectedly
	This probably means the server terminated abnormally
	before or while processing the request.
The connection to the server was lost. Attempting reset: Succeeded.

Terminate the backend while it is waiting for collector (with kill or pg_terminate_backend).

Session 2:

postgres=# select * from pg_wait_sampling_profile limit 5;
  pid  | event_type |        event        | queryid |      count      
-------+------------+---------------------+---------+-----------------
 93315 | Activity   | LogicalLauncherMain |       0 | 702740797103094
 93309 | Activity   | CheckpointerMain    |       0 | 702740797103094
 93310 | Activity   | BgWriterHibernate   |       0 | 702740797103094
 93312 | Activity   | WalWriterMain       |       0 | 702740797103094
 93635 | Client     | ClientRead          |       0 | 702740797224477
(5 rows)

After sending the query let the collector continue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0