-
Type:
Problem report
-
Resolution: Unresolved
-
Priority:
Minor
-
None
-
Affects Version/s: 6.0.49, 7.0.32, 8.0.0
-
Component/s: Server (S)
-
None
-
Support backlog
Environment
- 7.0.32, PostgreSQL 16
Steps to reproduce
- Create host "Storage array 01" with discovery rule "Disk discovery": Zabbix trapper, key "disk.discovery", Delete lost resources: Immediately.
- Create prototypes from block 1.
- Send first value from block 2.
- Send second value (only "{#FW}" changed).
- Send second value again.
1. Prototypes
Item prototype "Disk {#DISK} raw data": Zabbix trapper, key disk.raw[{#DISK},{#FW}], Text
Item prototype "Disk {#DISK} status": Dependent item, master "Disk {#DISK} raw data", key disk.status[{#DISK}], Text
Trigger prototype "Disk {#DISK} failed": last(/Storage array 01/disk.status[{#DISK}])="failed"
2. Values
zabbix_sender -z <server> -s "Storage array 01" -k disk.discovery -o '[{"{#DISK}":"sda","{#FW}":"1"}]' zabbix_sender -z <server> -s "Storage array 01" -k disk.discovery -o '[{"{#DISK}":"sda","{#FW}":"2"}]'
Result
Server log after step 4 ("lld worker #1"):
26606:20261113:121451.021 [Z3005] query failed: [0] PGRES_FATAL_ERROR:ERROR: insert or update on table "functions" violates foreign key constraint "c_functions_1" DETAIL: Key (itemid)=(50744) is not present in table "items". [insert into functions (functionid,itemid,triggerid,name,parameter) values (36116,50744,25229,'last','$');
| Check | Result |
|---|---|
| Step 4, master item | New one created, old one deleted as lost |
| Step 4, dependent item | Deleted with its trigger, although discovered |
| Step 4, trigger | Not created (log above) |
| Step 5 | Dependent item and trigger created again, new IDs |
Expected
Dependent item is kept and linked to the new master item of its LLD row. No query failure.
Scope: dependent item prototypes whose master key has an LLD macro that the dependent key does not have.