Project

General

Profile

Task #2940

Story #2939: Determine cause and resolve errors being noticed during synchronization

Addressing item #5 - Not Found Exceptions

Added by Dave Vieglais over 12 years ago. Updated over 12 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Ben Leinfelder
Category:
Metacat
Start date:
2012-06-14
Due date:
% Done:

100%

Milestone:
CCI-1.0.2
Product Version:
*
Story Points:
Sprint:

Description

Only place where that exception detail code appears is:

metacat/src/edu/ucsb/nceas/metacat/dataone/D1NodeService.java: throw new NotFound("1340", "The object with the provided " + "identifier was not found.");
metacat/src/edu/ucsb/nceas/metacat/dataone/D1NodeService.java: throw new NotFound("1340", "The provided identifier was invalid.");

From the parent task:

5) NotFound exceptions

During the call to TransferObjectTask.write(), a 404, detail 1340 exception is thrown. Unknown reason.

[ERROR] 2012-06-14 09:15:12,661 (TransferObjectTask:write:441) Task-urn:node:KNB-doi:10.5063/AA/kgordon.8.3
[ERROR] 2012-06-14 09:15:12,477 (TransferObjectTask:write:441) Task-urn:node:KNB-doi:10.5063/AA/kgordon.7.3
[ERROR] 2012-06-14 09:18:11,464 (TransferObjectTask:write:441) Task-urn:node:KNB-doi:10.5063/AA/kgordon.9.1
[ERROR] 2012-06-14 09:18:24,970 (TransferObjectTask:write:441) Task-urn:node:KNB-doi:10.5063/AA/kgordon.7.7
[ERROR] 2012-06-14 09:18:26,343 (TransferObjectTask:write:441) Task-urn:node:KNB-doi:10.5063/AA/kgordon.8.1
[ERROR] 2012-06-14 10:30:17,429 (TransferObjectTask:write:441) Task-urn:node:KNB-doi:10.5063/AA/nceasadmin.813.1
[ERROR] 2012-06-14 10:30:17,737 (TransferObjectTask:write:441) Task-urn:node:KNB-doi:10.5063/AA/nceasadmin.814.1

History

#1 Updated by Ben Leinfelder over 12 years ago

  • Status changed from New to Closed

These all seem fine and do not give a 404 for either /meta or /object. Two are private, which should also not pose a problem for the CN.

doi:10.5063/AA/kgordon.8.3 -- private
doi:10.5063/AA/kgordon.7.3 -- fine
doi:10.5063/AA/kgordon.9.1 -- fine
doi:10.5063/AA/kgordon.7.7 -- fine
doi:10.5063/AA/kgordon.8.1 -- private
doi:10.5063/AA/nceasadmin.813.1 -- fine
doi:10.5063/AA/nceasadmin.814.1 -- fine

#2 Updated by Ben Leinfelder over 12 years ago

  • Status changed from Closed to In Progress
  • Assignee changed from Ben Leinfelder to Robert Waltz

These "1340" NotFound exceptions are only raised by Metacat in the delete() and archive() methods. Why would either of these methods be called during sync?

#3 Updated by Robert Waltz over 12 years ago

  • Assignee changed from Robert Waltz to Ben Leinfelder

On a MemberNode, MNStorage.archive() is a method that may set the archive flag on object's systemMetadata record. If the archive flag is set on the Membernode, then it will cause an update to the systemMetadata which will cause the record to be synchronized. In order for the updated archive flag on the Membernode's systemMetadata to be acted upon by the CN, the CN's systemMetadata record for the object will also have to have its archive flag set. Therefore, Synchronization calls CNCore.archive() to effect that change.

CNCore.archive() is only called when 1) an update to a MemberNode's systemMetadata has been detected 2) the updated SystemMetadata has the archive flag set to true 3) the CN's copy of the systemMetadata has the archive flag null or set to false.

#4 Updated by Robert Waltz over 12 years ago

All of these errors occurred on cn-unm-1. There is what Synchronization was doing:

Gets a task to synchronize, attempts to pull SystemMetadata from CN. It find the SystemMetadata, and determines it to be an update because the checksum of the Membernode SystemMetadata and the SystemMetadata on the CN to be the same. It determines that the archive flag has been set on the MN's SystemMetadata and therefore the change should be reflected on the CN. Metacat returns with an error.

[ INFO] 2012-06-14 10:30:17,561 (TransferObjectTask:write:376) Task-urn:node:KNB-doi:10.5063/AA/nceasadmin.814.1 Getting sysMeta from CN
[ INFO] 2012-06-14 10:30:17,564 (TransferObjectTask:write:398) Task-urn:node:KNB-doi:10.5063/AA/nceasadmin.814.1 Pid Exists. Must be an Update
[ INFO] 2012-06-14 10:30:17,564 (TransferObjectTask:write:419) Task-urn:node:KNB-doi:10.5063/AA/nceasadmin.814.1 Update sysMeta because checksum is same
[ INFO] 2012-06-14 10:30:17,565 (TransferObjectTask:updateSystemMetadata:579) Task-urn:node:KNB-doi:10.5063/AA/nceasadmin.814.1 Update Archived
[ERROR] 2012-06-14 10:30:17,737 (TransferObjectTask:write:441) Task-urn:node:KNB-doi:10.5063/AA/nceasadmin.814.1
<?xml version="1.0" encoding="UTF-8"?>

The object with the provided identifier was not found.

#5 Updated by Ben Leinfelder over 12 years ago

For this example,
https://knb.ecoinformatics.org/knb/d1/mn/v1/meta/doi:10.5063/AA/nceasadmin.814.1
the archived flag is not set (which is correct).
Nor is the obsoletedBy property (which is NOT correct).
See related bug about missing obsoletedBy information: #2938

CN.archive() does much more (in Metacat internals) than just set the archive flag on the SystemMetadata. I would not expect the CN to call this when it could just call CN.updateSystemMetadata() with the new information it received.

I would like to correct the SystemMeta entries in #2938 so that they correctly reflect the revision history.

#6 Updated by Robert Waltz over 12 years ago

  • Milestone changed from CCI-1.0.1 to CCI-1.0.2

#7 Updated by Ben Leinfelder over 12 years ago

  • Target version changed from Sprint-2012.25-Block.4.1 to Sprint-2012.27-Block.4.2

#8 Updated by Dave Vieglais over 12 years ago

  • Status changed from In Progress to Closed

Closing this task for now.

There may still be an issue to resolve here, but it seems to be an edge case that affects a small number of records. Something to watch nonetheless.

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 14.8 MB)