TECHZEN Zenoss User Community ARCHIVE  

More PosKeyErrors not found by toolbox "findposkeyerror"

Subject: More PosKeyErrors not found by toolbox "findposkeyerror"
Author: [Not Specified]
Posted: 2014-11-03 10:12

Found a bunch of these this morning on a router device, detected by Zenoss toolbox zodbscan but not by the findposkeyerror program.

2014-11-03 08:19:01,112 CRITICAL zodbscan: DANGLING REFERENCE (POSKeyError) FOUND:
PATH: zport/dmd/Devices/Network/Router/Cisco/devices/MIGTORSW05/os/interfaces/FastEthernet0_30
TYPE:
OID: 0x000db44b '\x00\x00\x00\x00\x00\r\xb4K' 898123
Refers to a missing object:
NAME: None
TYPE:
OID: 0x000db46f '\x00\x00\x00\x00\x00\r\xb4o' 898159

Hopefully the dev for the toolbox utils (which are quite nice btw) can use this info...



Subject: Clarification on zodbscan vs. findposkeyerror
Author: [Not Specified]
Posted: 2014-11-03 19:37

Just an FYI - the tools zodbscan and findposkeyerror do different types of traversals.

Zodbscan navigates over all of the objects in zodb, taken straight from MySQL/ZenDS. It checks to see if there are any broken references in that pass.

Findposkeyerror is a Zenoss-aware traversal - it starts at the top "/" and traverses the tree and linked objects to check connections.

Zenrelationscan does a similar traversal, but for defined zenrelations.

All three of these tools combined do a pretty good job, IMO, of covering the different types of zodb integrity issues that can arise. These issues, once they arise, often have to addressed as a one-off solution once they are detected - findposkeyerror only fixes a very small subset of issues (currently, and gets expanded from time to time).

For this issue, you see that the the interface in question has a references to a missing object - were you able to either delete the reference at a higher level (for instance, deleting all of the interfaces) or create a stub object to reference, and then delete A remodel, after the PKEs are gone, should fix the device (and a catalog scan for good measure).



Subject: Yes, I was able to copy the
Author: [Not Specified]
Posted: 2014-11-04 06:55

Yes, I was able to copy the same type of fields from another object into the missing zoids, and then delete. After that I ran all of the toolbox tools looking for any leftover mess (there was none) and then rediscovered the device. But you have to admit this is the "expert" way of fixing these problems.

I realize that the solution to the PosKeyErrors, once they crop up, is often unique but it seems like there should be a way to force-delete the device object in question. Let it delete whatever child zoids it can, and then let (for example) zencatalogscan or whatever find any orphaned zoids. Or, if there are orphans, just leave them in there, they shouldn't be hurting anything at that point; the object can be deleted and rediscovered and we go about our day.



Subject: That's a very good suggestion
Author: [Not Specified]
Posted: 2014-11-04 11:02

That's a very good suggestion - would you be willing to open that as a JIRA defect against Zenoss If not, I can open a JIRA ticket to discuss that internally, but this would have higher weight I'd say if we had end-users requesting.



< Previous
wincommand notification
  Next
Zenoss rpm dependencies
>