[Libguestfs] [PATCH libguestfs 1/2] ocaml/implicit_close test: collect all currently unreachable blocks

Laszlo Ersek lersek at redhat.com
Wed May 31 10:32:49 UTC 2023


On 5/31/23 11:12, Richard W.M. Jones wrote:
> On Sat, May 27, 2023 at 03:32:36PM +0200, Jürgen Hötzel wrote:
>> Fixes failing implice_close test on OCaml 5.
>> ---
>>  ocaml/t/guestfs_065_implicit_close.ml | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/ocaml/t/guestfs_065_implicit_close.ml b/ocaml/t/guestfs_065_implicit_close.ml
>> index 567e550b4..5e00c21ac 100644
>> --- a/ocaml/t/guestfs_065_implicit_close.ml
>> +++ b/ocaml/t/guestfs_065_implicit_close.ml
>> @@ -30,8 +30,8 @@ let () =
>>   *)
>>  
>>  (* This should cause the GC to close the handle. *)
>> -let () = Gc.compact ()
>> +let () = Gc.full_major ()
>>  
>>  let () = assert  (!close_invoked = 1)
>>  
>> -let () = Gc.compact ()
>> +let () = Gc.full_major ()
> 
> I don't understand this patch at all.  If there a test failing we need
> to diagnose why it is failing, not paper over the symptoms.
> 
> What is the exact failure?

Well my assumption is that (a) we need to force a garbage collection for
the (unreachable) handle to be closed actually (from earlier, nothing
new regarding that), but (b) with OCaml 5, "compact" is not strong
enough for that, while "full_major" is. Whether that means OCaml 5
changed the semantics of these functions, or that even with OCaml 4
we've only (consistently) lucky with "compact", I can't tell.

Laszlo



More information about the Libguestfs mailing list