-
Notifications
You must be signed in to change notification settings - Fork 139
Description
Guidance
Bug reports are for when HammerDB is not behaving as expected.
Bug reports should not be submitted for help in understanding database performance related questions.
General questions on database performance or HammerDB usability should be submitted under Discussions.
Describe the bug
Using PostgreSQL metrics, clicking on some events, shows the following errors:
get_event_type, err:can't read "public(waits,WalSync)": no such element in array
get_event_desc, err:can't read "public(events,WalSync)": no such element in array
get_event_type, err:can't read "public(waits,VacuumTruncate)": no such element in array
get_event_desc, err:can't read "public(events,VacuumTruncate)": no such element in array
get_event_type, err:can't read "public(waits,WalInitSync)": no such element in array
get_event_desc, err:can't read "public(events,WalInitSync)": no such element in array
get_event_type, err:can't read "public(waits,WalWrite)": no such element in array
get_event_desc, err:can't read "public(events,WalWrite)": no such element in array
get_event_type, err:can't read "public(waits,AioIoCompletion)": no such element in array
get_event_desc, err:can't read "public(events,AioIoCompletion)": no such element in array
get_event_type, err:can't read "public(waits,WalInitWrite)": no such element in array
get_event_desc, err:can't read "public(events,WalInitWrite)": no such element in array
To Reproduce
Run PostgreSQL metrics, view events and click. Event shows type and description N/A in summary.
However correct colour summary for the event type is shown so bug is just descriptive.
Event: WalWrite
Event Type: N/A
Event Description: N/A
Expected behavior
Should show the correct type and description
e.g. WalWrite | IO | Waiting for a write to a WAL file.
Screenshots
N/A
HammerDB Version (please complete the following information):
- Version:5.0
HammerDB Interface (please complete the following information):
- UI: GUI
Operating System (please complete the following information):
All
Database Server (please complete the following information):
- Database name: PostgreSQL
- Database Release Version 18.0
Database Client (please complete the following information):
- Database client name: N/A
Additional context
PostgreSQL events can be tricky e.g. WalWrite is an I/O event whereas WALWrite (capitalised) is an LWLock event
https://www.postgresql.org/docs/current/monitoring-stats.html
Table 27.9, IO wait event):
WalWrite – “Waiting for a write to a WAL file.”
wait_event_type = 'IO'
Table 27.12, LWLock wait events:
WALWrite – “Waiting for WAL buffers to be written to disk.”
wait_event_type = 'LWLock'
Below is mapping to add from events not shown in recent testing so that PostgreSQL event descriptions show correctly:
| Event | Type | Description (short) |
| ----------------- | ------- | -------------------------------------------------------------------- |
| `WalSync` | IO | Waiting for a WAL file to reach durable storage. |
| `WalInitSync` | IO | Waiting for a newly initialized WAL file to reach durable storage. |
| `WalInitWrite` | IO | Waiting for a write while initializing a new WAL file. |
| `WalWrite` | IO | Waiting for a write to a WAL file. |
| `SlruRead` | IO | Waiting for a read of an SLRU page. |
| `AioIoCompletion` | IO | Waiting for another process to complete IO. |
| `WALBufMapping` | LWLock | Waiting to replace a page in WAL buffers. |
| `VacuumTruncate` | Timeout | Waiting to acquire an exclusive lock to truncate empty pages at end. |