[midPoint-git] [Evolveum/midpoint] 569fec: Fix serializability of some auxiliary classes

Viliam Repan noreply at github.com
Mon Apr 11 13:28:28 CEST 2022


  Branch: refs/heads/feature/adminlte-upgrade-merged
  Home:   https://github.com/Evolveum/midpoint
  Commit: 569fec12c7ddc1bab9aa515fcd5176e68d3399aa
      https://github.com/Evolveum/midpoint/commit/569fec12c7ddc1bab9aa515fcd5176e68d3399aa
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2022-04-04 (Mon, 04 Apr 2022)

  Changed paths:
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/internals/ThreadLocalOperationsMonitor.java
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/result/OperationMonitoringConfiguration.java

  Log Message:
  -----------
  Fix serializability of some auxiliary classes

These are sometimes part of OperationResult, which is Serializable.


  Commit: bbadfcf7dae267722e1b248d59241bf6e34693df
      https://github.com/Evolveum/midpoint/commit/bbadfcf7dae267722e1b248d59241bf6e34693df
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2022-04-06 (Wed, 06 Apr 2022)

  Changed paths:
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/IterativeActivityRun.java
    M repo/task-quartz-impl/src/main/java/com/evolveum/midpoint/task/quartzimpl/run/TaskCycleExecutor.java
    M repo/task-quartz-impl/src/main/java/com/evolveum/midpoint/task/quartzimpl/tasks/CloseHelper.java

  Log Message:
  -----------
  Prune operation result after each bucket

This is to avoid uncontrollable growth of task operation result,
resulting in OOMs, extra large repo objects, and/or long task execution.

Should resolve MID-7830 (at least partially).


  Commit: f6d3260fa323a79e9948a604352bf1f831e524a6
      https://github.com/Evolveum/midpoint/commit/f6d3260fa323a79e9948a604352bf1f831e524a6
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2022-04-06 (Wed, 06 Apr 2022)

  Changed paths:
    M .travis.yml
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/prism/panel/ItemRefinedPanel.java
    M gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/prism/panel/ObjectTemplateItemPanel.java
    M infra/schema/src/main/resources/xml/ns/public/common/common-core-3.xsd
    M infra/schema/src/main/resources/xml/ns/public/common/common-notifications-3.xsd
    M infra/schema/src/main/resources/xml/ns/public/common/common-tasks-3.xsd
    M model/model-impl/src/test/resources/controller/account-with-pwd.xml
    M model/model-impl/src/test/resources/controller/account-without-pwd.xml
    M model/model-impl/src/test/resources/expr/user-new.xml
    M model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/AbstractConfiguredModelIntegrationTest.java
    M model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/sync/AbstractSynchronizationStoryTest.java
    M model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/sync/TestSyncStoryUsingLiveSync.java
    M model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/sync/TestSyncStoryUsingReconciliation.java
    M model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/sync/TestSyncStoryUsingReconciliationMultiNode.java
    M model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/sync/TestSyncStoryUsingReconciliationMultithreaded.java
    R model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/sync/TestSyncStoryUsingReconciliationPartitioned.java
    A model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/sync/TestSyncStoryUsingReconciliationPlain.java
    A model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/sync/TestSyncStoryUsingReconciliationWithSubtasks.java
    M model/model-intest/src/test/resources/common/resource-dummy-blue.xml
    M model/model-intest/src/test/resources/common/resource-dummy-green.xml
    M model/model-intest/src/test/resources/common/resource-dummy.xml
    R model/model-intest/src/test/resources/common/task-delete-not-updated-shadows.xml
    R model/model-intest/src/test/resources/common/task-dumy-blue-livesync.xml
    R model/model-intest/src/test/resources/common/task-dumy-green-livesync.xml
    R model/model-intest/src/test/resources/common/task-dumy-livesync.xml
    R model/model-intest/src/test/resources/common/task-reconcile-dummy-blue-multinode.xml
    R model/model-intest/src/test/resources/common/task-reconcile-dummy-blue-multithreaded.xml
    R model/model-intest/src/test/resources/common/task-reconcile-dummy-blue-partitioned.xml
    R model/model-intest/src/test/resources/common/task-reconcile-dummy-blue.xml
    R model/model-intest/src/test/resources/common/task-reconcile-dummy-green-multinode.xml
    R model/model-intest/src/test/resources/common/task-reconcile-dummy-green-multithreaded.xml
    R model/model-intest/src/test/resources/common/task-reconcile-dummy-green-partitioned.xml
    R model/model-intest/src/test/resources/common/task-reconcile-dummy-green.xml
    R model/model-intest/src/test/resources/common/task-reconcile-dummy-multinode.xml
    R model/model-intest/src/test/resources/common/task-reconcile-dummy-multithreaded.xml
    R model/model-intest/src/test/resources/common/task-reconcile-dummy-partitioned.xml
    R model/model-intest/src/test/resources/common/user-template-sync.xml
    A model/model-intest/src/test/resources/sync-story/task-live-sync-dummy-blue.xml
    A model/model-intest/src/test/resources/sync-story/task-live-sync-dummy-green.xml
    A model/model-intest/src/test/resources/sync-story/task-live-sync-dummy.xml
    A model/model-intest/src/test/resources/sync-story/task-reconcile-dummy-blue-multinode.xml
    A model/model-intest/src/test/resources/sync-story/task-reconcile-dummy-blue-multithreaded.xml
    A model/model-intest/src/test/resources/sync-story/task-reconcile-dummy-blue-with-subtasks.xml
    A model/model-intest/src/test/resources/sync-story/task-reconcile-dummy-blue.xml
    A model/model-intest/src/test/resources/sync-story/task-reconcile-dummy-green-multinode.xml
    A model/model-intest/src/test/resources/sync-story/task-reconcile-dummy-green-multithreaded.xml
    A model/model-intest/src/test/resources/sync-story/task-reconcile-dummy-green-with-subtasks.xml
    A model/model-intest/src/test/resources/sync-story/task-reconcile-dummy-green.xml
    A model/model-intest/src/test/resources/sync-story/task-reconcile-dummy-multinode.xml
    A model/model-intest/src/test/resources/sync-story/task-reconcile-dummy-multithreaded.xml
    A model/model-intest/src/test/resources/sync-story/task-reconcile-dummy-with-subtasks.xml
    A model/model-intest/src/test/resources/sync-story/task-reconcile-dummy.xml
    A model/model-intest/src/test/resources/sync-story/task-shadow-cleanup-green.xml
    A model/model-intest/src/test/resources/sync-story/user-template-sync.xml
    M model/model-intest/testng-db-specific.xml
    M model/model-intest/testng-integration-full.xml
    M model/notifications-impl/src/main/java/com/evolveum/midpoint/notifications/impl/notifiers/AccountActivationNotifier.java
    M model/notifications-impl/src/main/java/com/evolveum/midpoint/notifications/impl/notifiers/PasswordResetNotifier.java
    M provisioning/ucf-impl-connid/src/main/java/com/evolveum/midpoint/provisioning/ucf/impl/connid/ConnectorFactoryConnIdImpl.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/IterativeActivityRun.java
    M repo/repo-sqale/src/test/java/com/evolveum/midpoint/repo/sqale/func/SqaleRepoModifyObjectTest.java

  Log Message:
  -----------
  Merge branch 'master' into tmp/fixes-after-4.5

