Also I've described exact cause of the problem in this issue https://issues.apache.org/jira/browse/CAY-2801
On Thu, Mar 9, 2023 at 11:25 AM Nikita Timofeev <ntimof...@objectstyle.com> wrote: > > Hi! > > Thanks for the information and even more for the debugging you already did. > There was a commit a bit after 4.2.RC2 was released that could be > related to your problem. > Would be great if you could try it and see if it helps. > > https://github.com/apache/cayenne/commit/53c9408e026d926601baf6e68b9761489c273397 > > On Wed, Mar 8, 2023 at 6:26 PM Henrique Gomes <h...@farol.pt> wrote: > > > > > > Hello, > > > > I want to ask for help debugging an issue: > > > > On January I updated Cayenne from 4.2.RC1 to 4.2.RC2. > > Immediately after that, we had an issue of objects not being persisted to > > the db; an http endpoint on our service accepts a batch of records and > > creates objects to save: > > > > ObjectContext ctx = server.newContext(); > > > > for (Aggregation post : request.getEntries()) { > > > > MyDataObject dbo = ctx.newObject(MyDataObject.class); > > > > dbo.setValueDate(post.getValueDate()); > > > > dbo.setVersion(post.getVersion()); > > > > dbo.setUuid(post.getUuidBytes()); > > > > ... etc ... > > } > > > > try { > > > > ctx.commitChanges(); > > > > > > The endpoint is called with up to 250 items at a time, and we store ~4000 > > on each daily run of that job. > > We found that after the update, a small number, like 2 sometime more, > > records would be missing from the db, but not always. > > > > > > Rolling back seemed to solve the issue. Puzzled, I tried git bisecting > > Cayenne from RC1 to RC2. > > This is was the result: > > > > > > 7bc235f92e2e61d3f4f04d3bebb65a1756d2e092 is the first bad commit > > commit 7bc235f92e2e61d3f4f04d3bebb65a1756d2e092 > > Author: Nikita Timofeev <stari...@gmail.com> > > Date: Mon Nov 21 12:59:45 2022 +0300 > > > > CAY-2777 Reverse relationship is not set with single table inheritance > > > > .../access/flush/DefaultDataDomainFlushAction.java | 3 +- > > .../apache/cayenne/access/flush/EffectiveOpId.java | 2 +- > > .../access/flush/operation/OpIdFactory.java | 113 ++++++++++++++++++ > > .../org/apache/cayenne/map/ObjRelationship.java | 13 +- > > .../java/org/apache/cayenne/ManyToManyJoinIT.java | 27 +++++ > > .../SelfRelationship.java | 28 +++++ > > .../SelfRelationshipSub.java | 28 +++++ > > .../auto/_Author.java | 7 +- > > .../auto/_SelfRelationship.java | 132 > > +++++++++++++++++++++ > > .../auto/_SelfRelationshipSub.java | 91 ++++++++++++++ > > .../auto/_Song.java | 10 +- > > .../relationships-many-to-many-join.map.xml | 37 +++++- > > 12 files changed, 472 insertions(+), 19 deletions(-) > > create mode 100644 > > cayenne-server/src/main/java/org/apache/cayenne/access/flush/operation/OpIdFactory.java > > create mode 100644 > > cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_many_to_many_join/SelfRelationship.java > > create mode 100644 > > cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_many_to_many_join/SelfRelationshipSub.java > > create mode 100644 > > cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_many_to_many_join/auto/_SelfRelationship.java > > create mode 100644 > > cayenne-server/src/test/java/org/apache/cayenne/testdo/relationships_many_to_many_join/auto/_SelfRelationshipSub.java > > > > I also tried reverting this commit on top of RC2 and that also seems to > > have solved it. > > > > The entity is quite simple, no relationships at all. > > The database is MySQL 8. > > The PK is regular mysql generated ID: > > > > <db-attribute name="id" type="BIGINT" isPrimaryKey="true" > > isGenerated="true" isMandatory="true" length="20"/> > > > > I can share more info, code etc, with someone who wants help debugging it, > > but can not expose too much company info here, sorry. > > It is of course possible that the bug is outside Cayenne, on our code, db, > > etc, and somehow only triggered if that commit is present. > > I can not say with 100% certainty that it is an issue with Cayenne. > > > > The issue is sporadic, but quite frequent. If there are any ideas on how I > > can further debug this, do let me know. > > > > Thanks for the attention given, I really would like to get the bottom of > > this. > > > > Kind regards, > > > > Henrique Gomes > > > > > > > > > -- > Best regards, > Nikita Timofeev -- Best regards, Nikita Timofeev