Public bug reported: After upgrading to 19.04 tomcat cannot create solr's index directory /var/lib/solr/data/index as seen by the catalina log like this:
18-May-2019 14:06:54.627 WARNING [main] org.apache.solr.core.SolrCore.initIndex [] Solr index directory '/var/lib/solr/data/index' doesn't exist. Creating new index... 18-May-2019 14:06:54.679 SEVERE [main] org.apache.solr.common.SolrException.log java.lang.RuntimeException: java.io.IOException: Cannot create directory: /var/lib/solr/data/index at org.apache.solr.core.SolrCore.initIndex(SolrCore.java:403) at org.apache.solr.core.SolrCore.<init>(SolrCore.java:552) at org.apache.solr.core.CoreContainer.create(CoreContainer.java:480) at org.apache.solr.core.CoreContainer.load(CoreContainer.java:332) at org.apache.solr.core.CoreContainer.load(CoreContainer.java:216) at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:161) at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:96) at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:270) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:251) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:102) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4516) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5162) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:713) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:695) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:631) at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1832) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:526) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:425) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1577) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:424) at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:367) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:929) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:831) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1377) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1367) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:902) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:423) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:928) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.startup.Catalina.start(Catalina.java:638) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:350) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:496) Caused by: java.io.IOException: Cannot create directory: /var/lib/solr/data/index at org.apache.lucene.store.NativeFSLock.obtain(NativeFSLockFactory.java:172) at org.apache.lucene.store.Lock.obtain(Lock.java:72) at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:1098) at org.apache.solr.update.SolrIndexWriter.<init>(SolrIndexWriter.java:84) at org.apache.solr.core.SolrCore.initIndex(SolrCore.java:398) ... 50 more I have also reproduced this on a "clean" new installation in a VM To reproduce: sudo apt-get install solr-tomcat and look in /var/log/tomcat9/catalina.*.log Permissions seems ok like: root@ubuntu-disco:/var/lib/solr/data# ls -ld /var/lib/solr/data drwxrwx--- 2 tomcat tomcat 4096 Mar 2 22:02 /var/lib/solr/data I also checked the /etc/solr/tomcat.policy file which indeed includes: permission java.io.FilePermission "/var/lib/solr", "read,write,delete"; permission java.io.FilePermission "/var/lib/solr/-", "read,write,delete"; (I guess - means recursive, but not entirely sure) So this should also be ok and I don't see it being protected by apparmor So I don't really know why i cannot create that directory root@ubuntu-disco:/var/lib/solr/data# lsb_release -rd Description: Ubuntu 19.04 Release: 19.04 root@ubuntu-disco:/var/lib/solr/data# apt-cache policy solr-tomcat solr-tomcat: Installed: 3.6.2+dfsg-18 Candidate: 3.6.2+dfsg-18 Version table: *** 3.6.2+dfsg-18 500 500 http://archive.ubuntu.com/ubuntu disco/universe amd64 Packages 100 /var/lib/dpkg/status root@ubuntu-disco:/var/lib/solr/data# apt-cache policy tomcat9 tomcat9: Installed: 9.0.16-3 Candidate: 9.0.16-3 Version table: *** 9.0.16-3 500 500 http://archive.ubuntu.com/ubuntu disco/universe amd64 Packages 100 /var/lib/dpkg/status root@ubuntu-disco:/var/lib/solr/data# apt-cache policy solr-common solr-common: Installed: 3.6.2+dfsg-18 Candidate: 3.6.2+dfsg-18 Version table: *** 3.6.2+dfsg-18 500 500 http://archive.ubuntu.com/ubuntu disco/universe amd64 Packages 100 /var/lib/dpkg/status ** Affects: lucene-solr (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1829611 Title: tomcat cannot create the index directory for solr on startup To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/lucene-solr/+bug/1829611/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs