[ 
https://issues.apache.org/jira/browse/METRON-2221?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16911538#comment-16911538
 ] 

Anand Subramanian commented on METRON-2221:
-------------------------------------------

Few things to note:
 * Importing the notebooks manually works fine.

 * Importing the notebooks using 'curl' command works fine.

 * This issue is seen only when importing notebooks using the python-requests 
module.

Upon speaking with the Zeppelin dev, they are not very sure why the notebook 
import is failing through python

The solution in order to get this working would be to swap out the python code 
in 
[here|https://github.com/apache/metron/blob/master/metron-deployment/packaging/ambari/metron-mpack/src/main/resources/common-services/METRON/CURRENT/package/scripts/indexing_master.py#L223]
 with 'curl' commands.

> Notebook import fails through Zeppelin REST API
> -----------------------------------------------
>
>                 Key: METRON-2221
>                 URL: https://issues.apache.org/jira/browse/METRON-2221
>             Project: Metron
>          Issue Type: Bug
>            Reporter: Anand Subramanian
>            Assignee: Anand Subramanian
>            Priority: Major
>
> Steps to Reproduce:
>  * Go to Ambari UI -> Metron -> Service Actions -> Zeppelin Notebook Import
>  * Import fails. Ambari install logs show:
> {code:java}
> Traceback (most recent call last):
>   File 
> "/var/lib/ambari-agent/cache/common-services/METRON/0.7.1.1.9.1.0/package/scripts/indexing_master.py",
>  line 244, in <module>
>     Indexing().execute()
>   File 
> "/usr/lib/ambari-agent/lib/resource_management/libraries/script/script.py", 
> line 375, in execute
>     method(env)
>   File 
> "/var/lib/ambari-agent/cache/common-services/METRON/0.7.1.1.9.1.0/package/scripts/indexing_master.py",
>  line 240, in zeppelin_notebook_import
>     res = ses.post(zeppelin_import_url, files=zeppelin_notebook)
>   File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 349, in 
> post
>     return self.request('POST', url, data=data, **kwargs)
>   File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 288, in 
> request
>     resp = self.send(prep, stream=stream, timeout=timeout, verify=verify, 
> cert=cert, proxies=proxies)
>   File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 383, in 
> send
>     r = adapter.send(request, **kwargs)
>   File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 206, in 
> send
>     raise ConnectionError(sockerr)
> requests.exceptions.ConnectionError: [Errno 104] Connection reset by peer
>   {code}
>  
> Zeppelin logs show the following error:
>  
> {code:java}
>  WARN [2019-04-22 16:01:21,547] ({qtp1327536153-15} 
> ServletHandler.java[doHandle]:620) -
> javax.servlet.ServletException: com.google.gson.JsonSyntaxException: 
> java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 
> 1 column 35
>         at 
> org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:489)
>         at 
> org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427)
>         at 
> org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388)
>         at 
> org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341)
>         at 
> org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228)
>         at 
> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
>         at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
>         at 
> org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
>         at 
> org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
>         at 
> org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
>         at 
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>         at 
> org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
>         at 
> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
>         at 
> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
>         at 
> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
>         at 
> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
>         at 
> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
>         at 
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
>         at 
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>         at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
>         at org.apache.zeppelin.server.CorsFilter.doFilter(CorsFilter.java:72)
>         at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
>         at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
>         at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
>         at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
>         at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
>         at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
>         at 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
>         at 
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
>         at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
>         at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
>         at 
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
>         at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
>         at org.eclipse.jetty.server.Server.handle(Server.java:499)
>         at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
>         at 
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
>         at 
> org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
>         at 
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
>         at 
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
>         at java.lang.Thread.run(Thread.java:745)
> Caused by: com.google.gson.JsonSyntaxException: 
> java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 
> 1 column 35
>         at 
> com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:176)
>         at com.google.gson.Gson.fromJson(Gson.java:791)
>         at org.apache.zeppelin.notebook.Notebook.importNote(Notebook.java:214)
>         at 
> org.apache.zeppelin.rest.NotebookRestApi.importNote(NotebookRestApi.java:333)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:498)
>         at 
> org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
>         at 
> org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144)
>         at 
> org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161)
>         at 
> org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160)
>         at 
> org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99)
>         at 
> org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)
>         at 
> org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)
>         at 
> org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)
>         at 
> org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326)
>         at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
>         at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
>         at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
>         at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
>         at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
>         at 
> org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
>         at 
> org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)
>         at 
> org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)
>         at 
> org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473)
>         ... 39 more
> Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was 
> STRING at line 1 column 35
>         at com.google.gson.stream.JsonReader.expect(JsonReader.java:339)
>         at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:322)
>         at 
> com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:165)
>         ... 64 more{code}
>  



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to