Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
If a POST request is made to the endpoint '/api/atlas/v2/types/typedefs' using a JSON payload that contains a duplicate GUID value, the response is 500 Internal server error.
Expected response in such scenarios should be 400 Bad request.
Steps to reproduce :-
1. Make a POST request to the '/api/atlas/v2/types/typedefs' endpoint, using the JSON payload attached below, it will create a new typedef.
2. Now, modify the name of the typedef, and make a POST request again. The response is 500 Internal server error. If the Atlas application log is checked, it shows the following error
2024-08-16 17:23:55,293 INFO org.apache.atlas.web.filters.AtlasAuthenticationFilter: [etp57241990-241]: Logged into Atlas as = hrt_qa, by proxyUser = null 2024-08-16 17:23:55,293 INFO org.apache.atlas.web.filters.AtlasAuthenticationFilter: [etp57241990-241]: Request from authenticated user: knox, URL=/api/atlas/v2/types/typedefs?doAs=hrt_qa 2024-08-16 17:23:55,309 ERROR org.apache.atlas.GraphTransactionInterceptor: [etp57241990-241 - b2423e47-aeca-40e4-b553-21c138363270]: graph rollback due to exception org.apache.atlas.repository.graphdb.AtlasSchemaViolationException: org.janusgraph.core.SchemaViolationException: Adding this property for key [__guid] and value [-910550886035] violates a uniqueness constraint [__guid] at org.apache.atlas.repository.graphdb.janus.AtlasJanusElement.setProperty(AtlasJanusElement.java:151) ~[atlas-graphdb-janus-2.1.0.7.2.18.300-30.jar:2.1.0.7.2.18.300-30] at org.apache.atlas.repository.store.graph.v2.AtlasTypeDefGraphStoreV2.createTypeVertex(AtlasTypeDefGraphStoreV2.java:207) ~[atlas-repository-2.1.0.7.2.18.300-30.jar:2.1.0.7.2.18.300-30] at org.apache.atlas.repository.store.graph.v2.AtlasEntityDefStoreV2.preCreate(AtlasEntityDefStoreV2.java:75) ~[atlas-repository-2.1.0.7.2.18.300-30.jar:2.1.0.7.2.18.300-30] at org.apache.atlas.repository.store.graph.v2.AtlasEntityDefStoreV2.preCreate(AtlasEntityDefStoreV2.java:44) ~[atlas-repository-2.1.0.7.2.18.300-30.jar:2.1.0.7.2.18.300-30] at org.apache.atlas.repository.store.graph.AtlasTypeDefGraphStore.addToGraphStore(AtlasTypeDefGraphStore.java:985) ~[atlas-repository-2.1.0.7.2.18.300-30.jar:2.1.0.7.2.18.300-30] at org.apache.atlas.repository.store.graph.AtlasTypeDefGraphStore.createTypesDef(AtlasTypeDefGraphStore.java:399) ~[atlas-repository-2.1.0.7.2.18.300-30.jar:2.1.0.7.2.18.300-30] at org.apache.atlas.repository.store.graph.AtlasTypeDefGraphStore$$FastClassBySpringCGLIB$$5226c80b.invoke(<generated>) ~[atlas-repository-2.1.0.7.2.18.300-30.jar:2.1.0.7.2.18.300-30] at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.34.jar:5.3.34]
The expected response should have been 400 Bad request.