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

Reply via email to