Fix memory leak because fix memory expansion
This commit is contained in:
		| @ -362,7 +362,16 @@ int ObGroupLookupOp::set_lookup_scan_group(int64_t group_id) | ||||
|   return ret; | ||||
| } | ||||
|  | ||||
|  | ||||
| int ObGroupLookupOp::revert_iter() | ||||
| { | ||||
|   int ret = OB_SUCCESS; | ||||
|   if (OB_FAIL(ObLocalIndexLookupOp::revert_iter())) { | ||||
|     LOG_WARN("revert ObLocalIndexLookupOp fail",K(ret)); | ||||
|   } else { | ||||
|     group_iter_.reset(); | ||||
|   } | ||||
|   return ret; | ||||
| } | ||||
|  | ||||
| OB_SERIALIZE_MEMBER((ObDASGroupScanOp, ObDASScanOp), iter_, cur_group_idx_, group_size_); | ||||
|  | ||||
|  | ||||
| @ -54,6 +54,8 @@ public: | ||||
|                                    ObExpr *group_id_expr); | ||||
|   virtual int switch_lookup_scan_group() override; | ||||
|   virtual int set_lookup_scan_group(int64_t group_id) override; | ||||
|  | ||||
|   int revert_iter(); | ||||
| public: | ||||
|   ObGroupScanIter group_iter_; | ||||
| }; | ||||
|  | ||||
| @ -1197,6 +1197,7 @@ int ObLocalIndexLookupOp::revert_iter() | ||||
|     LOG_WARN("revert scan iterator failed", K(ret)); | ||||
|   } | ||||
|   //release the memory hold by local index lookup op | ||||
|  | ||||
|   rowkey_iter_ = NULL; | ||||
|   lookup_iter_ = NULL; | ||||
|   scan_param_.destroy_schema_guard(); | ||||
|  | ||||
| @ -39,7 +39,8 @@ int ObGroupResultRows::init(const common::ObIArray<ObExpr *> &exprs, | ||||
|       reuse_alloc_ = new(reuse_alloc_buf_) common::ObArenaAllocator(); | ||||
|       reuse_alloc_->set_attr(attr); | ||||
|     } | ||||
|     rows_ = static_cast<LastDASStoreRow *>(reuse_alloc_->alloc(max_size * sizeof(LastDASStoreRow))); | ||||
|     //rows_ = static_cast<LastDASStoreRow *>(reuse_alloc_->alloc(max_size * sizeof(LastDASStoreRow))); | ||||
|     rows_ = static_cast<LastDASStoreRow *>(das_op_allocator.alloc(max_size * sizeof(LastDASStoreRow))); | ||||
|     if (NULL == rows_) { | ||||
|       ret = OB_ALLOCATE_MEMORY_FAILED; | ||||
|       LOG_WARN("fail to alloc memory", K(max_size), K(ret)); | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 obdev
					obdev