[Bug 287665] libc/rpc: clnt_vc_create: Do not hold a global mutex during connect

From: <bugzilla-noreply_at_freebsd.org>
Date: Thu, 19 Jun 2025 21:14:00 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=287665

            Bug ID: 287665
           Summary: libc/rpc: clnt_vc_create: Do not hold a global mutex
                    during connect
           Product: Base System
           Version: CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: bin
          Assignee: bugs@FreeBSD.org
          Reporter: pfg@FreeBSD.org

Created attachment 261417
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=261417&action=edit
Don't hold a mutex when connecting

A multi-threaded application, connecting to multiple rpc servers,
may dead lock if the connect call stalls on a non responsive server.

That's why the kind linux tirpc guys have these two changes in their system
(under a 3 clause BSD license, since the code is derived from FreeBSD):

http://git.linux-nfs.org/?p=steved/libtirpc.git;a=commit;h=644b861b01a0b53a9b920e50f68e4f1252000bbd
http://git.linux-nfs.org/?p=steved/libtirpc.git;a=commit;h=45ceae856f314f7367695e81e835ba4b306cd335

I sort of put them together in a patch but its untested.

-- 
You are receiving this mail because:
You are the assignee for the bug.