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

mederly noreply at github.com
Mon Apr 11 12:19:30 CEST 2022


  Branch: refs/heads/master
  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.


Compare: https://github.com/Evolveum/midpoint/compare/aa7a4503d1be...d3d3f3ee38bb


More information about the midPoint-svn mailing list