What are zombie objects #345
Replies: 11 comments 12 replies
|
The expression “Zombi-Object-ID” was coined some years ago for object ids that belonged to objects deleted from the storage files but still being referenced from another object in the storage files. This state was caused by a fixed error in the storage garbage collector that could cause a corrupted storage target. |
|
Hm, I see.
|
EclipseStore has a predecessor project: Microstream.
Yes, there should be an |
I know, but we've never used that :)
Ah, I assumed it automatically did that. Due to the fact we use H2, this is already guaranteed for us. But we had a short timeframe in which we did not use H2 ... maybe it happened during that time. |
|
So, is there any way to get rid of the zombie objects now or is the database a lost cause? Because this actually causes follow-up issues. |
|
Without more details it’s hard to say if there is a chance to repair the storage, but most likely it’s broken. |
|
Yeah, restarting made no difference. It's just one object, given it is always the same ID. It doesn't really contain anything critical and it happened on an internal database. I am just afraid it might happen for a customer 😓 |
|
Zombie object references mean an object cannot be found in the storage. This can only happen if data is lost at the storage level. A file/blob has been deleted, or multiple processes have accessed the storage. This scenario can be prevented by ensuring that only one application has concurrent access to the underlying storage. One tool that helps to ensure this is Lock Files. If a critical storage needs repairing, this is a case for professional support. Please reach out to support@microstream.one |
|
So, we actually had this issue again. This time, I can 100% say that only one process at a time ever accessed the database. I can't tell exactly what caused this, but my assumption is an ungraceful shutdown by the user. Shouldn't it at least be possible to remove the faulty reference or allow the application to get information about it and allow removing it manually somehow? |
|
Hi, |
|
@Bios-Marcel I just found out you can override the content for specific objectId's, so it wont bother you with annoying logs (Storage GC marking encountered zombie....) I Just tested it and it works perfectly! |
Uh oh!
There was an error while loading. Please reload this page.
Hey
I have recently encountered a bug reported, where object IDs couldn't be found in the store.
The very same object IDs were however constantly being reported as Zombie objects in the commandline.
So I have some questions:
Maybe it would be nice to have a section in the official readme, if this is something that can be avoided by the user.
All reactions