Return-Path: X-Original-To: apmail-ambari-dev-archive@www.apache.org Delivered-To: apmail-ambari-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2A8B91831E for ; Thu, 17 Dec 2015 13:36:05 +0000 (UTC) Received: (qmail 77884 invoked by uid 500); 17 Dec 2015 13:36:05 -0000 Delivered-To: apmail-ambari-dev-archive@ambari.apache.org Received: (qmail 77850 invoked by uid 500); 17 Dec 2015 13:36:05 -0000 Mailing-List: contact dev-help@ambari.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ambari.apache.org Delivered-To: mailing list dev@ambari.apache.org Received: (qmail 77829 invoked by uid 99); 17 Dec 2015 13:36:04 -0000 Received: from reviews-vm.apache.org (HELO reviews.apache.org) (140.211.11.40) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 17 Dec 2015 13:36:04 +0000 Received: from reviews.apache.org (localhost [127.0.0.1]) by reviews.apache.org (Postfix) with ESMTP id 831642941F6; Thu, 17 Dec 2015 13:36:04 +0000 (UTC) Content-Type: multipart/alternative; boundary="===============2047360255046488126==" MIME-Version: 1.0 Subject: Re: Review Request 41477: Fix stale cluster entity reference which results in merge issues From: "Nate Cole" To: "Myroslav Papirkovskyy" , "Nate Cole" , "Jonathan Hurley" Cc: "Sid Wagle" , "Ambari" Date: Thu, 17 Dec 2015 13:36:04 -0000 Message-ID: <20151217133604.1673.90434@reviews.apache.org> X-ReviewBoard-URL: https://reviews.apache.org/ Auto-Submitted: auto-generated Sender: "Nate Cole" X-ReviewGroup: Ambari X-Auto-Response-Suppress: DR, RN, OOF, AutoReply X-ReviewRequest-URL: https://reviews.apache.org/r/41477/ X-Sender: "Nate Cole" References: <20151217000001.19750.88234@reviews.apache.org> In-Reply-To: <20151217000001.19750.88234@reviews.apache.org> Reply-To: "Nate Cole" X-ReviewRequest-Repository: ambari --===============2047360255046488126== MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/41477/#review110954 ----------------------------------------------------------- I would say that if we're going to do this, then it should be to remove the member variable completely for getters and setters. Keeping them around in memory is what gets us into trouble. Any other classes where we follow this (anti)pattern? - Nate Cole On Dec. 16, 2015, 7 p.m., Sid Wagle wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/41477/ > ----------------------------------------------------------- > > (Updated Dec. 16, 2015, 7 p.m.) > > > Review request for Ambari, Jonathan Hurley, Myroslav Papirkovskyy, and Nate Cole. > > > Bugs: AMBARI-14411 > https://issues.apache.org/jira/browse/AMBARI-14411 > > > Repository: ambari > > > Description > ------- > > *Preliminary patch* > > Symptom: > > {code} > Local Exception Stack: > Exception [EclipseLink-6004] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.QueryException > Exception Description: The object [org.apache.ambari.server.orm.entities.ClusterConfigEntity@3646b3a8], of class [class org.apache.ambari.server.orm.entities.ClusterConfigEntity], with identity hashcode (System.identityHashCode()) [364,075,546], > is not from this UnitOfWork object space, but the parent session's. The object was never registered in this UnitOfWork, > but read from the parent session and related to an object registered in the UnitOfWork. Ensure that you are correctly > registering your objects. If you are still having problems, you can use the UnitOfWork.validateObjectSpace() method to > help debug where the error occurred. For more information, see the manual or FAQ. > at org.eclipse.persistence.exceptions.QueryException.backupCloneIsOriginalFromParent(QueryException.java:298) > at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.getBackupClone(UnitOfWorkImpl.java:1995) > at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerExistingObject(UnitOfWorkImpl.java:3976) > at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerExistingObject(UnitOfWorkImpl.java:3894) > at org.eclipse.persistence.mappings.CollectionMapping.buildElementUnitOfWorkClone(CollectionMapping.java:308) > at org.eclipse.persistence.mappings.CollectionMapping.buildElementClone(CollectionMapping.java:321) > at org.eclipse.persistence.internal.queries.ContainerPolicy.addNextValueFromIteratorInto(ContainerPolicy.java:217) > {code} > > Likely Cause: > Stale clusterEntity reference points to a detached entity which gets tried to be merged, the Cascaded relationship throws the error on persist. > > > Diffs > ----- > > ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java 46dbe01 > > Diff: https://reviews.apache.org/r/41477/diff/ > > > Testing > ------- > > Unit testing in progress. > > > Thanks, > > Sid Wagle > > --===============2047360255046488126==--