Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 443416

Summary: Server tests hang in SearchTest.testPhraseDifferentCase()
Product: [ECD] Orion Reporter: Paul Webster <pwebster>
Component: ServerAssignee: Anthony Hunter <ahunter.eclipse>
Status: RESOLVED FIXED QA Contact:
Severity: major    
Priority: P3 CC: ahunter.eclipse, john.arthorne
Version: 6.0   
Target Milestone: 8.0   
Hardware: PC   
OS: Linux   
Whiteboard:
Attachments:
Description Flags
Stack dump while it's hung none

Description Paul Webster CLA 2014-09-05 10:05:39 EDT
Created attachment 246776 [details]
Stack dump while it's hung

I'm running the server tests against master, and it appears to hang at org.eclipse.orion.server.tests.search.SearchTest.testPhraseDifferentCase()

The the system issues the following error and the test says it passed.

!ENTRY org.eclipse.core.jobs 4 2 2014-09-05 10:00:31.668
!MESSAGE An internal error occurred during: "Indexing".
!STACK 0
java.lang.NullPointerException
	at org.eclipse.core.internal.filesystem.InternalFileSystemCore.getStore(InternalFileSystemCore.java:104)
	at org.eclipse.core.filesystem.EFS.getStore(EFS.java:478)
	at org.eclipse.orion.server.core.metastore.ProjectInfo.getProjectStore(ProjectInfo.java:43)
	at org.eclipse.orion.internal.server.search.Indexer.indexProject(Indexer.java:210)
	at org.eclipse.orion.internal.server.search.Indexer.indexWorkspace(Indexer.java:192)
	at org.eclipse.orion.internal.server.search.Indexer.indexUser(Indexer.java:171)
	at org.eclipse.orion.internal.server.search.Indexer.run(Indexer.java:379)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

It moved on to org.eclipse.orion.server.tests.search.SearchTest.testHTMLTag() after the error below:

!ENTRY org.eclipse.core.jobs 4 2 2014-09-05 10:02:51.232
!MESSAGE An internal error occurred during: "Indexing".
!STACK 0
java.lang.NullPointerException
	at org.eclipse.core.internal.filesystem.InternalFileSystemCore.getStore(InternalFileSystemCore.java:104)
	at org.eclipse.core.filesystem.EFS.getStore(EFS.java:478)
	at org.eclipse.orion.server.core.metastore.ProjectInfo.getProjectStore(ProjectInfo.java:43)
	at org.eclipse.orion.internal.server.search.Indexer.indexProject(Indexer.java:210)
	at org.eclipse.orion.internal.server.search.Indexer.indexWorkspace(Indexer.java:192)
	at org.eclipse.orion.internal.server.search.Indexer.indexUser(Indexer.java:171)
	at org.eclipse.orion.internal.server.search.Indexer.run(Indexer.java:379)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Comment 1 Paul Webster CLA 2014-09-05 10:45:19 EDT
The traceback for the Indexer job failure:
user	UserInfo  (id=31127)	
	fullName	"Unnamed User" (id=31150)	
	id	"MetaStoreTestUser" (id=31153)	
	operations	Collections$SynchronizedMap<K,V>  (id=31154)	
	properties	Collections$SynchronizedMap<K,V>  (id=31157)	
	userName	"MetaStoreTestUser" (id=31159)	
	workspaceIds	Collections$UnmodifiableRandomAccessList<E>  (id=31161)	
org.eclipse.orion.server.core.metastore.UserInfo@40d4396e
Unnamed User
MetaStoreTestUser
{}
{}
MetaStoreTestUser
[MetaStoreTestUser-OrionContent]


workspace	WorkspaceInfo  (id=31132)	
	fullName	"Orion Content" (id=31178)	
	id	"MetaStoreTestUser-OrionContent" (id=31179)	
	operations	Collections$SynchronizedMap<K,V>  (id=31180)	
	projectNames	Collections$UnmodifiableRandomAccessList<E>  (id=31181)	
	properties	Collections$SynchronizedMap<K,V>  (id=31183)	
	userId	"MetaStoreTestUser" (id=31185)	
org.eclipse.orion.server.core.metastore.WorkspaceInfo@2df8bd20
Orion Content
MetaStoreTestUser-OrionContent
{}
[Project 0, Project 1, Project 2, Project 3, Project 4, Project 5, Project 6, Project 7, Project 8, Project 9, Project 10, Project 11, Project 12, Project 13, Project 14, Project 15, Project 16, Project 17, Project 18, Project 19, Project 20, Project 21, Project 22, Project 23, Project 24, Project 25, Project 26, Project 27, Project 28, Project 29, Project 30, Project 31, Project 32, Project 33, Project 34, Project 35, Project 36, Project 37, Project 38, Project 39, Project 40, Project 41, Project 42, Project 43, Project 44, Project 45, Project 46, Project 47, Project 48, Project 49, Project 50, Project 51, Project 52, Project 53, Project 54, Project 55, Project 56, Project 57, Project 58, Project 59, Project 60, Project 61, Project 62, Project 63, Project 64, Project 65, Project 66, Project 67, Project 68, Project 69, Project 70, Project 71, Project 72, Project 73, Project 74, Project 75, Project 76, Project 77, Project 78, Project 79, Project 80, Project 81, Project 82, Project 83, Project 84, Project 85, Project 86, Project 87, Project 88, Project 89, Project 90, Project 91, Project 92, Project 93, Project 94, Project 95, Project 96, Project 97, Project 98, Project 99]
{}
MetaStoreTestUser


