Resending the Mail, if anyone has looked at it. Thanks RaviPrakash Darbha rdar...@juniper.net<mailto:rdar...@juniper.net>
On May 19, 2016, at 2:06 PM, RaviPrakash Darbha <rdar...@juniper.net<mailto:rdar...@juniper.net>> wrote: Hello Andre I encountered a double lock issue in unp_connectat function. After looking at the code , I think the unp_link_rwlock is being locked once unp_connectat and once again in unp_detach (called from sofree ). Would like to get your opinion on the issue and the fix. Below is the exact call stack. UNP_LINK_WLOCK(); <—————————— 1 st call ….. ….. if (so->so_proto->pr_flags & PR_CONNREQUIRED) { if (so2->so_options & SO_ACCEPTCONN CURVNET_SET(so2->so_vnet); so3 = sonewconn(so2, 0); // Expanding sonewconn { sonewconn { …… soalloc ……. pru_attach ……. if (!(head->so_options & SO_ACCEPTCONN) && ((head->so_proto->pr_protocol != IPPROTO_SCTP) || (head->so_type != SOCK_SEQPACKET))) { ………. sofree(so); /* NB: returns ACCEPT_UNLOCK'ed. */ // Expanding sofree { ……. pru_detach // expanding pru_detach { // Recursive wlock acquiring. UNP_LINK_WLOCK() <—————————— 2nd Call Let me know your thoughts or if you need more information. Thanks ! Thanks RaviPrakash Darbha rdar...@juniper.net<mailto:rdar...@juniper.net> _______________________________________________ freebsd-net@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"