Hi Luca, We are thinking of creating a very sample that reproduces the exception. We are lacking time at the moment, but maybe in the weeks to come.
Cheers, On Tuesday, March 8, 2016 at 9:54:18 PM UTC+1, l.garulli wrote: > > Hi Matthieu, > > You shouldn't have such exception if you have just one thread with no > concurrency, so there should be something in your code. Could you remove > the sensitive data, namely name and value of fields, and post here the > piece of code that gets this exception? > > Best Regards, > > Luca Garulli > Founder & CEO > OrientDB <http://orientdb.com/> > > > On 8 March 2016 at 18:23, matthieu marseille <[email protected] > <javascript:>> wrote: > >> Hi Hung, >> >> Unfortunately I cannot share the code due to project security reasons. >> >> To be more precise, we have a single thread with a *single* connection. >> After further investigations, we are in a part of the code where we have >> the following situation : >> >> 1. A -> B (read : vertex A is linked to B with an edge) >> 2. A&C -> B (now A and C are linked to B with one edge each) >> 3. update of B : this is where the exception is thrown. >> >> Is it clearer ? >> >> >> On Tuesday, March 8, 2016 at 5:02:45 PM UTC+1, Hung Tran wrote: >>> >>> Hi matthieu, >>> >>> What Michela said is exactly right. You will need to find it out, it is >>> not too hard to figure it out. From Studio, you could make a query to check >>> version of that row, your row version in your code should be smaller than >>> the row current version in your database at commit time, that's a reason >>> why you got this exception. >>> >>> With a single thread client, you may have two instances of the same row >>> loaded by different connections in your context, and one of your logic is >>> trying to persist the one with older version. >>> >>> Could you upload a sample code to duplicate the error here? >>> >>> My Best, >>> Hung Tran >>> >>> On Tuesday, March 8, 2016 at 6:47:48 PM UTC+7, matthieu marseille wrote: >>>> >>>> Hi all, >>>> >>>> You'll find attached to this post the full stack trace that we obtain >>>> while we are updating a Vertex in client/server mode, from a >>>> single-threaded client and no concurrent use of the DB (v2.1.10). DB >>>> engine >>>> transactions are turned on. >>>> >>>> Here is just the final exception trace that we got : >>>> >>>> Caused by: >>>> com.orientechnologies.orient.core.exception.OConcurrentModificationException: >>>> >>>> Cannot UPDATE the record #20:0 because the version is not the latest. >>>> Probably you are updating an old record or it has been modified by another >>>> user (db=v12 your=v10) >>>> at >>>> com.orientechnologies.orient.core.conflict.OVersionRecordConflictStrategy.checkVersions(OVersionRecordConflictStrategy.java:55) >>>> at >>>> com.orientechnologies.orient.core.conflict.OVersionRecordConflictStrategy.onUpdate(OVersionRecordConflictStrategy.java:42) >>>> at >>>> com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.checkAndIncrementVersion(OAbstractPaginatedStorage.java:2394) >>>> ... >>>> >>>> On our side, we guess that it might be a "reload" problem in the client >>>> cache. However, we expected not to have such an exception in our very >>>> simple use case. >>>> >>>> -- >> >> --- >> You received this message because you are subscribed to the Google Groups >> "OrientDB" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > -- --- You received this message because you are subscribed to the Google Groups "OrientDB" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
