Uploaded image for project: 'Atlas'
  1. Atlas
  2. ATLAS-4731

Entity fetch api call fails for some entity which has businessMetaData with Biginteger attributes

    XMLWordPrintableJSON

Details

    • Bug
    • Status: In Progress
    • Major
    • Resolution: Unresolved
    • None
    • None
    • atlas-core
    • None

    Description

      Using the beta interface we can see our custom typeDefs in the left hand panel

      >-- localTypeDef (1,012)
      custom_typedef_a (1)
      custom_typedef_b (1,008)
      custom_typedef_c (3)

      Selecting localTypeDev/custom__b displays the list of entities in the right hand panel.
      Selecting any of the results generates a "Something went wrong" popup, the rotating loading icon and an unpopulated Properties/Relationships/Classifications/Audits/Tasks page.

      The following ERROR message can be seen in the ATLAS application.log :-
      ERROR - [etp2052996178-280 - xnxnxxnn-nnnn-nnnx-xnnn-nxnnxnnnxnnx:] ~ graph rollback due to exception (GraphTransactionInterceptor:200)
      java.lang.ArrayIndexOutOfBoundsException: Required size [1] exceeds actual remaining size [0]
      at org.janusgraph.diskstorage.util.StaticArrayBuffer.require(StaticArrayBuffer.java:94)
      at org.janusgraph.diskstorage.util.StaticArrayBuffer.getByte(StaticArrayBuffer.java:170)
      at org.janusgraph.diskstorage.util.StaticArrayBuffer.getBytes(StaticArrayBuffer.java:253)
      at org.janusgraph.diskstorage.util.ReadArrayBuffer.getBytes(ReadArrayBuffer.java:120)
      at org.janusgraph.graphdb.database.serialize.attribute.ByteArraySerializer.read(ByteArraySerializer.java:46)
      at org.apache.atlas.repository.graphdb.janus.serializer.BigIntegerSerializer.read(BigIntegerSerializer.java:36)
      at org.apache.atlas.repository.graphdb.janus.serializer.BigIntegerSerializer.read(BigIntegerSerializer.java:30)
      at org.janusgraph.graphdb.database.serialize.StandardSerializer.readObjectNotNullInternal(StandardSerializer.java:305)
      at org.janusgraph.graphdb.database.serialize.StandardSerializer.readObjectInternal(StandardSerializer.java:295)
      at org.janusgraph.graphdb.database.serialize.StandardSerializer.readObject(StandardSerializer.java:275)
      at org.janusgraph.graphdb.database.EdgeSerializer.readpropertyValue(EdgeSerializer.java:215)
      at org.janusgraph.graphdb.database.EdgeSerializer.readpropertyValue(EdgeSerializer.java:205)
      at org.janusgraph.graphdb.database.EdgeSerializer.parseRelation(EdgeSerializer.java:135)
      at org.janusgraph.graphdb.database.EdgeSerializer.readRelation(EdgeSerializer.java:135)
      at org.janusgraph.graphdb.transaction.RelationConstructor.readRelation(RelationConstructor.java:70)
      at org.janusgraph.graphdb.transaction.RelationConstructor$1.next(RelationConstructor.java:57)
      at org.janusgraph.graphdb.transaction.RelationConstructor$1.next(RelationConstructor.java:45)
      at org.apache.tinkerpop.gremlin.structure.Vertex.property(Vertex.java:72)
      at org.apache.tinkerpop.gremlin.structure.Vertex.property(Vertex.java:38)
      at org.apache.atlas.repository.graphdb.janus.AtlasJanusElement.getProperty(AtlasJanusElement.java:66)
      at org.apache.atlas.repository.store.graph.v2.AtlasGraphUtilsV2.getProperty(AtlasGraphUtilsV2.java:283)

      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      So while writing the BusinessMetaData for BigInteger, value=4 we do not call BigIntegerSerializer class, so i won't throw the exception.
      And while access through UI it fetch data from BigintegerSerializer class and throw the Required size [1] exceeds actual remaining size [0] exception.

      Attachments

        1. BigInt_Test_Entity_BusMeta.json
          3 kB
          Paresh Devalia
        2. BigInt_Test_Create.json
          0.4 kB
          Paresh Devalia

        Activity

          People

            pareshD Paresh Devalia
            pareshD Paresh Devalia
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: