[ZBX-22154] Errors occur when the PostgreSQL transaction isolation level is set to a non-default level Created: 2023 Jan 02  Updated: 2023 Jan 03

Status: Confirmed
Project: ZABBIX BUGS AND ISSUES
Component/s: Frontend (F), Proxy (P), Server (S)
Affects Version/s: 5.0.30, 6.0.12, 6.2.6, 6.4.0beta5
Fix Version/s: None

Type: Problem report Priority: Major
Reporter: Artem Misnik Assignee: Zabbix Development Team
Resolution: Unresolved Votes: 0
Labels: PostgreSQL
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: JPEG File front-err.jpg     JPEG File login-err.jpg     JPEG File logout.jpg     Text File postgres-err.log     Text File server-err.log     JPEG File set-isolation.jpg    
Issue Links:
Duplicate
Sub-task
part of ZBX-4134 It is possible to create duplicate ob... Confirmed

 Description   

It appears that currently Zabbix does not check the default transaction isolation level and does not handle serialization failures that occur at isolation levels above read committed. This causes some write transactions to fail. For example, the frontend probably cannot save sessions on dynamically updated pages, resulting in guest login errors and further logout. Errors also occur when updating records from the server and proxy side.

Steps to reproduce:

Errors are not reproduced on MySQL, so I believe that they are related to Postgres only.

  1. Set Postgres database transaction isolation level to repeatable read.
  2. Log in to Zabbix and open dashboard and latest data tabs.

Result:
Guest login errors appear in the audit log, after a while the user logs out.

Expected:

Databases can be deployed with a default isolation level of repeatable read or serializable. This setting must be checked when using Postgres, otherwise it can lead to a lot of implicit errors that are not properly handled on the application side.

  1. There should be warnings on the front about the Postgres database default transaction isolation level higher than read committed.
  2. The requirements for the transaction isolation level should be specified in the documentation.

Generated at Thu May 15 06:16:11 EEST 2025 using Jira 9.12.4#9120004-sha1:625303b708afdb767e17cb2838290c41888e9ff0.