project	ProjectInfo  (id=31119)	
	contentLocation	null	
	fullName	"Project 0" (id=31173)	
	id	"Project 0" (id=31174)	
	operations	Collections$SynchronizedMap<K,V>  (id=31175)	
	properties	Collections$SynchronizedMap<K,V>  (id=31176)	
	workspaceId	"MetaStoreTestUser-OrionContent" (id=31177)	
org.eclipse.orion.server.core.metastore.ProjectInfo@730d5810
null
Project 0
Project 0
{}
{}
MetaStoreTestUser-OrionContent
Comment 2 Paul Webster CLA 2014-09-05 10:45:44 EDT
For some reason, project 0 has a contentLocation of null, and that causes at least the NPE.

PW
Comment 3 Paul Webster CLA 2014-09-05 11:30:49 EDT
Each indexer job seems to be indexing a lot of stuff outside of my junit-workspace:

2014-09-05 11:08:26.367 [Worker-57] DEBUG o.e.o.internal.server.search.Indexer - Indexing contents of file: file:/opt/pwebster/git/O70/org.eclipse.orion.server/releng/org.eclipse.orion.server.repository/target/products/org.eclipse.orion/macosx/cocoa/x86/eclipse/plugins/org.eclipse.orion.client.git_1.0.0.v20140708-1425/web/orion/git/gitStatusExplorer.js
2014-09-05 11:08:26.417 [Worker-57] DEBUG o.e.o.internal.server.search.Indexer - Indexing contents of file: file:/opt/pwebster/git/O70/org.eclipse.orion.server/releng/org.eclipse.orion.server.repository/target/products/org.eclipse.orion/macosx/cocoa/x86/eclipse/plugins/org.eclipse.orion.client.git_1.0.0.v20140708-1425/web/orion/git/uiUtil.js
2014-09-05 11:08:26.440 [Worker-57] DEBUG o.e.o.internal.server.search.Indexer - Indexing contents of file: file:/opt/pwebster/git/O70/org.eclipse.orion.server/releng/org.eclipse.orion.server.repository/target/products/org.eclipse.orion/macosx/cocoa/x86/eclipse/plugins/org.eclipse.orion.client.git_1.0.0.v20140708-1425/web/orion/git/gitConfigPreference.js


It should just be entries like:
2014-09-05 11:19:26.300 [Worker-57] DEBUG o.e.o.internal.server.search.Indexer - Indexing project id: testMergeFailedDirtyWorkTreeProject name: testMergeFailedDirtyWorkTreeProject
2014-09-05 11:19:26.314 [Worker-57] DEBUG o.e.o.internal.server.search.Indexer - Indexing contents of file: file:/opt/pwebster/workspaces/junit-workspace/te/testMergeFailedDirtyWorkTree/OrionContent/testMergeFailedDirtyWorkTreeProject/test.txt
2014-09-05 11:19:26.336 [Worker-57] DEBUG o.e.o.internal.server.search.Indexer - Indexing contents of file: file:/opt/pwebster/workspaces/junit-workspace/te/testMergeFailedDirtyWorkTree/OrionContent/testMergeFailedDirtyWorkTreeProject/folder/folder.txt


I'll try and find out why it's indexing outside the workspace.

PW
Comment 4 Paul Webster CLA 2014-09-05 12:01:46 EDT
After the linked project test, the indexer has a huge amount to index and all of the tests after that (especially the server test) are slow.

te/testLogOrionServerLinked has testLogOrionServerLinkedProject.json:
"ContentLocation": "file:/opt/pwebster/git/O70/org.eclipse.orion.server/",

That's the root of my server git repo, and because I've run maven in it it has even more stuff to index.

PW
Comment 5 Anthony Hunter CLA 2014-09-10 18:22:36 EDT
I have disabled testLogOrionServerLinkedProject for now since it breaks things as you mention above.

I sorted AllServerTests as while ago, AllGitTests used to be in the middle, now it is at the start. I am going to try moving AllGitTests to the end of AllServerTests to see if that improves things. 

This is commit:
http://git.eclipse.org/c/orion/org.eclipse.orion.server.git/commit/?id=e8fad75ceb8461c10ea3fa6da2d097b8504c8012
Comment 6 Anthony Hunter CLA 2015-05-08 10:05:46 EDT
The Indexer is no more.