[
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)