-
Type: Bug
-
Status: Resolved
-
Priority: Minor
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: 10.10-HF57, 2021.15
-
Component/s: Core DBS
-
Team:PLATFORM
-
Sprint:nxplatform #52
Proxies of DBS transient documents will always be fetched/updated when calling consecutively CoreSession#save in the same transaction.
To reproduce the issues, export a container as zip in Nuxeo UI.
The problem is due to updateDenormalizedState which always updates the blob keys which makes the document dirty. See below
markDirty:83, DBSDocumentState (org.nuxeo.ecm.core.storage.dbs) put:148, DBSDocumentState (org.nuxeo.ecm.core.storage.dbs) computeBlobKeys:1181, DBSTransactionState (org.nuxeo.ecm.core.storage.dbs) updateDenormalizedState:1168, DBSTransactionState (org.nuxeo.ecm.core.storage.dbs) save:893, DBSTransactionState (org.nuxeo.ecm.core.storage.dbs) save:232, DBSSession (org.nuxeo.ecm.core.storage.dbs) save:1585, AbstractSession (org.nuxeo.ecm.core.api) close:195, OperationContext (org.nuxeo.ecm.automation) render:99, AutomationRenderer (org.nuxeo.ecm.platform.rendition.extension) render:78, DefaultAutomationRenditionProvider (org.nuxeo.ecm.platform.rendition.extension) computeRenditionBlobs:62, LiveRendition (org.nuxeo.ecm.platform.rendition.impl) getBlobs:60, LazyRendition (org.nuxeo.ecm.platform.rendition.impl) getBlob:50, LazyRendition (org.nuxeo.ecm.platform.rendition.impl) getDefaultRendition:112, GetContainerRendition (org.nuxeo.ecm.platform.rendition.operation) getFolderishBlobs:132, GetContainerRendition (org.nuxeo.ecm.platform.rendition.operation) processContainer:150, GetContainerRendition (org.nuxeo.ecm.platform.rendition.operation) getDefaultRendition:108, GetContainerRendition (org.nuxeo.ecm.platform.rendition.operation) getFolderishBlobs:132, GetContainerRendition (org.nuxeo.ecm.platform.rendition.operation) processContainer:150, GetContainerRendition (org.nuxeo.ecm.platform.rendition.operation) run:162, GetContainerRendition (org.nuxeo.ecm.platform.rendition.operation) invoke0:-1, NativeMethodAccessorImpl (jdk.internal.reflect) invoke:62, NativeMethodAccessorImpl (jdk.internal.reflect) invoke:43, DelegatingMethodAccessorImpl (jdk.internal.reflect) invoke:566, Method (java.lang.reflect) doInvoke:175, InvokableMethod (org.nuxeo.ecm.automation.core.impl) invoke:180, InvokableMethod (org.nuxeo.ecm.automation.core.impl) invoke:147, OperationChainCompiler$OperationMethod (org.nuxeo.ecm.automation.core.impl) invoke:154, OperationChainCompiler$OperationMethod (org.nuxeo.ecm.automation.core.impl) lambda$invoke$0:212, OperationChainCompiler$CompiledChainImpl (org.nuxeo.ecm.automation.core.impl) call:-1, 219452473 (org.nuxeo.ecm.automation.core.impl.OperationChainCompiler$CompiledChainImpl$$Lambda$1649) call:314, OperationContext (org.nuxeo.ecm.automation) callWithChainParameters:279, OperationContext (org.nuxeo.ecm.automation) invoke:209, OperationChainCompiler$CompiledChainImpl (org.nuxeo.ecm.automation.core.impl) run:115, OperationServiceImpl (org.nuxeo.ecm.automation.core.impl) run:91, OperationServiceImpl (org.nuxeo.ecm.automation.core.impl) render:89, AutomationRenderer (org.nuxeo.ecm.platform.rendition.extension) render:78, DefaultAutomationRenditionProvider (org.nuxeo.ecm.platform.rendition.extension) computeRenditionBlobs:62, LiveRendition (org.nuxeo.ecm.platform.rendition.impl) getBlobs:60, LazyRendition (org.nuxeo.ecm.platform.rendition.impl) getBlob:50, LazyRendition (org.nuxeo.ecm.platform.rendition.impl) getBlob:60, DownloadBlobHolder (org.nuxeo.ecm.platform.rendition.adapter) resolveBlob:829, DownloadServiceImpl (org.nuxeo.ecm.core.io.download)
But the dirty flag is not reset because there's no real change on the document.
This will trigger the proxy update on the next Session#save calls.
- is related to
-
NXP-29516 Allow efficient search by blob key
- Resolved
- Is referenced in