DNS server hangs in/after gss_indicate_mechs call on Windows with krb5-1.9 libs

diptivs diptivs at gmail.com
Fri May 10 04:46:29 EDT 2013


Hi,
Any conclusion on this discussion. I am facing the similar problem with
1.9.5. 

My application works fine with 1.5.3 but when I upgraded to 1.9.5 then the
thread making a call to "gss_accept_sec_context" is hanging. 

The hang is at:
File: src/include/k5-thread.h
Function: 
static inline int k5_os_mutex_lock(k5_os_mutex *m)
{
...
    res = *WaitForSingleObject*(m->h, INFINITE);
...
}




When I debugged the code I could get following is the call stack:

/Unflagged	>	3600	0	Worker Thread	_threadstartex	k5_os_mutex_lock	Normal
 	 	 	 	 	 	gssapi32.dll!k5_os_mutex_lock(k5_os_mutex * m)  Line 651	 
 	 	 	 	 	 	gssapi32.dll!k5_mutex_lock_1(k5_mutex_t * m, k5_debug_loc l) 
Line 733 + 0xc bytes	 
 	 	 	 	 	 	gssapi32.dll!g_save()  Line 96 + 0x1a bytes	 
 	 	 	 	 	 	gssapi32.dll!gssint_g_save_cred_id(g_set * vdb,
gss_cred_id_struct * cred)  Line 246 + 0xf bytes	 
 	 	 	 	 	 	gssapi32.dll!acquire_cred(unsigned int * minor_status, const
acquire_cred_args * args, gss_cred_id_struct * * output_cred_handle,
unsigned int * time_rec)  Line 613 + 0xe bytes	 
 	 	 	 	 	 	gssapi32.dll!krb5_gss_acquire_cred(unsigned int * minor_status,
gss_name_struct * desired_name, unsigned int time_req,
gss_OID_set_desc_struct * desired_mechs, int cred_usage, gss_cred_id_struct
* * output_cred_handle, gss_OID_set_desc_struct * * actual_mechs, unsigned
int * time_rec)  Line 720 + 0x15 bytes	 
 	 	 	 	 	 	gssapi32.dll!kg_accept_krb5()  Line 510 + 0x19 bytes	 
 	 	 	 	 	 	gssapi32.dll!krb5_gss_accept_sec_context_ext(unsigned int *
minor_status, gss_ctx_id_struct * * context_handle, gss_cred_id_struct *
verifier_cred_handle, gss_buffer_desc_struct * input_token,
gss_channel_bindings_struct * input_chan_bindings, gss_name_struct * *
src_name, gss_OID_desc_struct * * mech_type, gss_buffer_desc_struct *
output_token, unsigned int * ret_flags, unsigned int * time_rec,
gss_cred_id_struct * * delegated_cred_handle, _krb5_gss_ctx_ext_rec * exts) 
Line 1347 + 0x35 bytes	 
 	 	 	 	 	 	gssapi32.dll!krb5_gss_accept_sec_context(unsigned int *
minor_status, gss_ctx_id_struct * * context_handle, gss_cred_id_struct *
verifier_cred_handle, gss_buffer_desc_struct * input_token,
gss_channel_bindings_struct * input_chan_bindings, gss_name_struct * *
src_name, gss_OID_desc_struct * * mech_type, gss_buffer_desc_struct *
output_token, unsigned int * ret_flags, unsigned int * time_rec,
gss_cred_id_struct * * delegated_cred_handle)  Line 1383 + 0x35 bytes	 
 	 	 	 	 	 	gssapi32.dll!gss_accept_sec_context(unsigned int * minor_status,
gss_ctx_id_struct * * context_handle, gss_cred_id_struct *
verifier_cred_handle, gss_buffer_desc_struct * input_token_buffer,
gss_channel_bindings_struct * input_chan_bindings, gss_name_struct * *
src_name, gss_OID_desc_struct * * mech_type, gss_buffer_desc_struct *
output_token, unsigned int * ret_flags, unsigned int * time_rec,
gss_cred_id_struct * * d_cred)  Line 208 + 0x49 bytes	 
 	 	 	 	 	 	gssapi32.dll!acc_ctx_call_acc(unsigned int * minor_status,
spnego_gss_ctx_id_rec * sc, spnego_gss_cred_id_rec * spcred,
gss_buffer_desc_struct * mechtok_in, gss_OID_desc_struct * * mech_type,
gss_buffer_desc_struct * mechtok_out, unsigned int * ret_flags, unsigned int
* time_rec, gss_cred_id_struct * * delegated_cred_handle, unsigned int *
negState, send_token_flag * tokflag)  Line 1545 + 0x38 bytes	 
 	 	 	 	 	 	gssapi32.dll!spnego_gss_accept_sec_context(unsigned int *
minor_status, gss_ctx_id_struct * * context_handle, gss_cred_id_struct *
verifier_cred_handle, gss_buffer_desc_struct * input_token,
gss_channel_bindings_struct * input_chan_bindings, gss_name_struct * *
src_name, gss_OID_desc_struct * * mech_type, gss_buffer_desc_struct *
output_token, unsigned int * ret_flags, unsigned int * time_rec,
gss_cred_id_struct * * delegated_cred_handle)  Line 1707 + 0x31 bytes	 
 	 	 	 	 	 	gssapi32.dll!gss_accept_sec_context(unsigned int * minor_status,
gss_ctx_id_struct * * context_handle, gss_cred_id_struct *
verifier_cred_handle, gss_buffer_desc_struct * input_token_buffer,
gss_channel_bindings_struct * input_chan_bindings, gss_name_struct * *
src_name, gss_OID_desc_struct * * mech_type, gss_buffer_desc_struct *
output_token, unsigned int * ret_flags, unsigned int * time_rec,
gss_cred_id_struct * * d_cred)  Line 208 + 0x49 bytes	/ 


Please let me know if anyone has any idea.
Thanks,
Dipti




--
View this message in context: http://kerberos.996246.n3.nabble.com/DNS-server-hangs-in-after-gss-indicate-mechs-call-on-Windows-with-krb5-1-9-libs-tp27535p37239.html
Sent from the Kerberos - Dev mailing list archive at Nabble.com.


More information about the krbdev mailing list