Project

General

Profile

Actions

Bug #11626

closed

fprintf in c extension keep adding memory usage

Added by ygc (GC Yang) over 8 years ago. Updated over 8 years ago.

Status:
Rejected
Assignee:
-
Target version:
-
[ruby-core:71231]

Description

fprintf will keep adding memory usage without releasing it.

I was doing it in rails console, not sure if it makes any different. The code like this:

VALUE leak (VALUE self, VALUE in) {
  char *str = StringValuePtr(in);
  char *pstr;
  pstr = malloc (10240);
  strcat(pstr,str);
  fprintf (stdout, pstr);
  self = rb_str_new_cstr(pstr);
  free (pstr);
  return self;
}

void Init_extension(){
  rb_define_global_function("leak", leak, 1);
}
100000000.times{leak("lots of garbage")}

without the fprintf line the memory usage is normal, adding that line just keep adding memory, kill the console process will release the memory.

If I do 100000.times{Process.wait(fork{ stuff})}, memory also looks normal. Leaking somewhere????

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0