# Conflicts:
#	repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/IterativeActivityRun.java


  Commit: 06df862e9f03f42ab94bd7128bac854b96ebb55b
      https://github.com/Evolveum/midpoint/commit/06df862e9f03f42ab94bd7128bac854b96ebb55b
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2022-04-06 (Wed, 06 Apr 2022)

  Changed paths:
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ClassicCollectionReportExportActivityRun.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ClassicDashboardReportExportActivityRun.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ClassicReportImportActivityRun.java
    M repo/repo-common/src/test/java/com/evolveum/midpoint/repo/common/tasks/handlers/iterative/IterativeMockActivityRun.java

  Log Message:
  -----------
  Fix suspension of report-related activities

Report-related activities (both export and import) ignored signals
to suspend that come from the activity framework. So even if the task
was suspended, report processes continued to iterate through input
objects.

This is now fixed. The iteration should stop when the task goes down.

Related to MID-7839.


  Commit: 9d859850565604f3e81deac95d9a4592d12cbfe6
      https://github.com/Evolveum/midpoint/commit/9d859850565604f3e81deac95d9a4592d12cbfe6
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2022-04-06 (Wed, 06 Apr 2022)

  Changed paths:
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ClassicCollectionReportExportActivityRun.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ClassicDashboardReportExportActivityRun.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ReportDataAggregationActivityRun.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ReportDataCreationActivityRun.java

  Log Message:
  -----------
  Stop writing operationExecution data for reports

It harms performance (a lot).

Related to MID-7857.


  Commit: 977fcf3be104bb390df705fe359eb82d9b072fda
      https://github.com/Evolveum/midpoint/commit/977fcf3be104bb390df705fe359eb82d9b072fda
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2022-04-06 (Wed, 06 Apr 2022)

  Changed paths:
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/SaveReportFileSupport.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/controller/CollectionDistributedExportController.java

  Log Message:
  -----------
  Do not write incomplete report output on suspend

When the task goes down, we must not write incomplete (partial) data
to the report output file.

Work in progress: This solves the problem for classical reports.
What remains are the distributed reports. (They may be safe, but it
needs to be verified.)

Related to MID-7839.


  Commit: 2bc083aca2f39140268c8c837160f23c6a4cf0f6
      https://github.com/Evolveum/midpoint/commit/2bc083aca2f39140268c8c837160f23c6a4cf0f6
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2022-04-07 (Thu, 07 Apr 2022)

  Changed paths:
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ReportDataAggregationActivityRun.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/AbstractCompositeActivityRun.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/IterativeActivityRun.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/LocalActivityRun.java

  Log Message:
  -----------
  Stop distribution of non-distributable activities

