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
> >
>
>

Reply via email to