02 Jul, 2015
3 commits
-
OPENDJ-2184 ECL: wrong number of changes after adding a new replica Code review: CR-7431 This problem is linked to OPENDJ-2141, where we introduced a "default" value for a CSN when starting from a changeNumberIndex record. Explanation: when the server starts up, the newest record is read from the change number index db, so the change number indexer knows where to start. From there, we must start all the cursors, and we are using the newest CSN as a starting point. The triplet (LESS_THAN_OR_EQUAL_TO_KEY, ON_MATCHING_KEY, newestCsn) is then used to start all cursors, including the cursors for replica DBs created dynamically much after server startup. When opening a cursor for any new replica, the provided default CSN cannot be found in the replica DB. Because of this condition and the provided triplet, the file-based changelog code creates an empty cursor. Empty cursors cannot be recycled to iterate over the populated replica DB (And in that case, the replica DB already has the change csn3!!). I think this is incorrect. This change fixes this. LogTest.java, LogFileTest.java, BlockLogReaderWriterTest: Changed the unit tests, so the returned values match what we need. Log.java: In getCursor(), changed the condition that creates a valid cursor to also include LESS_THAN_OR_EQUAL_TO_KEY. BlockLogReader.java: In positionToKeySequentially() and getMatchingRecord(), removed the code handling LESS_THAN_OR_EQUAL_TO_KEY and AFTER_MATCHING_KEY. Renamed positionToKeySequentially() to positionToKey(). git-svn-id: https://svn.forgerock.org/opendj/trunk@12605 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@12603 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
ChangelogBackendTestCase.java: Introduced assertLastCookieIsEqualTo() to do an equivalent to "wait until keyword suceeds" In searchInCookieModeOnTwoSuffixesWithPrivateBackend(), do not forget to close the domain. In isOldestCSNForReplica(), fixed error message. Overrode getGenerationId() to have a fixed generationId. This ensures messages can always sent from ReplicationBroker to LDAPReplicationDomain and processed. git-svn-id: https://svn.forgerock.org/opendj/trunk@12600 41b1ffd8-f28e-4786-ab96-9950f0a78031
01 Jul, 2015
5 commits
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@12597 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
This patch works for me with Java 7 and the following command: MAVEN_OPTS="-Xmx4g -XX:MaxPermSize=512m -Djava.awt.headless=true" mvn -Pman-pages,docs -DskipTests=true clean install site git-svn-id: https://svn.forgerock.org/opendj/trunk@12595 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
Hopefully say forever goodbye to randomness of searchInChangeNumberModeOnOneSuffixMultipleTimes(). The fixxed assertion error message was: Failure Cause: java.lang.AssertionError: [In entry dn: firstchangenumber: 1 lastchangenumber: 8 changelog: cn=changelog lastExternalChangelogCookie: o=test:00000149a520c3ed04b10000000a; incorrect value for attr 'lastchangenumber'] Expecting: <"8"> to be equal to: <"9"> ignoring case considerations org.opends.server.backends.ChangelogBackendTestCase.assertAttributeValue(ChangelogBackendTestCase.java:1381) org.opends.server.backends.ChangelogBackendTestCase.assertChangelogAttributesInRootDSE(ChangelogBackendTestCase.java:857) org.opends.server.backends.ChangelogBackendTestCase.searchInChangeNumberModeOnOneSuffixMultipleTimes(ChangelogBackendTestCase.java:588) The error was due to the CSN of the 9nth change coming after the previous CSN, based on time. How is that possible? I have absolutely no idea since both were created by using which should never go backwards AFAIK. git-svn-id: https://svn.forgerock.org/opendj/trunk@12594 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
ChangelogBackendTest.java: Only stop replication domains and brokers after the test method has finished, not during the test. Otherwise MultimasterReplication.isECLEnabledDomain(DN) risked returning false for valid domains. git-svn-id: https://svn.forgerock.org/opendj/trunk@12593 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@12592 41b1ffd8-f28e-4786-ab96-9950f0a78031
30 Jun, 2015
3 commits
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@12590 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
This patch generates a table of default global ACIs from the source, so as to ensure that the docs are current with respect to the code. git-svn-id: https://svn.forgerock.org/opendj/trunk@12589 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
* pom.xml ** Update the inception year to the OpenDJ start. git-svn-id: https://svn.forgerock.org/opendj/trunk@12587 41b1ffd8-f28e-4786-ab96-9950f0a78031
29 Jun, 2015
2 commits
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@12582 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
This was found due to one functional test that was working with 2.6 code base, but no longer works with 2.8. Here is the sequence of events: time1 change 1 => changenumber=1, changelogcookie=dc=com:csn1; time2 ldapsearch (changenumber=1) returns entry with changenumber=1 and changelogcookie=dc=com:csn1; time3 enable domain dc=fr time4 change 2 => changenumber=2, changelogcookie=dc=com:csn1;dc=fr:csn2; 2.6: time5 ldapsearch (changenumber=1) returns entry with changenumber=1 and changelogcookie=dc=com:csn1;dc=fr; time6 ldapsearch (changelogcookie=dc=com:csn1;) resultcode=UNWILLING_TO_PERFORM message=Full resynch is required...[...]...use dc=com:csn1;dc=fr; time6 ldapsearch (changelogcookie=dc=com:csn1;dc=fr;) resultcode=SUCCESS returns changes with csn1 and csn2 2.8: time5 ldapsearch (changenumber=1) returns entry with changenumber=1 and changelogcookie=dc=com:csn1; time6 ldapsearch (changelogcookie=dc=com:csn1;) resultcode=UNWILLING_TO_PERFORM message=Full resynch is required...[...]...use dc=com:csn1;dc=fr; time6 ldapsearch (changelogcookie=dc=com:csn1;dc=fr;) resultcode=SUCCESS returns changes with csn1 and csn2 Note the different values for changelogcookie attribute at time4. I think this difference is due to the fact the change number index DB was storing the previous cookie (thus returning it), while the new change number index DB is not storing it anymore (thus building it on the fly). So the new domain baseDN cannot be included until one change has been seen for it. I think this error message was originally added as the result of a leaky abstraction: In 2.6, doing a search in the cookie mode was driven by the cookie provided by the user. So when a search was performed using a cookie that did not have all domains, no results would be returned for the missing domains. Hence this restriction was added to force users to iterate over all the domains. With the new changelog implementation, all domains are iterated by default and this restriction is no longer necessary. By removing this limitation here is how the results would compare: time1 change 1 => changenumber=1, changelogcookie=dc=com:csn1; time2 ldapsearch (changenumber=1) returns entry with changenumber=1 and changelogcookie=dc=com:csn1; time3 enable domain dc=fr time4 change 2 => changenumber=2, changelogcookie=dc=com:csn1;dc=fr:csn2; 2.6: time5 ldapsearch (changenumber=1) returns entry with changenumber=1 and changelogcookie=dc=com:csn1;dc=fr; time6 ldapsearch (changelogcookie=dc=com:csn1;) resultcode=UNWILLING_TO_PERFORM message=Full resynch is required...[...]...use dc=com:csn1;dc=fr; time6 ldapsearch (changelogcookie=dc=com:csn1;dc=fr;) resultcode=SUCCESS returns changes with csn1 and csn2 2.8: time5 ldapsearch (changenumber=1) returns entry with changenumber=1 and changelogcookie=dc=com:csn1; time6 ldapsearch (changelogcookie=dc=com:csn1;) resultcode=SUCCESS returns changes with csn1 and csn2 ReplicationServer.java: Removed error ERR_RESYNC_REQUIRED_MISSING_DOMAIN_IN_PROVIDED_COOKIE, no longer necessary with the new changelog implementation. git-svn-id: https://svn.forgerock.org/opendj/trunk@12580 41b1ffd8-f28e-4786-ab96-9950f0a78031
26 Jun, 2015
5 commits
-
ChangelogBackendTestCase.java: In generate*Msg(), and searchDNWithBaseScope(), changed baseDN parameter from String to DN. In searchChangelogUsingCookie(), changed parameter order: put resultCode before nbEntriesReturned In assertAttributeValue(), changed last expectedValue attribute from String to Object + plus converted to String inside the method Used some Java 7 goodness. git-svn-id: https://svn.forgerock.org/opendj/trunk@12579 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
… parallelism in the use of the storage schemes. CR-7342. git-svn-id: https://svn.forgerock.org/opendj/trunk@12578 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
This patch documents the fields in debugsearchindex attr values. git-svn-id: https://svn.forgerock.org/opendj/trunk@12577 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
If project.version maven property contains SNAPSHOT keyword, the rpm package release field will be 'SNAPSHOT' plus timestamp. Otherwise it is set to 1. git-svn-id: https://svn.forgerock.org/opendj/trunk@12575 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@12573 41b1ffd8-f28e-4786-ab96-9950f0a78031
25 Jun, 2015
6 commits
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@12570 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
This patch clarifies that to use controls (and extops), an ACI granting read access is required. This patch also tries to further clarify what the right to the proxy auth control means. git-svn-id: https://svn.forgerock.org/opendj/trunk@12569 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@12568 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
* pom.xml ** Add license files in legal-notices folder ** Remove some obselete mapping rules git-svn-id: https://svn.forgerock.org/opendj/trunk@12565 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
Although there’s a global ACI for this by default, this patch updates the doc to show the ACI to use if that global ACI has been changed. git-svn-id: https://svn.forgerock.org/opendj/trunk@12564 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@12563 41b1ffd8-f28e-4786-ab96-9950f0a78031
24 Jun, 2015
3 commits
-
This patch indicates in both parts of the docs that resource limits under proxied authorization apply to the bind DN user, not the proxied authz identity. git-svn-id: https://svn.forgerock.org/opendj/trunk@12562 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
Removed getDomain(), it is better to use Map.get() here. git-svn-id: https://svn.forgerock.org/opendj/trunk@12561 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
Nightly builds are currently for 3.0.0-SNAPSHOT. This aligns the site links to docs with the nightlies. git-svn-id: https://svn.forgerock.org/opendj/trunk@12560 41b1ffd8-f28e-4786-ab96-9950f0a78031
23 Jun, 2015
6 commits
-
This patch mentions the need to use OPENDJ_JAVA_HOME (or OPENDJ_JAVA_BIN) to set the Java environment correctly for GUI installation. This also means that OpenDJ is dropping support for Java WebStart. git-svn-id: https://svn.forgerock.org/opendj/trunk@12558 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@12557 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@12556 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
Take out include/exclude branch reduction from the import code to a new class, returning what kind of policy should be used for creating a Suffix. The same class can be used by upper layers during import to decide if the operation is supported or not. git-svn-id: https://svn.forgerock.org/opendj/trunk@12552 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@12549 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
Joint effort with Nicolas Capponi. Follow up of preparatory refactoring in r12534. The problem lies in ChangelogCookie.initializeCookieForChangeNumberMode(). Here, the cookie is correctly initialized for the starting change number index record, but incorrectly for all the other replicas. The effect is that other replicas are incorrectly cursoring from the beginning of the replicaDB rather than the change immediately preceding the change number index record. The fix is to make all replicaDBs cursor from the change immediately preceding the change number index record. ChangelogBackend.java: Added updateCookieToMediumConsistencyPoint() method to initialize a cookie from a ECLMultiDomainDBCursor. ECLMultiDomainDBCursor.java: Removed badly implemented methods getSnapshot(), toCookie() which returned the wrong result. CompositeDBCursor.java Removed badly implemented method getSnapshot() which returned the wrong result. In cursors comparator, ensured more consistent ordering when the CSNs are equal. ChangeNumberIndexer.java: Added cookie field to replace the use of ECLMultiDomainDBCursor.toCookie(). Reimplemented initializeNextChangeCursor(), by calling ChangelogBackend.updateUpTo() + removed getCookieInitializedWithNewestCSN(). FileChangelogDB.java, JEChangelogDB.java: In getCursorFrom(baseDN, serverId, startCSN, options), catered for the case where the provided startCSN does not come from this serverId. FileReplicaDB.java, JEReplicaDB.java: In generateCursorFrom(), catered for the case where the provided startCSN does not come from this serverId. git-svn-id: https://svn.forgerock.org/opendj/trunk@12545 41b1ffd8-f28e-4786-ab96-9950f0a78031
19 Jun, 2015
3 commits
-
With a very large changelogDb, when issuing queries on cn=monitor, the code counts the number of entries in the changeNumberIndexDb. In order to do the count, it cursors through the changeNumberIndexDb, decoding each and every change in the changeNumberIndexDb. This is a killer with very large changelogDb. Any query on cn=monitor with very large file-based changelogDb is now at risk to timeout. JE has a direct API to count the number of records in a tree. File based changelog does not have such API, thus, a first implementation was to count the changes by cursoring through the changeNumberIndexDb. However, since the changeNumberIndexDb purge has been reimplemented, there are no longer "holes" in the changeNumbers. As a consequence, a simple way to count the number of changes is to do "newestChangeNumber - oldestChangeNumber". FileChangeNumberIndexDB.java: In DbMonitorProvider.getMonitorData(), changed the code to make a diff between first and last changeNumber. Introduced ChangeNumberType enum to get rid of unreadable boolean parameter. Extracted toAttribute() from createChangeNumberAttribute(). git-svn-id: https://svn.forgerock.org/opendj/trunk@12535 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
Code review: Jean-Noel Preliminary work to fix the issue Add new class DBCursor.CursorOptions to hold options for cursor creation git-svn-id: https://svn.forgerock.org/opendj/trunk@12534 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
git-svn-id: https://svn.forgerock.org/opendj/trunk@12533 41b1ffd8-f28e-4786-ab96-9950f0a78031
17 Jun, 2015
3 commits
-
Check no include or exclude branches have been specified before starting an impo rt, fail otherwise. git-svn-id: https://svn.forgerock.org/opendj/trunk@12527 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
CR-7262 This change is a consequence of OPENDJ-2098 * src/main/java/org/opends/server/tools/upgrade/LicenseFile.java ** Perform a check in multiple folders to ensure if the license has been accepted for a 2.6.x version a user would not be prompted again. ** Introduce some constants to avoid harcoded string repetitions * build.xml ** I do not think this code is still use, but update to prevent any regression git-svn-id: https://svn.forgerock.org/opendj/trunk@12525 41b1ffd8-f28e-4786-ab96-9950f0a78031
-
…en there is only one value Update AttributeBuilder in order to normalize lazily the attribute values Add new AttributeValue class to manage the lazy normalization git-svn-id: https://svn.forgerock.org/opendj/trunk@12523 41b1ffd8-f28e-4786-ab96-9950f0a78031
16 Jun, 2015
1 commit
-
* src/main/java/org/opends/guitools/controlpanel/ui/BrowseSchemaPanel.java ** Fix little regression in matchFilter(...) method git-svn-id: https://svn.forgerock.org/opendj/trunk@12521 41b1ffd8-f28e-4786-ab96-9950f0a78031