Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Internal error while trying to serialize language settings Resource '/noFilesToBuild' does not exist. #163

Open
jonahgraham opened this issue Nov 11, 2022 · 1 comment
Labels
flakytests Tracking known flaky tests releng Release engineering and project management

Comments

@jonahgraham
Copy link
Member

When running test cases sometimes I see:

Internal error while trying to serialize language settings Resource '/noFilesToBuild' does not exist.

as part of the failing test.

e.g.:

test30NoFilesToBuild (org.eclipse.cdt.managedbuilder.core.tests.ManagedProject30MakefileTests) failed
Expected number (0) of Non-OK status objects in log differs from actual (1).
 Internal error while trying to serialize language settings Resource '/noFilesToBuild' does not exist.
Stack Trace
org.eclipse.core.internal.resources.ResourceException(/noFilesToBuild)[368]: java.lang.Exception: Resource '/noFilesToBuild' does not exist.
 at org.eclipse.core.internal.resources.ResourceException.provideStackTrace(ResourceException.java:42)
 at org.eclipse.core.internal.resources.ResourceException.<init>(ResourceException.java:38)
 at org.eclipse.core.internal.resources.Resource.checkExists(Resource.java:330)
 at org.eclipse.core.internal.resources.Resource.checkAccessible(Resource.java:204)
 at org.eclipse.core.internal.resources.Project.checkAccessible(Project.java:150)
 at org.eclipse.core.internal.resources.Folder.assertCreateRequirements(Folder.java:36)
 at org.eclipse.core.internal.resources.Folder.create(Folder.java:94)
 at org.eclipse.core.internal.resources.Folder.create(Folder.java:122)
 at org.eclipse.cdt.internal.core.language.settings.providers.LanguageSettingsProvidersSerializer.serializeLanguageSettings(LanguageSettingsProvidersSerializer.java:909)
 at org.eclipse.cdt.internal.core.settings.model.xml.XmlProjectDescriptionStorage$DesSerializationRunnable.run(XmlProjectDescriptionStorage.java:178)
 at org.eclipse.cdt.internal.core.settings.model.CProjectDescriptionManager$CompositeWorkspaceRunnable.run(CProjectDescriptionManager.java:204)
 at org.eclipse.cdt.internal.core.settings.model.CProjectDescriptionManager$CompositeWorkspaceRunnable.run(CProjectDescriptionManager.java:204)
 at org.eclipse.cdt.internal.core.settings.model.CProjectDescriptionManager$5.run(CProjectDescriptionManager.java:508)
 at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2380)
 at org.eclipse.cdt.internal.core.settings.model.CProjectDescriptionManager.runAtomic(CProjectDescriptionManager.java:504)
 at org.eclipse.cdt.internal.core.settings.model.CProjectDescriptionManager$4.run(CProjectDescriptionManager.java:484)
 at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
junit.framework.AssertionFailedError: 
Expected number (0) of Non-OK status objects in log differs from actual (1).
	Internal error while trying to serialize language settings Resource '/noFilesToBuild' does not exist.
Stack Trace
org.eclipse.core.internal.resources.ResourceException(/noFilesToBuild)[368]: java.lang.Exception: Resource '/noFilesToBuild' does not exist.
	at org.eclipse.core.internal.resources.ResourceException.provideStackTrace(ResourceException.java:42)
	at org.eclipse.core.internal.resources.ResourceException.<init>(ResourceException.java:38)
	at org.eclipse.core.internal.resources.Resource.checkExists(Resource.java:330)
	at org.eclipse.core.internal.resources.Resource.checkAccessible(Resource.java:204)
	at org.eclipse.core.internal.resources.Project.checkAccessible(Project.java:150)
	at org.eclipse.core.internal.resources.Folder.assertCreateRequirements(Folder.java:36)
	at org.eclipse.core.internal.resources.Folder.create(Folder.java:94)
	at org.eclipse.core.internal.resources.Folder.create(Folder.java:122)
	at org.eclipse.cdt.internal.core.language.settings.providers.LanguageSettingsProvidersSerializer.serializeLanguageSettings(LanguageSettingsProvidersSerializer.java:909)
	at org.eclipse.cdt.internal.core.settings.model.xml.XmlProjectDescriptionStorage$DesSerializationRunnable.run(XmlProjectDescriptionStorage.java:178)
	at org.eclipse.cdt.internal.core.settings.model.CProjectDescriptionManager$CompositeWorkspaceRunnable.run(CProjectDescriptionManager.java:204)
	at org.eclipse.cdt.internal.core.settings.model.CProjectDescriptionManager$CompositeWorkspaceRunnable.run(CProjectDescriptionManager.java:204)
	at org.eclipse.cdt.internal.core.settings.model.CProjectDescriptionManager$5.run(CProjectDescriptionManager.java:508)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2380)
	at org.eclipse.cdt.internal.core.settings.model.CProjectDescriptionManager.runAtomic(CProjectDescriptionManager.java:504)
	at org.eclipse.cdt.internal.core.settings.model.CProjectDescriptionManager$4.run(CProjectDescriptionManager.java:484)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)



Caused by: org.eclipse.core.internal.resources.ResourceException: Resource '/noFilesToBuild' does not exist.
Caused by: java.lang.Exception: Resource '/noFilesToBuild' does not exist.

Follow-on from #117

@jonahgraham
Copy link
Member Author

This happens because of a race condition between the scanner discovery and the project getting deleted at the end of a test. If you change the schedule call at the end of org.eclipse.cdt.managedbuilder.language.settings.providers.AbstractBuiltinSpecsDetector.execute() you can reproduce this, or similar problems, quite easily.

To fix it, probably more checks needed in the specs runner to bail out if the project is gone (or the workbench is shutdown)

@jonahgraham jonahgraham added releng Release engineering and project management flakytests Tracking known flaky tests labels Jan 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
flakytests Tracking known flaky tests releng Release engineering and project management
Projects
None yet
Development

No branches or pull requests

1 participant