Hi Anton, Thanks for your reply.
Backtrace of the blocked thread is as follows: # ChildEBP RetAddr Args to Child 00 03ac83bc 7c59a072 00000304 00000000 00000000 ntdll!ZwWaitForSingleObject+0xb (FPO: [3,0,0]) 01 03ac83e4 7c57b3e9 00000304 ffffffff 00000000 KERNEL32!WaitForSingleObjectEx+0x71 (FPO: [Non-Fpo]) 02 03ac83f4 30036d02 00000304 ffffffff 0137d9de KERNEL32!WaitForSingleObject+0xf (FPO: [2,0,0]) 03 03ac841c 30038399 0229ae50 ffffffff 00000001 libobnspr4!_PR_MD_WAIT(struct PRThread * thread = 0x0229ae50, unsigned int ticks = 0xffffffff)+0x72 (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\nsprpub\pr\src\md\windows\ntio.c @ 528] 04 03ac8430 30039c71 0229ae50 ffffffff 0229ae50 libobnspr4!_NT_IO_WAIT(struct PRThread * thread = 0x0229ae50, unsigned int timeout = 0xffffffff)+0xe9 (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\nsprpub\pr\src\md\windows\ntio.c @ 743] 05 03ac8454 30026cac 04a70138 04b2377c 00000005 libobnspr4!_PR_MD_RECV(struct PRFileDesc * fd = 0x04a70138, void * buf = 0x04b2377c, int amount = 5, int flags = 0, unsigned int timeout = 0xffffffff)+0x2f1 (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\nsprpub\pr\src\md\windows\ntio.c @ 1756] 06 03ac847c 30008286 04a70138 04b2377c 00000005 libobnspr4!SocketRecv(struct PRFileDesc * fd = 0x04a70138, void * buf = 0x04b2377c, int amount = 5, int flags = 0, unsigned int timeout = 0xffffffff)+0x27c (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\nsprpub\pr\src\io\prsocket.c @ 638] 07 03ac8498 0137d935 04b23a70 04b2377c 00000005 libobnspr4!pl_DefRecv(struct PRFileDesc * fd = 0x04b23a70, void * buf = 0x04b2377c, int amount = 5, int flags = 0, unsigned int timeout = 0xffffffff)+0x66 (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\nsprpub\pr\src\io\prlayer.c @ 277] 08 03ac84c0 01374e70 04b23598 04b2377c 00000005 obssl3!ssl_DefRecv(struct sslSocketStr * ss = 0x04b23598, unsigned char * buf = 0x04b2377c "", int len = 5, int flags = 0)+0x33 (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\security\nss\lib\ssl\ssldef.c @ 91] 09 03ac84f4 01374cad 04b23598 04b2373c 00000000 obssl3!ssl3_GatherData(struct sslSocketStr * ss = 0x04b23598, struct sslGatherStr * gs = 0x04b2373c, int flags = 0)+0xf6 (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\security\nss\lib\ssl\ssl3gthr.c @ 87] 0a 03ac8518 01375fb5 04b23598 00000000 04b23598 obssl3!ssl3_GatherCompleteHandshake(struct sslSocketStr * ss = 0x04b23598, int flags = 0)+0x4d (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\security\nss\lib\ssl\ssl3gthr.c @ 192] 0b 03ac852c 0138008f 04b23598 00000000 00000001 obssl3!ssl_GatherRecord1stHandshake(struct sslSocketStr * ss = 0x04b23598)+0x62 (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\security\nss\lib\ssl\sslcon.c @ 1256] 0c 03ac8540 013818e2 04b23598 00000000 03ac8570 obssl3!ssl_Do1stHandshake(struct sslSocketStr * ss = 0x04b23598)+0x1ef (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\security\nss\lib\ssl\sslsecur.c @ 145] 0d 03ac8550 0138730b 04b23598 04b18504 0000002c obssl3!ssl_SecureSend(struct sslSocketStr * ss = 0x04b23598, unsigned char * buf = 0x04b18504 "0*???", int len = 44, int flags = 0)+0x184 (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\security\nss\lib\ssl\sslsecur.c @ 1024] 0e 03ac8570 300063bf 04b14928 04b18504 0000002c obssl3!ssl_Send(struct PRFileDesc * fd = 0x04b14928, void * buf = 0x04b18504, int len = 44, int flags = 0, unsigned int timeout = 0xffffffff)+0xa5 (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\security\nss\lib\ssl\sslsock.c @ 1222] 0f 03ac858c 00281562 04b14928 04b18504 0000002c libobnspr4!PR_Send(struct PRFileDesc * fd = 0x04b14928, void * buf = 0x04b18504, int amount = 44, int flags = 0, unsigned int timeout = 0xffffffff)+0x1f (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\nsprpub\pr\src\io\priometh.c @ 221] 10 03ac85ac 10030e45 00000001 04b18504 0000002c OBNSLDAPPR32V50!prldap_write(int s = 1, void * buf = 0x04b18504, int len = 44, struct lextiof_socket_private * socketarg = 0x04b18930)+0x32 (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\directory\c-sdk\ldap\libraries\libprldap\ldappr-io.c @ 210] 11 03ac8628 1001be5c 04a6ff60 04b183e0 00000000 OBNSLDAP32V50!ber_flush(struct sockbuf * sb = 0x04a6ff60, struct berelement * ber = 0x04b183e0, int freeit = 0)+0x205 (FPO: [Non-Fpo]) (CONV: stdcall) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\directory\c-sdk\ldap\libraries\liblber\io.c @ 417] 12 03ac8650 1001b676 04a6fd80 04a6ff60 04b183e0 OBNSLDAP32V50!nsldapi_send_ber_message(struct ldap * ld = 0x04a6fd80, struct sockbuf * sb = 0x04a6ff60, struct berelement * ber = 0x04b183e0, int freeit = 0)+0x6c (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\directory\c-sdk\ldap\libraries\libldap\request.c @ 399] 13 03ac8880 1001aabf 04a6fd80 04b183e0 00000001 OBNSLDAP32V50!nsldapi_send_server_request(struct ldap * ld = 0x04a6fd80, struct berelement * ber = 0x04b183e0, int msgid = 1, struct ldapreq * parentreq = 0x00000000, struct ldap_server * srvlist = 0x00000000, struct ldap_conn * lc = 0x04b281c0, char * bindreqdn = 0x04b23b78 "cn=Directory Manager", int bind = 0)+0xb86 (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\directory\c-sdk\ldap\libraries\libldap\request.c @ 334] 14 03ac89b0 1002442b 04a6fd80 00000001 00000060 OBNSLDAP32V50!nsldapi_send_initial_request(struct ldap * ld = 0x04a6fd80, int msgid = 1, unsigned long msgtype = 0x60, char * dn = 0x04b27ca8 "cn=Directory Manager", struct berelement * ber = 0x04b183e0)+0x6f (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\directory\c-sdk\ldap\libraries\libldap\request.c @ 148] 15 03ac89e4 10023fdd 04a6fd80 04b27ca8 04b27cf0 OBNSLDAP32V50!simple_bind_nolock(struct ldap * ld = 0x04a6fd80, char * dn = 0x04b27ca8 "cn=Directory Manager", char * passwd = 0x04b27cf0 "oblixoblix", int unlock_permitted = 1)+0x41b (FPO: [Non-Fpo]) (CONV: cdecl) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\directory\c-sdk\ldap\libraries\libldap\sbind.c @ 150] 16 03ac8b04 006cd518 04a6fd80 04b27ca8 04b27cf0 OBNSLDAP32V50!ldap_simple_bind(struct ldap * ld = 0x04a6fd80, char * dn = 0x04b27ca8 "cn=Directory Manager", char * passwd = 0x04b27cf0 "oblixoblix")+0x5d (FPO: [Non-Fpo]) (CONV: stdcall) [j:\sdk\mozilla\source\mozilla_new_home\ldapsdkcode\mozilla\directory\c-sdk\ldap\libraries\libldap\sbind.c @ 79] 17 03aca728 006ec1c1 04a6fd80 02292050 02292164 ois_server_d!LDAPSimpleBind(struct ldap * masterHandle = 0x04a6fd80, char * login = 0x02292050 "cn=Directory Manager", char * passwd = 0x02292164 "oblixoblix")+0x352 (FPO: [Non-Fpo]) (CONV: cdecl) [d:\p4\coreid\np_common\db\ldap\util\ldap_util3.cpp @ 504] 18 03acd2cc 00b3cef7 04a6fd80 02292050 02292164 ois_server_d!LDAPAsyncSimpleBind(struct ldap * ld = 0x04a6fd80, char * login = 0x02292050 "cn=Directory Manager", char * passwd = 0x02292164 "oblixoblix", struct ldapcontrol *** serverCtrls = 0x00000000, long timeout = -2)+0x13e (FPO: [Non-Fpo]) (CONV: cdecl) [d:\p4\coreid\np_common\db\ldap\util\ldap_util3.cpp @ 2968] 19 03ade454 005e301c 00000000 03adfb74 03ade878 ois_server_d!LDAPConnectionManager::_CreateAndOpenConnection(bool bSetup = false)+0x4b27 (FPO: [Non-Fpo]) (CONV: thiscall) [d:\p4\coreid\np_common\db\connection\ldap\ldap_connection_mngr.cpp @ 384] 1a 03ade870 005e729a 03adff78 cccccccc 0382ef80 ois_server_d!DBConnectionManager::PollLDAPServer(void)+0x6d (FPO: [Non-Fpo]) (CONV: thiscall) [d:\p4\coreid\np_common\db\utils\db_connection_mngr.cpp @ 482] 1b 03adfb84 005e6366 cccccccc cccccccc 0382ef80 ois_server_d!ConnectionWatcherThread::DoHeartBeat(void)+0x35a (FPO: [Non-Fpo]) (CONV: thiscall) [d:\p4\coreid\np_common\db\utils\db_failover.cpp @ 614] 1c 03adff88 0041919b cccccccc cccccccc 0382ef80 ois_server_d!ConnectionWatcherThread::Run(void)+0x232 (FPO: [Non-Fpo]) (CONV: thiscall) [d:\p4\coreid\np_common\db\utils\db_failover.cpp @ 406] 1d 03adffb4 7c57b396 0382ef80 cccccccc cccccccc ois_server_d!ObThread::ThreadFunc(void * arg = 0x0382ef80)+0x5d (FPO: [Non-Fpo]) (CONV: stdcall) [d:\p4\coreid\np_common\util\base\obthread.cpp @ 736] Can you infer any information from the above? As per my understanding, the LDAP_X_OPT_CONNECT_TIMEOUT parameter in LDAP connection handle is used by LDAP server, but not by LDAP client (Mozilla C SDK). So, Mozilla SDK client should return from the asynchronous request made (it should not block), irrespective of LDAP_X_OPT_CONNECT_TIMEOUT parameter in connection handle. Thanks again in advance, Ramakrishna. ------------------------------ Anton Bobrov wrote: > you gonna have to elaborate on "hang/block" thing ie if you attach > debugger to it and do a backtrace where is it at ? do you set any > timeout values properly like LDAP_X_OPT_CONNECT_TIMEOUT etc ? > > RamaKrishna Narla wrote: > > Hi, > > > > We are using Mozilla LDAP C SDK 5.12 in our application. We are > > currently switching from synchronous calls to asynchronous calls. > > > > When Directory Server hangs, it is known that clients using synchronous > > calls like ldap_simple_bind_s will hang/block in LDAP SDK calls. > > Ideally, this should not be the behavior with the asynchronous calls > > like ldap_simple_bind. > > > > But, we are observing that when Directory Server hangs, our application > > is blocking in ldap_simple_bind call when connection used is in SSL > > mode. > > Also note that, in the same scenario, our application is not blocking > > when connection is in Open mode. > > Is anybody observed such a behavior? Any insights on this problem are > > welcome. > > > > Thanks in advance, > > Ramakrishna. > > > > _______________________________________________ > > dev-tech-ldap mailing list > > [email protected] > > https://lists.mozilla.org/listinfo/dev-tech-ldap _______________________________________________ dev-tech-ldap mailing list [email protected] https://lists.mozilla.org/listinfo/dev-tech-ldap