This commit introduced safety checks for activities that are known
to fail in multi-workers or multithreaded mode:

- report data aggregation (any parallelism is forbidden),
- any composite activity (multi-workers are forbidden, see the source).

This is an immediate fix for MID-7861.

However, it's not a complete one: we should check for multi-node
distributability _before_ the worker tasks are created, not in the tasks
themselves. Otherwise, the ultimate harm is avoided, but the workers
are already there - and suspended with a fatal error.


  Commit: 704291c73a5f1372fc9577126e7dc17325e70264
      https://github.com/Evolveum/midpoint/commit/704291c73a5f1372fc9577126e7dc17325e70264
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2022-04-11 (Mon, 11 Apr 2022)

  Changed paths:
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/internals/ThreadLocalOperationsMonitor.java
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/result/OperationMonitoringConfiguration.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ClassicCollectionReportExportActivityRun.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ClassicDashboardReportExportActivityRun.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ClassicReportImportActivityRun.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ReportDataAggregationActivityRun.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ReportDataCreationActivityRun.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/SaveReportFileSupport.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/controller/CollectionDistributedExportController.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/AbstractCompositeActivityRun.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/IterativeActivityRun.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/LocalActivityRun.java
    M repo/repo-common/src/test/java/com/evolveum/midpoint/repo/common/tasks/handlers/iterative/IterativeMockActivityRun.java

  Log Message:
  -----------
  Merge branch 'tmp/fixes-after-4.5'


  Commit: d3d3f3ee38bb20513d5d0b504f2c9fff70698a22
      https://github.com/Evolveum/midpoint/commit/d3d3f3ee38bb20513d5d0b504f2c9fff70698a22
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2022-04-11 (Mon, 11 Apr 2022)

  Changed paths:
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ClassicReportImportActivityRun.java

  Log Message:
  -----------
  Simplify ClassicReportImportActivityRun

Due to some past refactorings, iterateOverItemsInBucket method in
ClassicReportImportActivityRun got unnecessarily complex. This got
clearly visible in 06df862e9f03f42ab94bd7128bac854b96ebb55b.

So, this commit simplifies that method.


  Commit: 431af54aad0076bae6af28a25a1583365ec48d85
      https://github.com/Evolveum/midpoint/commit/431af54aad0076bae6af28a25a1583365ec48d85
  Author: Pavol Mederly <mederly at evolveum.com>
  Date:   2022-04-11 (Mon, 11 Apr 2022)

  Changed paths:
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ReportDataAggregationActivityRun.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ReportDataCreationActivityRun.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/controller/CollectionDistributedExportController.java

  Log Message:
  -----------
  Add task suspension check for distributed reports

Now we skip writing per-bucket report data if the data-creation task
is going down. This is to ensure that the resulting data are clean.

In data-aggregation activity we now also check the sequence of partial
report data objects, to ensure nothing is missing and nothing is
included twice.

Notes:

1. There is (still) no check for the total expected number of partial
data objects in data aggregation activity. We rely on the activity
framework to ensure the aggregator is started only after the preceding
activity (data creation) is 100% complete.

2. In general, one should not resume report-creation activity after
it has been suspended (at least not after too much time). There is non-
negligible chance that the resulting report will be inconsistent because
of the time gap.

Related to MID-7839 (suspension of report tasks).


  Commit: 75a96658a759e332a60e48aa28e95cb82e77d765
      https://github.com/Evolveum/midpoint/commit/75a96658a759e332a60e48aa28e95cb82e77d765
  Author: Viliam Repan <vilo.repan at evolveum.com>
  Date:   2022-04-11 (Mon, 11 Apr 2022)

  Changed paths:
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/internals/ThreadLocalOperationsMonitor.java
    M infra/schema/src/main/java/com/evolveum/midpoint/schema/result/OperationMonitoringConfiguration.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ClassicCollectionReportExportActivityRun.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ClassicDashboardReportExportActivityRun.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ClassicReportImportActivityRun.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ReportDataAggregationActivityRun.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ReportDataCreationActivityRun.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/SaveReportFileSupport.java
    M model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/controller/CollectionDistributedExportController.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/AbstractCompositeActivityRun.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/IterativeActivityRun.java
    M repo/repo-common/src/main/java/com/evolveum/midpoint/repo/common/activity/run/LocalActivityRun.java
    M repo/repo-common/src/test/java/com/evolveum/midpoint/repo/common/tasks/handlers/iterative/IterativeMockActivityRun.java

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/master' into feature/adminlte-upgrade-merged


Compare: https://github.com/Evolveum/midpoint/compare/b7ad64b865ce...75a96658a759


More information about the midPoint-svn mailing list