Skip to content

Marshal + Domain leads to a memory leak #11548

@EduardoRFS

Description

@EduardoRFS

The code below leaks memory when running on OCaml 5 trunk, but by not starting the domain it stops leaking memory.

let _domain =
  Domain.spawn (fun () ->
      let rec loop () = loop () in
      loop ())

let big_list = List.init 10_000_000 (fun n -> n)

let rec loop chain =
  let _ = Marshal.to_string big_list [] in
  loop chain

let () = print_endline "starting"
let () = loop ()

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions