[ 
https://issues.apache.org/jira/browse/ATLAS-957?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Madhan Neethiraj updated ATLAS-957:
-----------------------------------
    Fix Version/s: 0.7.1-incubating

Committed to 0.7-incubating branch: 
http://git-wip-us.apache.org/repos/asf/incubator-atlas/commit/b61618e0b9412c39dc8e06caf21e87e9bc8c1c35

> Atlas is not capturing topologies that have $ in the data payload
> -----------------------------------------------------------------
>
>                 Key: ATLAS-957
>                 URL: https://issues.apache.org/jira/browse/ATLAS-957
>             Project: Atlas
>          Issue Type: Bug
>            Reporter: Hemanth Yamijala
>            Assignee: Shwetha G S
>            Priority: Critical
>             Fix For: 0.8-incubating, 0.7.1-incubating
>
>         Attachments: ATLAS-957-v2.patch, ATLAS-957.patch
>
>
> We found a topology that created a specific payload in Kafka ATLAS_HOOK 
> topic, that Atlas failed to process with an exception. The payload was:
> {code}
> {
>   "version": {
>     "version": "1.0.0"
>   },
>   "message": {
>     "entities": [{
>       "jsonClass": 
> "org.apache.atlas.typesystem.json.InstanceSerialization$_Reference",
>       "id": {
>         "jsonClass": 
> "org.apache.atlas.typesystem.json.InstanceSerialization$_Id",
>         "id": "-12002007734454",
>         "version": 0,
>         "typeName": "storm_topology",
>         "state": "ACTIVE"
>       },
>       "typeName": "storm_topology",
>       "values": {
>         "name": "WordCountid007f0100_date381916",
>         "startTime": 1466404755258,
>         "outputs": [],
>         "id": "WordCountid007f0100_date381916-5-1466404754",
>         "inputs": [],
>         "qualifiedName": "WordCountid007f0100_date381916",
>         "nodes": [{
>           "jsonClass": 
> "org.apache.atlas.typesystem.json.InstanceSerialization$_Reference",
>           "id": {
>             "jsonClass": 
> "org.apache.atlas.typesystem.json.InstanceSerialization$_Id",
>             "id": "-12002013206349",
>             "version": 0,
>             "typeName": "storm_bolt",
>             "state": "ACTIVE"
>           },
>           "typeName": "storm_bolt",
>           "values": {
>             "name": "split",
>             "outputs": ["count"],
>             "driverClass": "storm.starter.WordCountTopology$SplitSentence",
>             "conf": {
>               "SplitSentence._pendingWrites.takeLock.sync.state": "0",
>               "SplitSentence._running": "true",
>               "SplitSentence.workerTimeoutMills": "0",
>               "SplitSentence.sendHeartbeatFlag.value": "0",
>               "SplitSentence.lastHeartbeatTimestamp.value": "0",
>               "SplitSentence._pendingWrites.notEmpty.this$0.state": "0"
>             },
>             "inputs": ["spout"]
>           },
>           "traitNames": ["DataProcessor"],
>           "traits": {
>             "DataProcessor": {
>               "jsonClass": 
> "org.apache.atlas.typesystem.json.InstanceSerialization$_Struct",
>               "typeName": "DataProcessor",
>               "values": {}
>             }
>           }
>         }, {
>           "jsonClass": 
> "org.apache.atlas.typesystem.json.InstanceSerialization$_Reference",
>           "id": {
>             "jsonClass": 
> "org.apache.atlas.typesystem.json.InstanceSerialization$_Id",
>             "id": "-12002012737263",
>             "version": 0,
>             "typeName": "storm_spout",
>             "state": "ACTIVE"
>           },
>           "typeName": "storm_spout",
>           "values": {
>             "outputs": ["split"],
>             "name": "spout",
>             "driverClass": "storm.starter.spout.RandomSentenceSpout",
>             "conf": {}
>           },
>           "traitNames": ["DataProducer"],
>           "traits": {
>             "DataProducer": {
>               "jsonClass": 
> "org.apache.atlas.typesystem.json.InstanceSerialization$_Struct",
>               "typeName": "DataProducer",
>               "values": {}
>             }
>           }
>         }, {
>           "jsonClass": 
> "org.apache.atlas.typesystem.json.InstanceSerialization$_Reference",
>           "id": {
>             "jsonClass": 
> "org.apache.atlas.typesystem.json.InstanceSerialization$_Id",
>             "id": "-12002021428964",
>             "version": 0,
>             "typeName": "storm_bolt",
>             "state": "ACTIVE"
>           },
>           "typeName": "storm_bolt",
>           "values": {
>             "name": "count",
>             "driverClass": "org.apache.storm.topology.BasicBoltExecutor",
>             "conf": {},
>             "inputs": ["split"]
>           },
>           "traitNames": ["DataProcessor"],
>           "traits": {
>             "DataProcessor": {
>               "jsonClass": 
> "org.apache.atlas.typesystem.json.InstanceSerialization$_Struct",
>               "typeName": "DataProcessor",
>               "values": {}
>             }
>           }
>         }],
>         "owner": "storm",
>         "clusterName": "cl1"
>       },
>       "traitNames": [],
>       "traits": {}
>     }],
>     "type": "ENTITY_CREATE",
>     "user": "storm"
>   }
> }
> {code}
> The exception was
> {code}
> org.apache.atlas.AtlasServiceException: Metadata service API CREATE_ENTITY 
> failed with status 400(Bad Request) Response Body 
> (java.lang.IllegalArgumentException: Name can not contains reserved character 
> $: storm_node.conf.SplitSentence._pendingWrites.notEmpty.this$0.state
>         at 
> com.google.common.base.Preconditions.checkArgument(Preconditions.java:119)
>         at 
> com.thinkaurelius.titan.graphdb.types.StandardRelationTypeMaker.checkName(StandardRelationTypeMaker.java:70)
>         at 
> com.thinkaurelius.titan.graphdb.types.StandardRelationTypeMaker.checkGeneralArguments(StandardRelationTypeMaker.java:79)
>         at 
> com.thinkaurelius.titan.graphdb.types.StandardRelationTypeMaker.makeDefinition(StandardRelationTypeMaker.java:113)
>         at 
> com.thinkaurelius.titan.graphdb.types.StandardPropertyKeyMaker.make(StandardPropertyKeyMaker.java:76)
>         at 
> com.thinkaurelius.titan.graphdb.blueprints.BlueprintsDefaultSchemaMaker.makePropertyKey(BlueprintsDefaultSchemaMaker.java:28)
>         at 
> com.thinkaurelius.titan.graphdb.transaction.StandardTitanTx.getOrCreatePropertyKey(StandardTitanTx.java:902)
>         at 
> com.thinkaurelius.titan.graphdb.vertices.AbstractVertex.setProperty(AbstractVertex.java:239)
>         at 
> org.apache.atlas.repository.graph.GraphHelper.setProperty(GraphHelper.java:256)
>         at 
> org.apache.atlas.repository.graph.TypedInstanceToGraphMapper.mapMapCollectionToVertex(TypedInstanceToGraphMapper.java:424)
>         at 
> org.apache.atlas.repository.graph.TypedInstanceToGraphMapper.mapAttributeToVertex(TypedInstanceToGraphMapper.java:209)
>         at 
> org.apache.atlas.repository.graph.TypedInstanceToGraphMapper.mapInstanceToVertex(TypedInstanceToGraphMapper.java:186)
>         at 
> org.apache.atlas.repository.graph.TypedInstanceToGraphMapper.addOrUpdateAttributesAndTraits(TypedInstanceToGraphMapper.java:168)
>         at 
> org.apache.atlas.repository.graph.TypedInstanceToGraphMapper.addOrUpdateAttributesAndTraits(TypedInstanceToGraphMapper.java:144)
>         at 
> org.apache.atlas.repository.graph.TypedInstanceToGraphMapper.mapTypedInstanceToGraph(TypedInstanceToGraphMapper.java:102)
>         at 
> org.apache.atlas.repository.graph.GraphBackedMetadataRepository.createEntities(GraphBackedMetadataRepository.java:132)
>         at 
> org.apache.atlas.GraphTransactionInterceptor.invoke(GraphTransactionInterceptor.java:42)
>         at 
> org.apache.atlas.services.DefaultMetadataService.createEntities(DefaultMetadataService.java:319)
>         at 
> org.apache.atlas.services.DefaultMetadataService.createEntities(DefaultMetadataService.java:315)
>         at 
> org.apache.atlas.web.resources.EntityResource.submit(EntityResource.java:126)
>         at 
> org.apache.atlas.LocalAtlasClient$1.invoke(LocalAtlasClient.java:82)
>         at 
> org.apache.atlas.LocalAtlasClient$EntityOperation.run(LocalAtlasClient.java:118)
>         at 
> org.apache.atlas.LocalAtlasClient.createEntity(LocalAtlasClient.java:85)
>         at org.apache.atlas.AtlasClient.createEntity(AtlasClient.java:652)
>         at 
> org.apache.atlas.notification.NotificationHookConsumer$HookConsumer.handleMessage(NotificationHookConsumer.java:203)
>         at 
> org.apache.atlas.notification.NotificationHookConsumer$HookConsumer.run(NotificationHookConsumer.java
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to