Где находится путь по умолчанию к файлу индекса Apache Lucene с подключаемым модулем Grails? - PullRequest
2 голосов
/ 18 ноября 2011

Я использую в своем проекте Grails 1.3.7 поисковый плагин. Мой проект работал хорошо до тех пор, пока жесткий диск моего macbooks не был заполнен, а osx выдал сообщение о проблемах с памятью и об удалении некоторых файлов (tmp и т. Д.) (После этого я удалил несколько фильмов и получил более 10 ГБ свободного места). Я не изменил исходный код, но когда я сейчас запускаю приложение Grails, я получаю следующее исключение:

Running Grails application..
Configuring Spring Security ...
Configuring SpringSocial Facebook
2011-11-18 01:54:16,804 [main] ERROR context.GrailsContextLoader  - Error executing        bootstraps: Failed to retrieve transaction locks; nested exception is java.io.IOException:    Permission denied
org.compass.core.engine.SearchEngineException: Failed to retrieve transaction locks; nested exception is java.io.IOException: Permission denied
java.io.IOException: Permission denied
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:883)
at org.apache.lucene.store.SimpleFSLock.obtain(SimpleFSLockFactory.java:144)
at org.apache.lucene.store.Lock.obtain(Lock.java:73)
at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager$6.doInTransaction(DefaultLuceneSearchEngineIndexManager.java:203)
at org.compass.core.impl.DefaultCompass$CompassTransactionContext.execute(DefaultCompass.java:423)
at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager.doOperate(DefaultLuceneSearchEngineIndexManager.java:197)
at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager.doReplaceIndex(DefaultLuceneSearchEngineIndexManager.java:266)
at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager.replaceIndex(DefaultLuceneSearchEngineIndexManager.java:261)
at org.compass.gps.impl.SingleCompassGps.doIndex(SingleCompassGps.java:118)
at org.compass.gps.impl.AbstractCompassGps.index(AbstractCompassGps.java:154)
at org.compass.gps.impl.AbstractCompassGps.index(AbstractCompassGps.java:128)
at grails.plugin.searchable.internal.compass.CompassGpsUtils.index(CompassGpsUtils.java:49)
at grails.plugin.searchable.internal.compass.CompassGpsUtils$index.call(Unknown Source)
at SearchableGrailsPlugin$_closure3.doCall(SearchableGrailsPlugin.groovy:158)
at org.grails.tomcat.TomcatServer.start(TomcatServer.groovy:212)
at grails.web.container.EmbeddableServer$start.call(Unknown Source)
at _GrailsRun_groovy$_run_closure5_closure12.doCall(_GrailsRun_groovy:158)
at _GrailsRun_groovy$_run_closure5_closure12.doCall(_GrailsRun_groovy)
at _GrailsSettings_groovy$_run_closure10.doCall(_GrailsSettings_groovy:280)
at _GrailsSettings_groovy$_run_closure10.call(_GrailsSettings_groovy)
at _GrailsRun_groovy$_run_closure5.doCall(_GrailsRun_groovy:149)
at _GrailsRun_groovy$_run_closure5.call(_GrailsRun_groovy)
at _GrailsRun_groovy.runInline(_GrailsRun_groovy:116)
at _GrailsRun_groovy.this$4$runInline(_GrailsRun_groovy)
at _GrailsRun_groovy$_run_closure1.doCall(_GrailsRun_groovy:59)
at RunApp$_run_closure1.doCall(RunApp:33)
at gant.Gant$_dispatch_closure5.doCall(Gant.groovy:381)
at gant.Gant$_dispatch_closure7.doCall(Gant.groovy:415)
at gant.Gant$_dispatch_closure7.doCall(Gant.groovy)
at gant.Gant.withBuildListeners(Gant.groovy:427)
at gant.Gant.this$2$withBuildListeners(Gant.groovy)
at gant.Gant$this$2$withBuildListeners.callCurrent(Unknown Source)
at gant.Gant.dispatch(Gant.groovy:415)
at gant.Gant.this$2$dispatch(Gant.groovy)
at gant.Gant.invokeMethod(Gant.groovy)
at gant.Gant.executeTargets(Gant.groovy:590)
at gant.Gant.executeTargets(Gant.groovy:589)
Application context shutting down...
Application context shutdown.

Я думаю, что есть проблема с индексом lucene в файловой системе, но где я могу найти его? Где хранится папка или файл индекса lucene? Я не изменил конфигурацию плагинов.

Ответы [ 3 ]

0 голосов
/ 19 декабря 2011

Поскольку моя установка tomcat находится в $ {user.home} /. Grails / projects / $ {app.name} / searchable-index, помните, что процесс tomcat, вероятно, выполняется под другим пользователем, чем у вас, поэтому я запустил "sudo nautilus", чтобы увидеть его

0 голосов
/ 02 октября 2012

Похоже, какая-то проблема с разрешениями Unix / OS X.Когда Searchable / Lucene запускается и пытается создать индекс, первым делом он создает файл блокировки в каталоге индекса.Из вашей трассировки стека это выглядит как ошибка.

В файле Searchable.groovy определен путь индекса;возможно, он был переопределен в блоке environment, возможно, даже в Config.groovy.

grails run-app запускает Grails как ваш пользователь, поэтому проблема не имеет ничего общего с Tomcat, работающим какдругой пользователь.

0 голосов
/ 18 ноября 2011

В соответствии с файлом конфигурации по умолчанию

/**
 * The location of the Compass index
 *
 * Examples: "/home/app/compassindex", "ram://app-index" or null to use the default
 *
 * The default is "${user.home}/.grails/projects/${app.name}/searchable-index/${grails.env}"
 */

Так что, если вы не изменили это (вы говорите, что не изменили), я бы посмотрел на

~/.grails/projects/${app.name}/searchable-index/${grails.env}
...