2017-12-30 19 views
0

테스트에서 검색 서비스 구현에서 잠금 경합에 문제가 있음을 발견했습니다.Google Appengine LocalSearchService가 잠금 경합으로 인해 테스트에 실패했습니다.

Dec 30, 2017 6:09:28 PM com.google.appengine.api.search.dev.LocalSearchService indexDocumentForApp 
SEVERE: Unable to access index 
com.google.appengine.repackaged.org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: [email protected]/[path]/WEB-INF/appengine-generated/indexes/dGVzdA/Ym9va3Rh..P/write.lock 
    at com.google.appengine.repackaged.org.apache.lucene.store.Lock.obtain(Lock.java:85) 
    at com.google.appengine.repackaged.org.apache.lucene.index.IndexWriter.init(IndexWriter.java:1562) 
    at com.google.appengine.repackaged.org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:1090) 
    at com.google.appengine.api.search.dev.LocalSearchService.getIndexWriter(LocalSearchService.java:800) 
    at com.google.appengine.api.search.dev.LocalSearchService.indexDocumentForApp(LocalSearchService.java:290) 
    at com.google.appengine.api.search.dev.LocalSearchService.indexDocument(LocalSearchService.java:268) 
    at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at com.google.appengine.tools.development.ApiProxyLocalImpl$AsyncApiCall.invokeApiMethodJava(ApiProxyLocalImpl.java:604) 
    at com.google.appengine.tools.development.ApiProxyLocalImpl$AsyncApiCall.callInternal(ApiProxyLocalImpl.java:559) 
    at com.google.appengine.tools.development.ApiProxyLocalImpl$AsyncApiCall.call(ApiProxyLocalImpl.java:516) 
    at com.google.appengine.tools.development.ApiProxyLocalImpl$AsyncApiCall.call(ApiProxyLocalImpl.java:488) 
    at java.util.concurrent.Executors$PrivilegedCallable$1.run(Executors.java:533) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.util.concurrent.Executors$PrivilegedCallable.call(Executors.java:530) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 

이 시험 자체에 근본적인 경쟁 조건과 관련이있을 것 같지 않지만, 테스트를 괴짜 원인 : 나는 다음과 같은 오류를 참조하십시오. 누구든지이 버그에 대한 해결 방법이 있습니까?

답변

0

검색 서비스 테스트 구성없이 테스트에서 Search Service Indexer를 사용했기 때문입니다. 문제를 해결하기 위해 올바른 구성을 추가하면 문제가 해결됩니다.

private final LocalServiceTestHelper helper = 
     new LocalServiceTestHelper(
       new LocalSearchServiceTestConfig()); 

@Before 
public void setUp() throws Exception { 
    helper.setUp(); 
} 

@After 
public void tearDown() { 
    helper.tearDown(); 
} 
관련 문제