From aafd57d0034e8267fe4c4a3e7ce76f9dbb349323 Mon Sep 17 00:00:00 2001 From: Venkat Date: Mon, 7 Aug 2017 11:36:58 -0700 Subject: [PATCH] fix: do not close gocql.iter() on error (#302) --- common/persistence/cassandraPersistence.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/common/persistence/cassandraPersistence.go b/common/persistence/cassandraPersistence.go index 8e38efdd99e..fea87835f78 100644 --- a/common/persistence/cassandraPersistence.go +++ b/common/persistence/cassandraPersistence.go @@ -713,7 +713,12 @@ func (d *cassandraPersistence) CreateWorkflowExecution(request *CreateWorkflowEx previous := make(map[string]interface{}) applied, iter, err := d.session.MapExecuteBatchCAS(batch, previous) - defer iter.Close() + defer func() { + if iter != nil { + iter.Close() + } + }() + if err != nil { if isTimeoutError(err) { // Write may have succeeded, but we don't know @@ -1019,7 +1024,12 @@ func (d *cassandraPersistence) UpdateWorkflowExecution(request *UpdateWorkflowEx previous := make(map[string]interface{}) applied, iter, err := d.session.MapExecuteBatchCAS(batch, previous) - defer iter.Close() + defer func() { + if iter != nil { + iter.Close() + } + }() + if err != nil { if isTimeoutError(err) { // Write may have succeeded, but we don't know