2020 Apr 22 9:23 AM - edited 2024 Feb 03 5:47 PM
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
Request clarification before answering.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.