Yup, definitely a leak as a result of my incomplete understanding of how Hooks work. I'll prepare a patch.
-- Michael Mior [email protected] 2016-11-03 13:45 GMT-04:00 Julian Hyde <[email protected]>: > Michael, > > Coverity flagged a line of code in CassandraSchema as a resource leak. > Coverity noticed Hook.add returns an AutoCloseable, and this never gets > closed. > > It seems to me that if you created 1,000 instances of CassandraSchema, > there would be 1,000 entries on Hook.TRIMMED.handlers, and each would > reference a CassandraSchema, preventing it from being garbage collected. Do > you agree that this is a resource leak? > > Julian > > > > Begin forwarded message: > > > > From: [email protected] > > Subject: New Defects reported by Coverity Scan for Apache Calcite > > Date: November 3, 2016 at 9:18:36 AM PDT > > To: [email protected] > > > > > > Hi, > > > > Please find the latest report on new defect(s) introduced to Apache > Calcite found with Coverity Scan. > > > > 1 new defect(s) introduced to Apache Calcite found with Coverity Scan. > > > > > > New defect(s) Reported-by: Coverity Scan > > Showing 1 of 1 defect(s) > > > > > > ** CID 138163: Resource leaks (RESOURCE_LEAK) > > /cassandra/src/main/java/org/apache/calcite/adapter/ > cassandra/CassandraSchema.java: 115 in org.apache.calcite.adapter. > cassandra.CassandraSchema.<init>(java.lang.String, java.lang.String, > java.lang.String, java.lang.String, org.apache.calcite.schema.SchemaPlus, > java.lang.String)() > > > > > > ____________________________________________________________ > ____________________________________________ > > *** CID 138163: Resource leaks (RESOURCE_LEAK) > > /cassandra/src/main/java/org/apache/calcite/adapter/ > cassandra/CassandraSchema.java: 115 in org.apache.calcite.adapter. > cassandra.CassandraSchema.<init>(java.lang.String, java.lang.String, > java.lang.String, java.lang.String, org.apache.calcite.schema.SchemaPlus, > java.lang.String)() > > 109 } catch (Exception e) { > > 110 throw new RuntimeException(e); > > 111 } > > 112 this.parentSchema = parentSchema; > > 113 this.name = name; > > 114 > >>>> CID 138163: Resource leaks (RESOURCE_LEAK) > >>>> Ignoring resource created by > >>>> "org.apache.calcite.runtime.Hook.TRIMMED.add(this.new > org.apache.calcite.adapter.cassandra.CassandraSchema.1())" leaks it. > > 115 Hook.TRIMMED.add(new Function<RelNode, Void>() { > > 116 public Void apply(RelNode node) { > > 117 CassandraSchema.this.addMaterializedViews(); > > 118 return null; > > 119 } > > 120 }); > > > > > > ____________________________________________________________ > ____________________________________________ > > To view the defects in Coverity Scan visit, > https://u2389337.ct.sendgrid.net/wf/click?upn=08onrYu34A- > 2BWcWUl-2F-2BfV0V05UPxvVjWch-2Bd2MGckcRZSbhom32dlDl11LWEm9n > X1GSvKD3jyAHW-2Fr0-2Bf0CMC8B0U7suqxV3BT15z-2FEszmrI-3D_ > imI2KYNsuEB01fwTN2GgVt7Zng1mYfKawcoWn3RVSCuZY4RTPkfDFQ2sNAlV > Cp7tMcvqqypSsWwh8zcNYzDsMmNS3UsrjeDLb-2B4agAn6wTVvOwTDRmy- > 2BrVeKvN8cOKAiAbrSBU7AdPoWmBEuL6DS34vNxNE-2Fe2fukq3sWSRQ- > 2F6krxur4Xh5yihZQwvT9qmnTKBGGOmZc9difA0b0phBrdQ-3D-3D > > > > To manage Coverity Scan email notifications for "[email protected]", > click https://u2389337.ct.sendgrid.net/wf/click?upn=08onrYu34A- > 2BWcWUl-2F-2BfV0V05UPxvVjWch-2Bd2MGckcRbVDbis712qZDP- > 2FA8y06Nq4BoCAgQyGZbR5Ka-2BtqPkbMIRa0EKakQx2V3qCI3AQ17q > Sid0ChoOurTSf7RECs1gZeliKSiqSYFeQV5NHgws1sYYu5KfGgq-2FqD0AylqtLo7E-3D_ > imI2KYNsuEB01fwTN2GgVt7Zng1mYfKawcoWn3RVSCuZY4RTPkfDFQ2sNAlV > Cp7tDVLIe6k-2FBMuQbxB-2FDFhFvj615xGYQ4yE4-2FBMZZ- > 2F7GzvaPAYEgc6eOv7klwWEDlQ8lCV5wVQzaL3TEXC447UhTTjWjLKV0NDl9 > yrozt6Q-2Fu-2Fjm0ah6BUdAt-2BtEzIVfZK-2BngxhkISn5LRy2BKdbvevNA-3D-3D > > > >
