Commit 59d753a0 authored by Quanah Gibson-Mount's avatar Quanah Gibson-Mount
Browse files

ITS#5536

parent 1b24c288
...@@ -10,6 +10,7 @@ OpenLDAP 2.4.10 Engineering ...@@ -10,6 +10,7 @@ OpenLDAP 2.4.10 Engineering
Fixed slapd multiple attrs in URI (ITS#5516) Fixed slapd multiple attrs in URI (ITS#5516)
Fixed slapd sasl_ssf retrieval (ITS#5403) Fixed slapd sasl_ssf retrieval (ITS#5403)
Fixed slapd socket assert (ITS#5489) Fixed slapd socket assert (ITS#5489)
Fixed slapd syncrepl cookie (ITS#5536)
Fixed slapd-bdb/hdb MAXPATHLEN (ITS#5531) Fixed slapd-bdb/hdb MAXPATHLEN (ITS#5531)
Fixed slapd-bdb indexing in single ADD/MOD (ITS#5521) Fixed slapd-bdb indexing in single ADD/MOD (ITS#5521)
Fixed slapd-ldap entry_get() op-dependent behavior (ITS#5513) Fixed slapd-ldap entry_get() op-dependent behavior (ITS#5513)
......
...@@ -720,7 +720,9 @@ size allowed. 0 disables security layers. The default is 65536. ...@@ -720,7 +720,9 @@ size allowed. 0 disables security layers. The default is 65536.
.B olcServerID: <integer> [<URL>] .B olcServerID: <integer> [<URL>]
Specify an integer ID from 0 to 4095 for this server. These IDs are Specify an integer ID from 0 to 4095 for this server. These IDs are
required when using multimaster replication and each master must have a required when using multimaster replication and each master must have a
unique ID. If the URL is provided, this directive may be specified unique ID. Note that this requirement also applies to separate masters
contributing to a glued set of databases.
If the URL is provided, this directive may be specified
multiple times, providing a complete list of participating servers multiple times, providing a complete list of participating servers
and their IDs. The fully qualified hostname of each server should be and their IDs. The fully qualified hostname of each server should be
used in the supplied URLs. The IDs are used in the "replica id" field used in the supplied URLs. The IDs are used in the "replica id" field
......
...@@ -871,7 +871,9 @@ Specify an integer ID from 0 to 4095 for this server (limited ...@@ -871,7 +871,9 @@ Specify an integer ID from 0 to 4095 for this server (limited
to 3 hexadecimal digits). to 3 hexadecimal digits).
These IDs are These IDs are
required when using multimaster replication and each master must have a required when using multimaster replication and each master must have a
unique ID. If the URL is provided, this directive may be specified unique ID. Note that this requirement also applies to separate masters
contributing to a glued set of databases.
If the URL is provided, this directive may be specified
multiple times, providing a complete list of participating servers multiple times, providing a complete list of participating servers
and their IDs. The fully qualified hostname of each server should be and their IDs. The fully qualified hostname of each server should be
used in the supplied URLs. The IDs are used in the "replica id" field used in the supplied URLs. The IDs are used in the "replica id" field
......
...@@ -580,8 +580,10 @@ do_syncrep1( ...@@ -580,8 +580,10 @@ do_syncrep1(
ldap_set_option( si->si_ld, LDAP_OPT_TIMELIMIT, &si->si_tlimit ); ldap_set_option( si->si_ld, LDAP_OPT_TIMELIMIT, &si->si_tlimit );
si->si_syncCookie.rid = si->si_rid; si->si_syncCookie.rid = si->si_rid;
si->si_syncCookie.sid = SLAP_SINGLE_SHADOW( si->si_be ) ? -1 :
slap_serverID; /* whenever there are multiple data sources possible, advertise sid */
si->si_syncCookie.sid = ( SLAP_MULTIMASTER( si->si_be ) || si->si_be != si->si_wbe ) ?
slap_serverID : -1;
/* We've just started up, or the remote server hasn't sent us /* We've just started up, or the remote server hasn't sent us
* any meaningful state. * any meaningful state.
...@@ -1240,7 +1242,8 @@ do_syncrepl( ...@@ -1240,7 +1242,8 @@ do_syncrepl(
* *
* Typically there is a single syncprov mastering the entire * Typically there is a single syncprov mastering the entire
* glued tree. In that case, our contextCSN updates should * glued tree. In that case, our contextCSN updates should
* go to the master DB. * go to the master DB. But if there is no syncprov on the
* master DB, then nothing special is needed here.
* *
* Alternatively, there may be individual syncprov overlays * Alternatively, there may be individual syncprov overlays
* on each glued branch. In that case, each syncprov only * on each glued branch. In that case, each syncprov only
...@@ -1249,7 +1252,11 @@ do_syncrepl( ...@@ -1249,7 +1252,11 @@ do_syncrepl(
*/ */
if ( !si->si_wbe ) { if ( !si->si_wbe ) {
if ( SLAP_GLUE_SUBORDINATE( be ) && !overlay_is_inst( be, "syncprov" )) { if ( SLAP_GLUE_SUBORDINATE( be ) && !overlay_is_inst( be, "syncprov" )) {
si->si_wbe = select_backend( &be->be_nsuffix[0], 1 ); BackendDB * top_be = select_backend( &be->be_nsuffix[0], 1 );
if ( overlay_is_inst( top_be, "syncprov" ))
si->si_wbe = select_backend( &be->be_nsuffix[0], 1 );
else
si->si_wbe = be;
} else { } else {
si->si_wbe = be; si->si_wbe = be;
} }
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment