cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Content Catalog sync error

surziceanu
Explorer
0 Likes
660

Sometimes during CI system init we get the following errors during catalog synchronization:

[SyncWorker<000000AX 13 of 16>] [AbstractItemCopyContext]  error setting partOf attribute restrictions : item 8796135949362 no longer valid (was removed): object no longer valid
de.hybris.platform.catalog.SynchronizationPersistenceException: item 8796135949362 no longer valid (was removed): object no longer valid
	at de.hybris.platform.catalog.synchronization.ServiceLayerSynchronizationPersistenceAdapter.doUpdate(ServiceLayerSynchronizationPersistenceAdapter.java:376)
	at de.hybris.platform.catalog.synchronization.ServiceLayerSynchronizationPersistenceAdapter.update(ServiceLayerSynchronizationPersistenceAdapter.java:344)
	at de.hybris.platform.catalog.jalo.synchronization.LegacySynchronizationPersistenceAdapter.update(LegacySynchronizationPersistenceAdapter.java:1)
	at de.hybris.platform.catalog.jalo.synchronization.ItemCopyCreator.setReferenceAttribute(ItemCopyCreator.java:806)
	at de.hybris.platform.catalog.jalo.synchronization.ItemCopyCreator.setReferenceAttributesWaitingOnDelay(ItemCopyCreator.java:738)
	at de.hybris.platform.catalog.jalo.synchronization.ItemCopyCreator.setPartOfReferences(ItemCopyCreator.java:691)
	at de.hybris.platform.catalog.jalo.synchronization.ItemCopyCreator.doCopy(ItemCopyCreator.java:441)
	at de.hybris.platform.catalog.jalo.synchronization.ItemCopyCreator.access$3(ItemCopyCreator.java:427)
	at de.hybris.platform.catalog.jalo.synchronization.ItemCopyCreator$2.execute(ItemCopyCreator.java:402)
	at de.hybris.platform.tx.Transaction.execute(Transaction.java:1192)
	at de.hybris.platform.tx.Transaction.execute(Transaction.java:1157)
	at de.hybris.platform.catalog.jalo.synchronization.ItemCopyCreator.doCopyInTx(ItemCopyCreator.java:395)
	at de.hybris.platform.catalog.jalo.synchronization.ItemCopyCreator.copy(ItemCopyCreator.java:246)
	at de.hybris.platform.catalog.jalo.synchronization.GenericCatalogCopyContext.copy(GenericCatalogCopyContext.java:2337)
	at de.hybris.platform.catalog.jalo.synchronization.CatalogVersionSyncCopyContext.copy(CatalogVersionSyncCopyContext.java:533)
	at de.hybris.platform.catalog.jalo.synchronization.GenericCatalogCopyContext.copy(GenericCatalogCopyContext.java:2262)
	at de.hybris.platform.catalog.jalo.synchronization.CatalogVersionSyncWorker.copyItem(CatalogVersionSyncWorker.java:189)
	at de.hybris.platform.catalog.jalo.synchronization.CatalogVersionSyncWorker.doSynchronization(CatalogVersionSyncWorker.java:160)
	at de.hybris.platform.catalog.jalo.synchronization.CatalogVersionSyncWorker$1.run(CatalogVersionSyncWorker.java:123)
	at de.hybris.platform.catalog.jalo.synchronization.CatalogVersionSyncMaster.runExclusiveIfNecessary(CatalogVersionSyncMaster.java:306)
	at de.hybris.platform.catalog.jalo.synchronization.CatalogVersionSyncWorker.run(CatalogVersionSyncWorker.java:96)
	at java.lang.Thread.run(Thread.java:748)
	at de.hybris.platform.core.threadregistry.RegistrableThread.internalRun(RegistrableThread.java:144)
	at de.hybris.platform.catalog.jalo.synchronization.CatalogVersionSyncWorkerThread.internalRun(CatalogVersionSyncWorkerThread.java:78)
	at de.hybris.platform.core.threadregistry.RegistrableThread.run(RegistrableThread.java:134)
