Govind,

Thank you for your speedy response. Indeed that seems to be the problem -
after starting with `-Djava.security.manager=allow` the documents are
posting as expected.

Is this a bug that should be raised up to the Solr team? I was able to
reproduce on another machine running MacOS 15.0.1 as well, so I checked the
Solr security policy in /server/etc/security.policy, which contains the
following line:

```
  permission java.io.FilePermission "${java.io.tmpdir}${/}-",
"read,write,delete";
```

(ref:
https://github.com/apache/solr/blob/b6e5f9f08339b1407217a2e8d8ec106cd0d0f587/solr/server/etc/security.policy#L32
)

this seems insufficient for MacOS, so I tried changing it to:

```
  permission java.io.FilePermission "${java.io.tmpdir}${/}*",
"read,write,delete";
```

and this seems to fix the problem.

Anyone else agree this sounds like a bug?

On Fri, Oct 18, 2024 at 9:00 PM govind nitk <govind.n...@gmail.com> wrote:

> Solr server does not have permission to read a specific file in the Jetty
> temporary directory
> for you local setup
> try starting solr with java.security.manager=allow
> It will disable the security manager entirely and remove all the security
> checks enforced by it, allowing SOLR to access any files or resources
> without restrictions.
>
> Note that, its *not recommended for prod* envs.
> If you have separate policy files, you can add dir/file specific grant
> permissions.
>
> best,
> govind
>
>
> On Sat, Oct 19, 2024 at 6:01 AM Ivo Janssen <fox...@gmail.com> wrote:
>
> > Hi all,
> >
> > I'm using Solr 9.7 on MacOS, with Cell enabled, and it returns a 500
> error
> > when I try to add a document. The error on Solr's side is as follows:
> >
> > (full log truncated; can paste the full output if desired)
> > ```
> > 2024-10-18 00:49:03.350 INFO  (qtp1955990522-40-localhost-1) [c: s: r:
> > x:test_docstore t:localhost-1] o.a.s.c.PluginBag Going to create a new
> > requestHandler with {type = requestHandler,name = /update/extract,class =
> > solr.extraction.ExtractingRequestHandler,attributes = {startup=lazy,
> > name=/update/extract,
> class=solr.extraction.ExtractingRequestHandler},args
> > = {defaults={fmap.Last-Modified=last_modified, uprefix=ignored_,
> > df=_text_}}}
> > 2024-10-18 00:49:03.653 ERROR (qtp1955990522-40-localhost-1) [c: s: r:
> > x:test_docstore t:localhost-1] o.a.s.s.HttpSolrCall 500 Exception =>
> > java.lang.IllegalStateException: java.security.AccessControlException:
> > access denied ("java.io.FilePermission"
> >
> >
> "/private/var/folders/8y/0166d0yx0wd7lxycs42l6t9c0000gs/T/jetty-127_0_0_1-8983-webapp-_solr-any-16097010865664396603"
> > "read")
> > at
> >
> >
> org.eclipse.jetty.server.MultiPartFormInputStream.throwIfError(MultiPartFormInputStream.java:526)
> > java.lang.IllegalStateException: java.security.AccessControlException:
> > access denied ("java.io.FilePermission"
> >
> >
> "/private/var/folders/8y/0166d0yx0wd7lxycs42l6t9c0000gs/T/jetty-127_0_0_1-8983-webapp-_solr-any-16097010865664396603"
> > "read")
> > at
> >
> >
> org.eclipse.jetty.server.MultiPartFormInputStream.throwIfError(MultiPartFormInputStream.java:526)
> > ~[jetty-server-10.0.22.jar:10.0.22]
> > at
> >
> >
> org.eclipse.jetty.server.MultiPartFormInputStream.getParts(MultiPartFormInputStream.java:491)
> > ~[jetty-server-10.0.22.jar:10.0.22]
> > at
> >
> >
> org.eclipse.jetty.server.MultiParts$MultiPartsHttpParser.getParts(MultiParts.java:90)
> > ~[jetty-server-10.0.22.jar:10.0.22]
> > at org.eclipse.jetty.server.Request.getParts(Request.java:2354)
> > ~[jetty-server-10.0.22.jar:10.0.22]
> > at org.eclipse.jetty.server.Request.getParts(Request.java:2328)
> > ~[jetty-server-10.0.22.jar:10.0.22]
> > at
> >
> >
> javax.servlet.http.HttpServletRequestWrapper.getParts(HttpServletRequestWrapper.java:317)
> > ~[jetty-servlet-api-4.0.6.jar:?]
> > at
> >
> >
> org.apache.solr.servlet.SolrRequestParsers$MultipartRequestParser.parseParamsAndFillStreams(SolrRequestParsers.java:649)
> > ~[?:?]
> > at
> >
> >
> org.apache.solr.servlet.SolrRequestParsers$StandardRequestParser.parseParamsAndFillStreams(SolrRequestParsers.java:893)
> > ~[?:?]
> > at
> >
> >
> org.apache.solr.servlet.SolrRequestParsers.parse(SolrRequestParsers.java:169)
> > ~[?:?]
> > at org.apache.solr.servlet.HttpSolrCall.init(HttpSolrCall.java:313)
> ~[?:?]
> > at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:524)
> ~[?:?]
> > at
> >
> >
> org.apache.solr.servlet.SolrDispatchFilter.dispatch(SolrDispatchFilter.java:251)
> > ~[?:?]
> > at
> >
> >
> org.apache.solr.servlet.SolrDispatchFilter.lambda$doFilter$0(SolrDispatchFilter.java:208)
> > ~[?:?]
> > at
> >
> >
> org.apache.solr.servlet.ServletUtils.traceHttpRequestExecution2(ServletUtils.java:243)
> > ~[?:?]
> > at
> >
> >
> org.apache.solr.servlet.ServletUtils.rateLimitRequest(ServletUtils.java:213)
> > ~[?:?]
> > ...
> > ```
> >
> > My limited knowledge of MacOS internals makes me believe it's related to
> > temp file creation/deletion, but the folder in question is indeed
> readable
> > by the current user. (in fact, Solr seems to be fine with creating and
> > deleting it, since it disappears when I shut down Solr, and reappears
> again
> > when I restart it)
> >
> > Is this a Solr issue, a Jetty issue, or...? Any thoughts on how to solve?
> >
> > Any help is much appreciated.
> >
>

Reply via email to