[midPoint-git] [Evolveum/midpoint] 3780d6: Avoid leaving shadow in reaping state

mederly noreply at github.com
Wed Nov 10 13:28:34 CET 2021


  Branch: refs/heads/master
  Home:   https://github.com/Evolveum/midpoint
  Commit: 3780d62afe0d9011063ceebddbe3c93037528aaf
      https://github.com/Evolveum/midpoint/commit/3780d62afe0d9011063ceebddbe3c93037528aaf
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2021-11-10 (Wed, 10 Nov 2021)

  Changed paths:
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/ResourceShadowDiscriminator.java
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/util/MiscSchemaUtil.java
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/util/ShadowUtil.java
    M infra/schema/src/main/resources/xml/ns/public/common/common-core-3.xsd
    M model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/ModelElementContext.java
    M model/model-api/src/main/java/com/evolveum/midpoint/model/api/context/ModelProjectionContext.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/expr/MidpointFunctionsImpl.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/ClockworkClick.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LensContext.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LensProjectionContext.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/executor/DeltaExecution.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/executor/LinkUpdater.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/executor/ProjectionChangeExecution.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/ActivationProcessor.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/DependencyProcessor.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/Projector.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/ShadowConstraintsChecker.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/focus/AssignmentProcessor.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/focus/InboundMappingsEvaluation.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/loader/MissingShadowContextRefresher.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/loader/ProjectionFullLoadOperation.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/loader/ProjectionUpdateOperation.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/loader/ProjectionsLoadOperation.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/mappings/ProjectionMappingLoader.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/sync/tasks/recon/RemainingShadowsActivityRun.java
    M model/model-impl/src/test/java/com/evolveum/midpoint/model/impl/sync/TestSynchronizationService.java
    M model/model-impl/src/test/java/com/evolveum/midpoint/model/impl/util/mock/MockFactory.java
    M model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/TestAssignmentsProcessing.java
    M model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/manual/AbstractDirectManualResourceTest.java
    M model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/manual/AbstractManualResourceTest.java
    M model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/manual/TestSemiManualDisable.java
    M model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/manual/TestSemiManualGrouping.java
    M model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/multi/TestMultiResource.java
    M model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/tasks/TestLiveSyncTask.java
    M model/model-test/src/main/java/com/evolveum/midpoint/model/test/asserter/ProjectionContextFinder.java
    M model/workflow-impl/src/test/java/com/evolveum/midpoint/wf/impl/other/ManualResourceTest.java
    M provisioning/provisioning-api/src/main/java/com/evolveum/midpoint/provisioning/api/ProvisioningService.java
    M provisioning/provisioning-api/src/main/java/com/evolveum/midpoint/provisioning/api/ShadowLivenessState.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ProvisioningContext.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ProvisioningServiceImpl.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ShadowCaretaker.java
    R provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/ShadowState.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/shadows/DeleteHelper.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/shadows/GetHelper.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/shadows/RefreshHelper.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/shadows/SearchHelper.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/shadows/ShadowedChange.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/shadows/ShadowedObjectConstruction.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/shadows/ShadowedObjectFound.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/shadows/ShadowsFacade.java
    A provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/shadows/StateHelper.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/shadows/errors/ObjectNotFoundHandler.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/shadows/manager/ShadowDeltaComputer.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/shadows/manager/ShadowManager.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/impl/shadows/manager/ShadowUpdater.java
    M provisioning/provisioning-impl/src/main/java/com/evolveum/midpoint/provisioning/util/ProvisioningUtil.java
    M provisioning/provisioning-impl/src/test/java/com/evolveum/midpoint/provisioning/impl/dummy/TestDummyConsistency.java
    M repo/repo-test-util/src/main/java/com/evolveum/midpoint/test/AbstractIntegrationTest.java
    M repo/repo-test-util/src/main/java/com/evolveum/midpoint/test/asserter/PendingOperationsAsserter.java
    M repo/repo-test-util/src/main/java/com/evolveum/midpoint/test/asserter/ShadowAsserter.java
    M testing/story/src/test/java/com/evolveum/midpoint/testing/story/TestServiceAccounts.java
    M testing/story/src/test/java/com/evolveum/midpoint/testing/story/consistency/TestConsistencyMechanism.java
    M testing/story/src/test/resources/consistency/account-deniels.xml
    M testing/story/src/test/resources/consistency/account-hector-not-found.xml
    M testing/story/src/test/resources/consistency/resource-opendj-reaper.xml
    M testing/story/src/test/resources/consistency/resource-opendj.xml
    R testing/story/src/test/resources/consistency/sample-configuration-object.xml
    M testing/story/src/test/resources/consistency/user-abom.xml
    M testing/story/src/test/resources/consistency/user-abomba.xml
    M testing/story/src/test/resources/consistency/user-hector.xml
    M testing/story/src/test/resources/consistency/user-jackie.xml
    M testing/story/src/test/resources/consistency/user-john.xml

  Log Message:
  -----------
  Avoid leaving shadow in reaping state

