Hello, This is clearly a bug of ocaml-ssl. Here is a minimal reproducer:
let () = Ssl_threads.init (); Ssl.init (); ignore (Ssl.create_context Ssl.TLSv1 Ssl.Client_context); Gc.compact (); () Compile with: ocamlfind ocamlopt -linkpkg -thread -package ssl q.ml -o q After looking at backtrace the cause is obvious: #0 0xb774f424 in __kernel_vsyscall () #1 0xb7585f7f in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i686/cmov/libpthread.so.0 #2 0x0805da39 in caml_thread_leave_blocking_section () #3 0x0806405b in caml_leave_blocking_section () #4 0x0805c7af in locking_function () #5 0xb76279f5 in CRYPTO_lock () from /usr/lib/i686/cmov/libcrypto.so.0.9.8 #6 0xb7627a96 in CRYPTO_add_lock () from /usr/lib/i686/cmov/libcrypto.so.0.9.8 #7 0xb75c9397 in SSL_CTX_free () from /usr/lib/i686/cmov/libssl.so.0.9.8 #8 0x0805c490 in finalize_ctx () #9 0x08065524 in sweep_slice () #10 0x080655cc in caml_finish_major_cycle () #11 0x0806dd3d in caml_gc_compaction () #12 0x0804d421 in camlQ__entry () #13 0x00000001 in ?? () #14 0x0804cc8d in caml_program () #15 0x08071802 in caml_start_program () #16 0x00000000 in ?? () The ocaml runtime lock is not recursive and reacquiring it from the finalizer is not the good idea :) -- ygrek http://ygrek.org.ua/ -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org