Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
1.0.0
-
None
Description
1.Created a tag tag1 on cluster1 with attributes :
- attrib1 : string
- attrib2 : integer
2.Created a tag with same name on cluster2 with attributes:
- attrib1: date
- attrib3: integer
(Note the tag names are same , and attrib1 is same but datatypes of attrib1 are different in both the clusters)
3. On cluster1 , created an entity and associated the tag1 to the entity with attribute values
- attrib1: "randstr"
- attrib2: 5
and exported the entity into zip file .
4.Tried to import the entity into cluster2.
Import failed with 500 Internal server error and with following exception :
{"errorCode":"ATLAS-500-00-001","errorMessage":"org.apache.atlas.exception.AtlasBaseException: org.apache.atlas.repository.graphdb.AtlasSchemaViolationException: com.thinkaurelius.titan.core.SchemaViolationException: Value [rand_str] is not an instance of the expected data type for property key [tag1.attrib1] and cannot be converted. Expected: class java.lang.Long, found: class java.lang.String"}
Following is the inconsistency observed :
Entity is not imported into the cluster2 , but the type definition of tag1 in cluster2 had 3 attributes now (attrib1 : date , attrib2:Integer , attrib3:Integer) and 500 Internal server error is thrown.
Normally, when a datatype of an attribute is attempted to be updated , Atlas throws the following exception and the type is not updated.
{"errorCode":"ATLAS-400-00-029","errorMessage":"Data type update for attribute is not supported"}
Expected the same to happen while importing (i.e) Import failing with Bad request with the proper error message.