This is a fix for MID-7386, where an account (that should exist)
was left in "reaping" state leading to problems after shadow refresh
was run. Although we were not able to reproduce the issue fully, here
are some fixes regarding this.

The main problem was that the projector considered shadows in "reaping"
state as having tombstone=true.

To fix this the following changes were done:

- LensProjectionContext#isTombstone was changed to #isGone. The same for
  ResourceShadowDiscriminator. The reason is that this flag covers both
  "tombstone" and "corpse" states. The new name emphasises the fact that
  the resource object is deleted (gone) from the resource.

- Added transient shadowLifecycleState property to ShadowType. This is
  to ensure that the projector knows the exact lifecycle state for
  a shadow being obtained from provisioning. All shadows coming to the
  projector must have this property.

Other changes needed for the fix:

- Shadows in "reaping" state get policy decision = KEEP during
  activation processing.

- Determination of shadow liveness state (needed e.g. for the decision
  about linkRef being org:default or org:related) was fixed.

- Links to shadows in reaping state are treated more carefully
  in the context loader.

Other changes:

- Some shadow lifecycle states were renamed: conception -> conceived,
  gestation -> gestating, life -> live.


  Commit: b5b4f9327bc94ce6078f344f42892839e07a3796
      https://github.com/Evolveum/midpoint/commit/b5b4f9327bc94ce6078f344f42892839e07a3796
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2021-11-10 (Wed, 10 Nov 2021)

  Changed paths:
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/component/ContainerableListPanel.java
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/AbstractPageObjectDetails.java
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/assignmentholder/FocusDetailsModels.java
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/assignmentholder/component/assignmentType/AbstractAssignmentTypePanel.java
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/component/FocusOperationalButtonsPanel.html
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/component/FocusOperationalButtonsPanel.java
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/component/OperationalButtonsPanel.java
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/component/UserOperationalButtonsPanel.java
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/focus/PageFocusDetails.java
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/resource/component/ResourceContentTabPanel.java
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/user/PageUser.java
    A gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/self/PageOrgSelfProfile.java
    A gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/self/PageRoleSelfProfile.java
    A gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/self/PageServiceSelfProfile.java
    A gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/self/PageUserSelfProfile.java
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/DateInput.java
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchPanel.java
    M gui/admin-gui/src/main/resources/initial-objects/000-system-configuration.xml
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/projector/focus/IterationHelper.java
    M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/tasks/ReindexActivityHandler.java
    M model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/TestIteration.java
    M model/rest-impl/src/main/java/com/evolveum/midpoint/rest/impl/AbstractRestController.java
    M provisioning/ucf-impl-builtin/src/main/java/com/evolveum/midpoint/provisioning/ucf/impl/builtin/ManualConnectorInstance.java
    M repo/repo-sqale/src/main/java/com/evolveum/midpoint/repo/sqale/SqaleRepositoryService.java
    M repo/repo-sqale/src/test/java/com/evolveum/midpoint/repo/sqale/func/SqaleRepoAddDeleteObjectTest.java
    M repo/repo-sqale/src/test/java/com/evolveum/midpoint/repo/sqale/func/SqaleRepoSmokeTest.java
    M repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/CertificationTest.java
    M repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/ExtensionTest.java
    M repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/LookupTableTest.java
    M repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/ModifyTest.java
    M repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/ObjectDeltaUpdaterTest.java
    M repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/PerformanceTest.java
    M repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/QueryInterpreterTest.java
    M repo/repo-sql-impl-test/src/test/java/com/evolveum/midpoint/repo/sql/util/OrgStructGenerator.java
    M repo/repo-sql-impl-test/testng-integration.xml
    M repo/repo-sql-impl/src/main/java/com/evolveum/midpoint/repo/sql/helpers/ObjectRetriever.java
    M testing/rest/src/test/java/com/evolveum/midpoint/testing/rest/TestAbstractRestService.java

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/master'


Compare: https://github.com/Evolveum/midpoint/compare/544f0ec8377f...b5b4f9327bc9


More information about the midPoint-svn mailing list