Skip to content

Fix memory leak in the VM assembler#161

Merged
peterzhu2118 merged 1 commit intomasterfrom
pz-vm-assembler-mem-leak
Oct 18, 2021
Merged

Fix memory leak in the VM assembler#161
peterzhu2118 merged 1 commit intomasterfrom
pz-vm-assembler-mem-leak

Conversation

@peterzhu2118
Copy link
Contributor

The vm_assembler_element_t is not freed when the vm_assembler_pool_t is freed. This causes a memory leak to occur.

This script demonstrates the issue.

require "liquid"
require_relative "lib/liquid/c"

1_000_000.times do |i|
  Liquid::Template.parse("{{ value | default: 'None', allow_false: true }}")
end

puts `ps -o rss -p #{$$}`.chomp.split("\n").last.to_i

Before this patch: 124824

After this patch: 31116

@peterzhu2118 peterzhu2118 merged commit 54dc110 into master Oct 18, 2021
@peterzhu2118 peterzhu2118 deleted the pz-vm-assembler-mem-leak branch October 18, 2021 18:16
@shopify-shipit shopify-shipit bot temporarily deployed to rubygems February 8, 2022 20:25 Inactive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants