[
https://issues.apache.org/jira/browse/GOBBLIN-1972?focusedWorklogId=894405&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-894405
]
ASF GitHub Bot logged work on GOBBLIN-1972:
-------------------------------------------
Author: ASF GitHub Bot
Created on: 06/Dec/23 22:41
Start Date: 06/Dec/23 22:41
Worklog Time Spent: 10m
Work Description: phet commented on code in PR #3844:
URL: https://github.com/apache/gobblin/pull/3844#discussion_r1418059366
##########
gobblin-data-management/src/main/java/org/apache/gobblin/data/management/copy/publisher/CopyDataPublisher.java:
##########
@@ -222,6 +223,80 @@ private void preserveFileAttrInPublisher(CopyableFile
copyableFile) throws IOExc
}
}
+ /** Organizes and encapsulates access to {@link WorkUnitState}s according to
useful access patterns. */
+ @AllArgsConstructor
+ private static class WorkUnitStatesHelper {
Review Comment:
I don't see mis-identification as the underlying reason for the regression.
rather it was more likely not appreciating how presumptive
`WorkUnitState::getWorkingState()` is about that WU having already executed. I
doubt it was clear (certainly it shocked me!) that it would fall back on the
enclosing job's state to provide state for a WU that had never itself started.
as for that `WorkUnitStatesHelper`, I don't presently foresee utility
anywhere beyond `CopyDataPublisher`
Issue Time Tracking
-------------------
Worklog Id: (was: 894405)
Time Spent: 0.5h (was: 20m)
> Fix Iceberg-Distcp, which now erroneously shows the job finishing as
> "SUCCESSFUL", despite the commit step failing with an exception.
> -------------------------------------------------------------------------------------------------------------------------------------
>
> Key: GOBBLIN-1972
> URL: https://issues.apache.org/jira/browse/GOBBLIN-1972
> Project: Apache Gobblin
> Issue Type: Bug
> Components: gobblin-core
> Reporter: Kip Kohn
> Assignee: Abhishek Tiwari
> Priority: Major
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> Find and fix what appears to be a regression in `CopyDataPublisher` or
> `SafeDatasetCommit`...
> Here, the same Iceberg-Distcp `CommitStep` fails
> (`org.apache.gobblin.data.management.copy.iceberg.IcebergRegisterStep`), but
> with apache gobblin build `0.18.0-dev-493` it correctly shows "FAILED" yet
> with `0.18.0-dev-515` it claims "SUCCEEDED".
> BOTH display the same error:
> {code:java}
> ERROR [CopyDataPublisher] [Azkaban] Failed to publish tracking_db.MyEvent
> [then the exception stacktrace for the commit step, followed by...]
> ERROR [SafeDatasetCommit] [Azkaban] Failed to commit dataset
> - java.io.IOException: Not all datasets published successfully
> - at
> org.apache.gobblin.data.management.copy.publisher.CopyDataPublisher.publishData(CopyDataPublisher.java:160)
> - at
> org.apache.gobblin.publisher.DataPublisher.publish(DataPublisher.java:79)
> - at
> org.apache.gobblin.runtime.SafeDatasetCommit.commitDataset(SafeDatasetCommit.java:260)
> - at
> org.apache.gobblin.runtime.SafeDatasetCommit.call(SafeDatasetCommit.java:168)
> [...]{code}
> but only "FAILED" continues with:
> {code:java}
> WARN [SafeDatasetCommit] [Azkaban] At least one task in
> CopyEntity.DatasetAndPartition(dataset=CopyableDatasetMetadata(datasetURN=tracking_db.MyEvent),
> partition=tracking_db.MyEvent) did not get committed successfully. Setting
> dataset state to FAILED. java.io.IOException: Not all datasets published
> successfully
> - at
> org.apache.gobblin.data.management.copy.publisher.CopyDataPublisher.publishData(CopyDataPublisher.java:160)
> - at
> org.apache.gobblin.publisher.DataPublisher.publish(DataPublisher.java:79)
> - at
> org.apache.gobblin.runtime.SafeDatasetCommit.commitDataset(SafeDatasetCommit.java:260)
> - at
> org.apache.gobblin.runtime.SafeDatasetCommit.call(SafeDatasetCommit.java:168)
> [...]
> INFO [AbstractJobLauncher] [Azkaban] Due to task failure, will report that no
> records or bytes were written for
> CopyEntity.DatasetAndPartition(dataset=CopyableDatasetMetadata(datasetURN=tracking_db.MyEvent),
> partition=tracking_db.MyEvent){code}
> by contrast, "SUCCEEDED" announces:
> {code:java}
> INFO [SafeDatasetCommit] [Azkaban] Persisting dataset state for dataset
> CopyEntity.DatasetAndPartition(dataset=CopyableDatasetMetadata(datasetURN=tracking_db.MyEvent),
> partition=tracking_db.MyEvent)
> [...]
> INFO [AbstractJobLauncher] [Azkaban] DatasetMetrics for
> 'CopyEntity.DatasetAndPartition(dataset=CopyableDatasetMetadata(datasetURN=tracking_db.MyEvent),
> partition=tracking_db.MyEvent)' - (records: 0; bytes: 0) {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)