Project

General

Profile

Bug #8100

CN synchronization fails when attempting to synchronize with a modified obsoletes field from a V2 member node

Added by Mark Servilla almost 7 years ago. Updated almost 7 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
d1_synchronization
Target version:
Start date:
2017-05-24
Due date:
% Done:

100%

Milestone:
None
Product Version:
Story Points:
Sprint:

Description

When attempting to synchronize a series of objects from the LTER GMN MN (v2) that had their obsolescence attributes modified (obsoletes, obsoletedBy, and both), the CN synchronize process threw the following exception:

[ERROR] 2017-05-23 05:36:02,854 (V2TransferObjectTask:call:259) Task-urn:node:LTER-https://pasta.lternet.edu/package/metadata/eml/knb-lter-arc/20036/4 - SynchronizationFailed:
Synchronization task of [PID::] https://pasta.lternet.edu/package/metadata/eml/knb-lter-arc/20036/4 [::PID] failed. Cause: InvalidRequest: Illegal changes attempted to the fiel
ds: obsoletes
org.dataone.service.exceptions.SynchronizationFailed: Synchronization task of [PID::] https://pasta.lternet.edu/package/metadata/eml/knb-lter-arc/20036/4 [::PID] failed. Cause:
InvalidRequest: Illegal changes attempted to the fields: obsoletes
at org.dataone.cn.batch.synchronization.tasks.SyncFailedTask.createSynchronizationFailed(SyncFailedTask.java:97)
at org.dataone.cn.batch.synchronization.tasks.V2TransferObjectTask.processV2AuthoritativeUpdate(V2TransferObjectTask.java:1235)
at org.dataone.cn.batch.synchronization.tasks.V2TransferObjectTask.processUpdates(V2TransferObjectTask.java:1001)
at org.dataone.cn.batch.synchronization.tasks.V2TransferObjectTask.processTask(V2TransferObjectTask.java:423)
at org.dataone.cn.batch.synchronization.tasks.V2TransferObjectTask.call(V2TransferObjectTask.java:211)
at org.dataone.cn.batch.synchronization.tasks.V2TransferObjectTask.call(V2TransferObjectTask.java:113)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

It was decided at the CCIT maintenance call on 23 May 2017 that this process should be allowed and that the exception was likely a boog.

Associated revisions

Revision 18826
Added by Rob Nahf almost 7 years ago

fixes #8100 in trunk: allowing obsoletes to change from null to a value. (branching issues will be handled by the Metacat datastore).

Revision 18826
Added by Rob Nahf almost 7 years ago

fixes #8100 in trunk: allowing obsoletes to change from null to a value. (branching issues will be handled by the Metacat datastore).

Revision 18827
Added by Rob Nahf almost 7 years ago

fixes #8100 in 2.3 branch: allowing obsoletes to change from null to a value. (branching issues will be handled by the Metacat datastore).

Revision 18827
Added by Rob Nahf almost 7 years ago

fixes #8100 in 2.3 branch: allowing obsoletes to change from null to a value. (branching issues will be handled by the Metacat datastore).

History

#1 Updated by Rob Nahf almost 7 years ago

  • % Done changed from 0 to 30
  • Status changed from New to In Progress

The rule to disallow modifications to the obsoletes field in synchronization was originally put in place to prevent branching obsoletes chains.

This check isn't needed, however, since the cn.updateSystemMetadata call will check for branching. (line 1839 edu.nceas.metacat.dataone.D1NodeService#updateSystemMetadata)

Will change in trunk and 2.3 branch d1_synchronization project / d1-process-daemon. Not sure at this point if it will go into a patch release or the next minor release.

#2 Updated by Rob Nahf almost 7 years ago

  • Category deleted (d1_synchronization)
  • Milestone set to None
  • Project changed from CN REST to Infrastructure

#3 Updated by Rob Nahf almost 7 years ago

  • % Done changed from 30 to 50
  • Status changed from In Progress to Testing

committed the fix to trunk and 2.3 branch: allowing transition from null to a value. the cn rest service will handle potential branching issues, and there seems to be a good error message there.

#4 Updated by Rob Nahf almost 7 years ago

  • Status changed from Testing to Closed
  • % Done changed from 50 to 100

Applied in changeset java-client:d1client|r18826.

#5 Updated by Dave Vieglais almost 7 years ago

  • Target version set to CCI-2.3.5

#6 Updated by Jing Tao almost 7 years ago

  • Category set to d1_synchronization

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 14.8 MB)