hortonworks / streamline

StreamLine - Streaming Analytics
Apache License 2.0
164 stars 96 forks source link

SAM Application deployment fails due to stack overflow issue with Storm Atlas hook #803

Open zoharsan opened 7 years ago

zoharsan commented 7 years ago

When Atlas hook is enabled on Storm configuration, it causes a stack overflow issue when trying to deploy a SAM application. This is the culprit stack causing the overflow

3577 [main] INFO o.a.s.StormSubmitter - Initializing the registered ISubmitterHook [org.apache.atlas.storm.hook.StormAtlasHook] Exception in thread "main" java.lang.StackOverflowError at java.lang.reflect.InvocationTargetException.(InvocationTargetException.java:72) at sun.reflect.GeneratedConstructorAccessor20.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at java.lang.Class.newInstance(Class.java:442) at org.apache.atlas.storm.hook.StormAtlasHook.initialize(StormAtlasHook.java:82) at org.apache.atlas.storm.hook.StormAtlasHook.(StormAtlasHook.java:46) at sun.reflect.GeneratedConstructorAccessor20.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at java.lang.Class.newInstance(Class.java:442) at org.apache.atlas.storm.hook.StormAtlasHook.initialize(StormAtlasHook.java:82) at org.apache.atlas.storm.hook.StormAtlasHook.(StormAtlasHook.java:46) at sun.reflect.GeneratedConstructorAccessor20.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at java.lang.Class.newInstance(Class.java:442) at org.apache.atlas.storm.hook.StormAtlasHook.initialize(StormAtlasHook.java:82) at org.apache.atlas.storm.hook.StormAtlasHook.(StormAtlasHook.java:46) at sun.reflect.GeneratedConstructorAccessor20.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at java.lang.Class.newInstance(Class.java:442) at org.apache.atlas.storm.hook.StormAtlasHook.initialize(StormAtlasHook.java:82) at org.apache.atlas.storm.hook.StormAtlasHook.(StormAtlasHook.java:46) at sun.reflect.GeneratedConstructorAccessor20.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at java.lang.Class.newInstance(Class.java:442) [...]

HeartSaVioR commented 7 years ago

@zoharsan I'm not expert of Atlas, but I'm assuming that atlas uses StormAtlasHook on storm-bridge-shim to bootstrap class loader and load StormAtlasHook on storm-bridge, but due to unknown reason (I mean I don't know for now) locating class StormAtlasHook on storm-bridge failed and StormAtlasHook on storm-bridge-shim is initialized over and over.

https://github.com/apache/atlas/blob/d23d61b2a88a472978dcd15428a61dfa48d31215/addons/storm-bridge-shim/src/main/java/org/apache/atlas/storm/hook/StormAtlasHook.java

https://github.com/apache/atlas/blob/master/addons/storm-bridge/src/main/java/org/apache/atlas/storm/hook/StormAtlasHook.java

Could you clarify this is only occurring on Streamline deployment? I'm not sure it is relevant to Streamline. Could you submit topology without using Streamline (just from Storm) and see how it goes? Could you provide more information to reproduce? If you're using HDP and/or HDF, please provide the version.

Thanks in advance!