diff --git a/.changesets/fix-ffi-arguments-for-free-functions.md b/.changesets/fix-ffi-arguments-for-free-functions.md new file mode 100644 index 000000000..986ad18d6 --- /dev/null +++ b/.changesets/fix-ffi-arguments-for-free-functions.md @@ -0,0 +1,6 @@ +--- +bump: "patch" +type: "fix" +--- + +Fix FFI function calls missing arguments for `appsignal_free_transaction` and `appsignal_free_data` extension functions. This fixes a high CPU issue when these function calls would be retried indefinitely. diff --git a/lib/appsignal/extension/jruby.rb b/lib/appsignal/extension/jruby.rb index e7ef37165..5f9f8141b 100644 --- a/lib/appsignal/extension/jruby.rb +++ b/lib/appsignal/extension/jruby.rb @@ -83,7 +83,7 @@ def self.lib_extension # Transaction methods attach_function :appsignal_free_transaction, - [], + [:pointer], :void attach_function :appsignal_start_transaction, [:appsignal_string, :appsignal_string, :long], @@ -191,7 +191,7 @@ def self.lib_extension :void # Data struct methods - attach_function :appsignal_free_data, [], :void + attach_function :appsignal_free_data, [:pointer], :void attach_function :appsignal_data_map_new, [], :pointer attach_function :appsignal_data_array_new, [], :pointer attach_function :appsignal_data_map_set_string,