If a replica is under a lot of load, the server can crash in the replication connection code:
assertion=assertion@entry=0x7f225ca773d3 "ld != ((void *)0)", file=file@entry=0x7f225ca71e76 "search.c", line=line@entry=95, function=function@entry=0x7f225ca71f50 <__PRETTY_FUNCTION__.8910> "ldap_pvt_search") at assert.c:92
file=file@entry=0x7f225ca71e76 "search.c", line=line@entry=95, function=function@entry=0x7f225ca71f50 <__PRETTY_FUNCTION__.8910> "ldap_pvt_search") at assert.c:101
filter=filter@entry=0x7f2253759e21 "(objectclass=*)", attrs=attrs@entry=0x7f2177feead0, attrsonly=attrsonly@entry=0, sctrls=sctrls@entry=0x0, cctrls=cctrls@entry=0x0, timeout=timeout@entry=0x7f218c028b38, sizelimit=sizelimit@entry=0, deref=deref@entry=-1, msgidp=msgidp@entry=0x7f2177feea24) at search.c:95
filter=filter@entry=0x7f2253759e21 "(objectclass=*)", attrs=attrs@entry=0x7f2177feead0, attrsonly=attrsonly@entry=0, sctrls=sctrls@entry=0x0, cctrls=cctrls@entry=0x0, timeout=timeout@entry=0x7f218c028b38, sizelimit=sizelimit@entry=0, deref=deref@entry=-1, res=res@entry=0x7f2177feeac8) at search.c:174
filter=filter@entry=0x7f2253759e21 "(objectclass=*)", attrs=attrs@entry=0x7f2177feead0, attrsonly=attrsonly@entry=0, sctrls=sctrls@entry=0x0, cctrls=cctrls@entry=0x0, timeout=timeout@entry=0x7f218c028b38, sizelimit=sizelimit@entry=0, res=res@entry=0x7f2177feeac8) at search.c:150
at ldap/servers/plugins/replication/repl5_connection.c:1237
prot_oid@entry=0x7f225375b15a "2.16.840.1.113730.3.6.1", ruv=ruv@entry=0x7f2177feec88) at ldap/servers/plugins/replication/repl5_protocol_util.c:184
The crash is occurring because the connection LDAP structure(conn->ld) was disconnected. We need locking around these code areas to prevent this race condition.
attachment 0001-Ticket-47759-Crash-in-replication-when-server-is-und.patch
git merge ticket47759 Updating 67ba61b..9940ca2 Fast-forward .../servers/plugins/replication/repl5_connection.c | 89 +++++++++++--------- ldap/servers/slapd/ldaputil.c | 39 ++++----- 2 files changed, 69 insertions(+), 59 deletions(-)
git push origin master 67ba61b..9940ca2 master -> master
commit 9940ca29ca258891c52640a23adc2851afe59d0e Author: Mark Reynolds mreynolds@redhat.com Date: Mon Mar 31 15:17:59 2014 -0400
Pushed to 389-ds-base-1.3.2 branch: 7a50bc6..0e576c8 389-ds-base-1.3.2 -> 389-ds-base-1.3.2 commit 0e576c85c34826c4d63d9578db55f8179b4a1a60
Pushed to 389-ds-base-1.3.1 branch: 99609ce..2a80b71 389-ds-base-1.3.1 -> 389-ds-base-1.3.1 commit 2a80b7152823ca16628c2da48614166b8d2104a4
Thanks to Mark for the fix! Since it passed the stress test, I'm closing this ticket with fixed.
Metadata Update from @nhosoi: - Issue assigned to mreynolds - Issue set to the milestone: 1.3.1.23
389-ds-base is moving from Pagure to Github. This means that new issues and pull requests will be accepted only in 389-ds-base's github repository.
This issue has been cloned to Github and is available here: - https://github.com/389ds/389-ds-base/issues/1091
If you want to receive further updates on the issue, please navigate to the github issue and click on subscribe button.
subscribe
Thank you for understanding. We apologize for all inconvenience.
Metadata Update from @spichugi: - Issue close_status updated to: wontfix (was: Fixed)