Bug#933857: solr-jetty: Jetty lacks necessary write permissions to /var/lib/solr/data/index/

beirer debian at lowmem.net
Sun Aug 4 14:31:52 BST 2019


Package: solr-jetty
Version: 3.6.2+dfsg-20
Severity: important

Hi Maintainers,

After upgrdaing from Stretch to Buster I experienced the following
problem:

Jetty lacks write permissions to /var/lib/solr/data/index, which results
in exceptions for some SOLR operations.

To reproduce:

/usr/bin/curl -s http://localhost:8080/solr/update?optimize=true

journalctl -u jetty9.service: 

Aug 04 14:21:42 srv1 jetty9[700]: Aug 04, 2019 2:21:42 PM org.apache.solr.common.SolrException log
Aug 04 14:21:42 srv1 jetty9[700]: SEVERE: org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: NativeFSLock@/var/lib/solr/data/index/write.lock: java.io.FileNotFoundException: /var/lib/solr/da
Aug 04 14:21:42 srv1 jetty9[700]:         at org.apache.lucene.store.Lock.obtain(Lock.java:84)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:1098)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.apache.solr.update.SolrIndexWriter.<init>(SolrIndexWriter.java:84)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.apache.solr.update.UpdateHandler.createMainIndexWriter(UpdateHandler.java:101)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.apache.solr.update.DirectUpdateHandler2.openWriter(DirectUpdateHandler2.java:171)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.apache.solr.update.DirectUpdateHandler2.commit(DirectUpdateHandler2.java:404)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.apache.solr.update.processor.RunUpdateProcessor.processCommit(RunUpdateProcessorFactory.java:85)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.apache.solr.update.processor.LogUpdateProcessor.processCommit(LogUpdateProcessorFactory.java:154)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.apache.solr.handler.RequestHandlerUtils.handleCommit(RequestHandlerUtils.java:107)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:52)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.apache.solr.core.SolrCore.execute(SolrCore.java:1376)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:365)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:260)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1602)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1701)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1668)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.server.Server.handle(Server.java:502)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
Aug 04 14:21:42 srv1 jetty9[700]:         at java.base/java.lang.Thread.run(Thread.java:834)
Aug 04 14:21:42 srv1 jetty9[700]: Caused by: java.io.FileNotFoundException: /var/lib/solr/data/index/write.lock (Read-only file system)
Aug 04 14:21:42 srv1 jetty9[700]:         at java.base/java.io.RandomAccessFile.open0(Native Method)
Aug 04 14:21:42 srv1 jetty9[700]:         at java.base/java.io.RandomAccessFile.open(RandomAccessFile.java:345)
Aug 04 14:21:42 srv1 jetty9[700]:         at java.base/java.io.RandomAccessFile.<init>(RandomAccessFile.java:259)
Aug 04 14:21:42 srv1 jetty9[700]:         at java.base/java.io.RandomAccessFile.<init>(RandomAccessFile.java:214)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.apache.lucene.store.NativeFSLock.obtain(NativeFSLockFactory.java:203)
Aug 04 14:21:42 srv1 jetty9[700]:         at org.apache.lucene.store.Lock.obtain(Lock.java:95)
Aug 04 14:21:42 srv1 jetty9[700]:         ... 40 more




This seems to be very similar to Bug #919638 "solr-tomcat: Permission problems after update to tomcat9" (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919638).
The fix is also similar:

Copy /lib/systemd/system/jetty9.service to /etc/systemd/system and modify
it by adding


ReadWritePaths=/var/lib/solr/data

to the # Security paragraph.

Restart jetty:

systemctl restart jetty9.service




BTW, the modification in /etc/solr/solr-jetty.xml attached below is due
to bug #933854 (reported by me) and is probaly unrelated to above
behaviour, I attached it for completeness.

HTH, best regards,

stephan


-- System Information:
Debian Release: 10.0
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.19.0-5-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages solr-jetty depends on:
ii  default-jdk [java5-sdk]     2:1.11-71
ii  jetty9                      9.4.15-1
ii  libjetty9-extra-java        9.4.15-1
ii  openjdk-11-jdk [java5-sdk]  11.0.3+7-5
ii  solr-common                 3.6.2+dfsg-20

solr-jetty recommends no packages.

solr-jetty suggests no packages.

-- Configuration Files:
/etc/solr/solr-jetty.xml changed:
<?xml version="1.0"  encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<!-- Context configuration file for the Solr web application in Jetty -->
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  <Set name="contextPath">/solr</Set>
  <Set name="war">/usr/share/solr/web</Set>
  <!-- Set the solr.solr.home system property -->
  <Call name="setProperty" class="java.lang.System">
    <Arg type="String">solr.solr.home</Arg>
    <Arg type="String">/usr/share/solr</Arg>
  </Call>
  <!-- Enable symlinks -->
  <!-- Disabled um Problemen beim SOLR-Start aus dem Weg zu gehen 
  <Call name="addAliasCheck">
    <Arg>
      <New class="org.eclipse.jetty.server.handler.ContextHandler$ApproveSameSuffixAliases"/>
    </Arg>
  </Call>
  -->
</Configure>


-- no debconf information



More information about the pkg-java-maintainers mailing list