Caused by: item 8796135949362 no longer valid (was removed): object no longer valid
	at de.hybris.platform.jalo.Item$CachedGetter.get(Item.java:697)
	at de.hybris.platform.jalo.Item$CachedGetter.get(Item.java:690)
	at de.hybris.platform.jalo.Item.getPersistenceVersion(Item.java:1584)
	at de.hybris.platform.servicelayer.internal.model.impl.JaloPersistenceObject.getPersistenceVersion(JaloPersistenceObject.java:68)
	at de.hybris.platform.servicelayer.internal.converter.impl.ItemModelConverter.load(ItemModelConverter.java:484)
	at de.hybris.platform.servicelayer.internal.converter.impl.ItemModelConverter.load(ItemModelConverter.java:1)
	at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.doLoad(DefaultModelService.java:976)
	at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.get(DefaultModelService.java:284)
	at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.getModelForPersistentValue(DefaultModelService.java:1023)
	at de.hybris.platform.servicelayer.internal.model.impl.AbstractModelService.toModelLayer(AbstractModelService.java:94)
	at de.hybris.platform.servicelayer.internal.model.impl.AbstractModelService.toModelLayer(AbstractModelService.java:69)
	at de.hybris.platform.catalog.synchronization.ServiceLayerSynchronizationPersistenceAdapter.setModelValue(ServiceLayerSynchronizationPersistenceAdapter.java:449)
	at de.hybris.platform.catalog.synchronization.ServiceLayerSynchronizationPersistenceAdapter.setModelValue(ServiceLayerSynchronizationPersistenceAdapter.java:424)
	at de.hybris.platform.catalog.synchronization.ServiceLayerSynchronizationPersistenceAdapter.setModelValues(ServiceLayerSynchronizationPersistenceAdapter.java:392)
	at de.hybris.platform.catalog.synchronization.ServiceLayerSynchronizationPersistenceAdapter.access$2(ServiceLayerSynchronizationPersistenceAdapter.java:381)
	at de.hybris.platform.catalog.synchronization.ServiceLayerSynchronizationPersistenceAdapter$4.executeWithoutResult(ServiceLayerSynchronizationPersistenceAdapter.java:367)
	at de.hybris.platform.servicelayer.session.SessionExecutionBody.execute(SessionExecutionBody.java:28)
	at de.hybris.platform.servicelayer.session.impl.DefaultSessionService.executeInLocalView(DefaultSessionService.java:89)
	at de.hybris.platform.catalog.synchronization.ServiceLayerSynchronizationPersistenceAdapter.doUpdate(ServiceLayerSynchronizationPersistenceAdapter.java:360)
	... 24 more
[SyncWorker<000000AX 8 of 16>] [CatalogVersionSyncMaster]  Got error from worker SyncWorker<000000AX 8 of 16> errorText is: Caught unexpected error item 8796812247659 no longer valid (was removed): object no longer valid synchronizing <8796126282802->null [] deadlock(false)>
item 8796812247659 no longer valid (was removed): object no longer valid
	at de.hybris.platform.jalo.Item$CachedGetter.get(Item.java:697)
	at de.hybris.platform.jalo.ExtensibleItem.getProperty(ExtensibleItem.java:363)
	at de.hybris.platform.catalog.jalo.GeneratedItemSyncTimestamp.getTargetItem(GeneratedItemSyncTimestamp.java:491)
	at de.hybris.platform.catalog.jalo.GeneratedItemSyncTimestamp.getTargetItem(GeneratedItemSyncTimestamp.java:500)
	at de.hybris.platform.catalog.jalo.synchronization.GenericCatalogCopyContext.processQueryResult(GenericCatalogCopyContext.java:1703)
	at de.hybris.platform.catalog.jalo.synchronization.GenericCatalogCopyContext.queryCatalogItemCopy(GenericCatalogCopyContext.java:1570)
	at de.hybris.platform.catalog.jalo.synchronization.GenericCatalogCopyContext.queryCopy(GenericCatalogCopyContext.java:1488)
	at de.hybris.platform.catalog.jalo.synchronization.GenericCatalogCopyContext.getCopy(GenericCatalogCopyContext.java:1466)
	at de.hybris.platform.catalog.jalo.synchronization.CatalogVersionSyncCopyContext.getCopy(CatalogVersionSyncCopyContext.java:494)
	at de.hybris.platform.catalog.jalo.synchronization.GenericCatalogCopyContext.copy(GenericCatalogCopyContext.java:2287)
	at de.hybris.platform.catalog.jalo.synchronization.CatalogVersionSyncCopyContext.copy(CatalogVersionSyncCopyContext.java:533)
	at de.hybris.platform.catalog.jalo.synchronization.GenericCatalogCopyContext.copy(GenericCatalogCopyContext.java:2262)
	at de.hybris.platform.catalog.jalo.synchronization.CatalogVersionSyncWorker.copyItem(CatalogVersionSyncWorker.java:189)
	at de.hybris.platform.catalog.jalo.synchronization.CatalogVersionSyncWorker.doSynchronization(CatalogVersionSyncWorker.java:160)
	at de.hybris.platform.catalog.jalo.synchronization.CatalogVersionSyncWorker$1.run(CatalogVersionSyncWorker.java:123)
	at de.hybris.platform.catalog.jalo.synchronization.CatalogVersionSyncMaster.runExclusiveIfNecessary(CatalogVersionSyncMaster.java:306)
	at de.hybris.platform.catalog.jalo.synchronization.CatalogVersionSyncWorker.run(CatalogVersionSyncWorker.java:96)
	at java.lang.Thread.run(Thread.java:748)
	at de.hybris.platform.core.threadregistry.RegistrableThread.internalRun(RegistrableThread.java:144)
	at de.hybris.platform.catalog.jalo.synchronization.CatalogVersionSyncWorkerThread.internalRun(CatalogVersionSyncWorkerThread.java:78)
	at de.hybris.platform.core.threadregistry.RegistrableThread.run(RegistrableThread.java:134)
 

The error is reproducible if I increase the number of sync workers to >= 16. (catalog.sync.workers property). The errors reported are always related to AbstractRestriction. In the end the restrictions are synced correctly even with the errors reported in the logs.

Disabling the sync of components from the AbstractRestriction side solves the errors:

UPDATE SyncAttributeDescriptorConfig; syncJob(code)[unique = true][path-delimiter = !]; attributeDescriptor(qualifier, enclosingType(code))[unique = true]; includedInSync; copyByValue
; sync $contentCatalog:Staged->Online ; components:AbstractRestriction ; false ; false

Accepted Solutions (0)

Answers (0)