Matthew Reinbold
Matthew Reinbold

Reputation: 117

Myrrix java.io.IOException upon ingest when following the tutorial

I am attempting to follow the tutorial for evaluating Myrrix for my collaborative filtering needs: http://myrrix.com/quick-start/

On my Windows 7 laptop, I am able to get the stand-alone java binary running. I can load the web interface on port 80. However, when I go to ingest the sample audioscrobber data I get the message:

Error 500 : /ingest

java.io.IOException: The temporary upload location [C:\Users\XXXXXX\AppData\Local\Temp\1372181071432-0\work\Tomcat\localhost\_\tmp] is not valid
at org.apache.catalina.connector.Request.parseParts(Request.java:2698)
at org.apache.catalina.connector.Request.getParts(Request.java:2640)
at org.apache.catalina.connector.RequestFacade.getParts(RequestFacade.java:1076)
at net.myrrix.web.servlets.IngestServlet.doPost(IngestServlet.java:64)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at net.myrrix.web.servlets.AbstractMyrrixServlet.service(AbstractMyrrixServlet.java:155)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1686)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

I was hoping that it was just a matter of adding a "--localInputDir" directive to the command line would fix things. However, this seems unrelated to where the Tomcat server is trying to upload.

How do I modify the stand-alone binary so that I am able to successfully ingest sample data for training?

Upvotes: 1

Views: 1289

Answers (2)

Sean Owen
Sean Owen

Reputation: 66896

I have heard of this before but not been able to reproduce it. For some reason, the temp dir that Tomcat allocates is either not actually created, or not accessible.

You can try deleting that whole directory starting with "137..." to ensure that Tomcat makes another new one. Or try investigating this path to see if you can create and/or make accessible that temp dir.

This should be controlled by Tomcat's javax.servlet.context.tempdir system property. You could also try setting that to somewhere else like /tmp.

As far as I know it's some oddness with Tomcat and Windows, but it may be transient and fixable per above.

Upvotes: 1

Matthew Reinbold
Matthew Reinbold

Reputation: 117

Odd. If I follow the path in the provided error, the final 'tmp' directory is missing. If I manually add it in windows explorer and attempt to re-ingest, things appear to go as planned.

Viewing the log, it appears that the learning process has begun.

Upvotes: 2

Related Questions