[Date Prev][Date Next]
Re: (ITS#6158) syncprov: assert causing slapd to core dump
- To: openldap-its@OpenLDAP.org
- Subject: Re: (ITS#6158) syncprov: assert causing slapd to core dump
- From: email@example.com
- Date: Tue, 2 Jun 2009 16:23:49 GMT
- Auto-submitted: auto-generated (OpenLDAP-ITS)
> OK, I've spent some more time trying to understand this part of
> syncprov.c. From what I understand :
> - the assert failure in ldap_pvt_runqueue_resched is caused by the fact
> syncprov_qstart is trying to "reschedule" a task that is no longer in
> the task_list
> - the only time the task is removed from the task_list (via
> ldap_pvt_runqueue_remove) is when the task is being run, in
> syncprov_qtask, if syncprov_qplay returns !=0
> - the next time syncprov_qstart is called, it finds "so->s_qtask" is not
> NULL, and tries to reschedule the task, but it's no longer in the task_list.
> I've written a patch that sets "so->s_qtask" to NULL in syncprov_qtask,
> just after removing the task from the task_list. So that when
> syncprov_qstart is called again, it goes into
> ldap_pvt_runqueue_insert... The patch is attached.
> Unfortunately, I can't confirm it fixes the bug since I can't reproduce
> it... For those who understand the logic behind this, does this make any
> sense? :)
Ah, you want rev 1.249 of syncprov.c. Closing this as a dup of ITS#5776.
Of course, all of this code has been removed from RE24 as of 1.265.
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/