-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/75223/
-----------------------------------------------------------

(Updated Jan. 8, 2025, 11:08 a.m.)


Review request for atlas, Jayendra Parab, Mandar Ambawane, and Pinal Shah.


Bugs: ATLAS-4907
    https://issues.apache.org/jira/browse/ATLAS-4907


Repository: atlas


Description
-------

Whenever Migration starts and vertex is created for the respective file in 
progress

whenever Migration status is attempted to update it fails with nullpointer 
exception

Due to this because the position was not updated in db hence when migration was 
interrupted and restarted it would start from position 0 

2024-09-18 10:29:04,153 WARN  - [zipFileBasedMigrationImporter:]
 ~ Error updating status. Please rely on log messages. 
(DataMigrationStatusService$MigrationStatusVertexManagement:202)
java.lang.NullPointerException
        at 
org.apache.atlas.repository.store.graph.v2.AtlasGraphUtilsV2.setProperty(AtlasGraphUtilsV2.java:250)
        at 
org.apache.atlas.repository.store.graph.v2.AtlasGraphUtilsV2.setEncodedProperty(AtlasGraphUtilsV2.java:238)
        at 
org.apache.atlas.repository.migration.DataMigrationStatusService$MigrationStatusVertexManagement.updateVertexPartialStatus(DataMigrationStatusService.java:200)
        at 
org.apache.atlas.repository.migration.DataMigrationStatusService.setStatus(DataMigrationStatusService.java:119)
        at 
org.apache.atlas.repository.store.graph.v2.bulkimport.pc.EntityCreationManager.read(EntityCreationManager.java:57)
        at 
org.apache.atlas.repository.store.graph.v2.bulkimport.MigrationImport.run(MigrationImport.java:79)
        at 
org.apache.atlas.repository.store.graph.v2.BulkImporterImpl.bulkImport(BulkImporterImpl.java:77)
        at 
org.apache.atlas.repository.impexp.ImportService.processEntities(ImportService.java:232)
        at 
org.apache.atlas.repository.impexp.ImportService.run(ImportService.java:119)
        at 
org.apache.atlas.repository.impexp.ImportService.run(ImportService.java:96)
        at 
org.apache.atlas.repository.migration.ZipFileMigrationImporter.performImport(ZipFileMigrationImporter.java:255)
        at 
org.apache.atlas.repository.migration.ZipFileMigrationImporter.run(ZipFileMigrationImporter.java:97)
        at java.lang.Thread.run(Thread.java:748)

With this patch adds file hash instead of filename whenever it will try to 
update vertex with status and position it will use file hash


Diffs (updated)
-----

  
repository/src/main/java/org/apache/atlas/repository/migration/DataMigrationStatusService.java
 5b22f9cd5 


Diff: https://reviews.apache.org/r/75223/diff/3/

Changes: https://reviews.apache.org/r/75223/diff/2-3/


Testing
-------

Before patch even after migration was completed position was never updated due 
to above nullpointer exception
gremlin> g.V().has("__guid","b4fa0dcf2b0acac65e75dfda4f6dedd9").valueMap()
==>[__guid:[b4fa0dcf2b0acac65e75dfda4f6dedd9],__migration.startTime:[1726486589197],__migration.size:[1],__migration.position:[0],__migration.status:[DONE]]

2024-10-02 14:16:53,204 INFO  - [zipFileBasedMigrationImporter:] ~ Migration 
Import: Size: 0: Done! (MigrationImport:87)


After applying patch when interrupted in between it fetches last position of 
entities processed:
==>[__guid:[b4fa0dcf2b0acac65e75dfda4f6dedd9],__migration.startTime:[1727887269568],__migration.size:[1],__migration.position:[6],__migration.status:[IN_PROGRESS]]


After completing migration:
gremlin> g.V().has("__guid","b4fa0dcf2b0acac65e75dfda4f6dedd9").valueMap()
==>[__guid:[b4fa0dcf2b0acac65e75dfda4f6dedd9],__migration.startTime:[1727950058639],__migration.size:[1],__migration.position:[3553],__migration.status:[DONE]]

It fetches correct position 
2024-10-03 15:44:08,163 INFO  - [zipFileBasedMigrationImporter:] ~ Migration 
Import: Size: 3555: Done! (MigrationImport:88)


Thanks,

chaitali

Reply via email to