Skip to content

Commit

Permalink
Fix memory leaks in functions part 1 (#2066) (#2089)
Browse files Browse the repository at this point in the history
Fixing memory leaks in functions due to contexts not clearing out
the memory soon enough.

Background: Destroying a context will free up its associated memory.
However, before that happens, a process can still accumulate a lot of
memory working on large data sets if it expects the context free to do
it for it. For example, when PG does quicksort the context isn't
destroyed until after the qs has finished. This can cause memory to be
exhausted.

Put in more aggressive freeing of memory. However, there are a lot of
areas that need this applied. So, this is part 1 of at least 3 or 4
parts.

Worked mainly on `agtype.c` However, dealt with linked functions in
other files.

    modified:   src/backend/utils/adt/age_vle.c
    modified:   src/backend/utils/adt/agtype.c
    modified:   src/backend/utils/adt/agtype_util.c
    modified:   src/include/utils/agtype.h

Resolved Conflicts:
	src/backend/utils/adt/agtype.c
  • Loading branch information
jrgemignani authored Sep 9, 2024
1 parent 99e05ee commit c01e745
Show file tree
Hide file tree
Showing 4 changed files with 328 additions and 98 deletions.
1 change: 0 additions & 1 deletion src/backend/utils/adt/age_vle.c
Original file line number Diff line number Diff line change
Expand Up @@ -2102,7 +2102,6 @@ agtype_value *agtv_materialize_vle_edges(agtype *agt_arg_vpc)
/* build the AGTV_ARRAY of edges from the VLE_path_container */
agtv_array = build_edge_list(vpc);

/* convert the agtype_value to agtype and return it */
return agtv_array;

}
Expand Down
Loading

0 comments on commit c01e745

Please sign in to comment.