[ZBX-15631] housekeeper table has invalid data in it Created: 2019 Feb 10  Updated: 2019 Feb 12  Resolved: 2019 Feb 10

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Server (S)
Affects Version/s: None
Fix Version/s: None

Type: Incident report Priority: Minor
Reporter: bunkzilla Assignee: Alexander Vladishev
Resolution: Won't fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

zabbix-server 3.4.13
mysql
linux



 Description   

Steps to reproduce:

  1. when deleting host from zabbix, entries get written into housekeeper table so it can clean deleted entries
  2. it's placing invalid entries into this table.
  3. events table doesn't have a column called itemid

Result:

|       8917787 | events       | itemid | 1847976 |

 



 Comments   
Comment by Vladislavs Sokurenko [ 2019 Feb 10 ]

can you please try select from events where objectid=1847976;

Comment by bunkzilla [ 2019 Feb 10 ]

The host wasn't active for very long, so I'm not surprised to not see any rows. Also, that query took a long time.

mysql> select * from events where objectid=1847976;
Empty set (38.22 sec)

mysql>
Comment by Alexander Vladishev [ 2019 Feb 10 ]

It's fine! Such records are created to remove item based internal events. Also can be created records with tablename="events" and field="lldruleid" or "triggerid".

Comment by bunkzilla [ 2019 Feb 10 ]

This wouldn't be considered a bug that you would write entries into this table that are impossible to ever exist?

Comment by Alexander Vladishev [ 2019 Feb 10 ]

This is not a bug. The housekeeper table has no direct links to real fields and tables. It contains commands for the housekeeper process to remove unnecessary information from the DB.

Comment by bunkzilla [ 2019 Feb 10 ]

I guess I'm trying to understand why it would write information into a table to get deleted items that would never exist.

Comment by richlv [ 2019 Feb 10 ]

Didn't that host have some items?

Comment by bunkzilla [ 2019 Feb 11 ]

So the way I read what's in the housekeeper table,
housekeeperid, tablename, field, value

8917787 events itemid 1847976

So the above record would be DELETE FROM events WHERE itemid = 1847976. And what I'm saying is events table doesn't have a field called itemid, so why would there be a row inserted into housekeeper in the first place.

Comment by Alexander Vladishev [ 2019 Feb 12 ]

I guess I'm trying to understand why it would write information into a table to get deleted items that would never exist.

Because the server can still create new entries in the event table after deleting an item due to configuration caching.

Comment by Alexander Vladishev [ 2019 Feb 12 ]

No, the SQL statement would be: "DELETE FROM events WHERE source=3 AND object=3 AND objectid=1847976"

Generated at Fri Apr 26 04:21:14 EEST 2024 using Jira 9.12.4#9120004-sha1:625303b708afdb767e17cb2838290c41888e9ff0.