You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@atlas.apache.org by "Hemanth Yamijala (JIRA)" <ji...@apache.org> on 2016/06/28 07:16:56 UTC

[jira] [Created] (ATLAS-957) Atlas is not capturing topologies that have $ in the data payload

Hemanth Yamijala created ATLAS-957:
--------------------------------------

             Summary: 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


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)