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

Bug 261639

Summary: Directorywatcher is logging lots of "missing filename property" messages
Product: [Eclipse Project] Equinox Reporter: Thomas Hallgren <thomas>
Component: p2Assignee: Simon Kaegi <simon_kaegi>
Status: RESOLVED WONTFIX QA Contact:
Severity: normal    
Priority: P3 CC: aniefer, pascal, simon_kaegi
Version: unspecified   
Target Milestone: 3.5   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Thomas Hallgren CLA 2009-01-20 08:58:14 EST
When using the SDK-N20090118-2000 nightly build I get many entries like this in the log. One for each of the platform (I'm using the delta pack):

!ENTRY org.eclipse.equinox.p2.directorywatcher 4 0 2009-01-20 10:03:22.484
!MESSAGE The installable unit org.eclipse.equinox.executable_root.motif.hpux.PA_RISC is missing the filename property.

It might be that it stems from an attempt to install using a meta-data repository generated with Eclipse 3.4.1. I'll debug and see if I can find the reason.
Comment 1 Thomas Hallgren CLA 2009-01-20 19:15:28 EST
I investigated some more on this. During boot, I get to the FeaturesAction.createFeatureRootFileIU(). From the looks of it, it doesn't set the "file.name" property which in turn results in an abundance of log messages. At least when the delta pack is present.

I provide two stacks here. The first one is where the culprit IU's are created:

	MetadataFactory$InstallableUnitDescription.unitCreate() line: 147	
	MetadataFactory.createInstallableUnit(MetadataFactory$InstallableUnitDescription) line: 207	
	FeaturesAction.createFeatureRootFileIU(String, String, File, FileSetDescriptor) line: 245	
	FeaturesAction.generateRootFileIU(String, String, File, FileSetDescriptor, IPublisherResult, IPublisherInfo) line: 444	
	FeaturesAction.generateRootFileIUs(Feature, IPublisherResult, IPublisherInfo) line: 462	
	FeaturesAction.generateFeatureIUs(Feature[], IPublisherResult, IPublisherInfo) line: 426	
	FeaturesAction.perform(IPublisherInfo, IPublisherResult, IProgressMonitor) line: 644	
	RepositoryListener.publish(IPublisherAction, boolean) line: 172	
	RepositoryListener.processFeature(File, boolean) line: 167	
	RepositoryListener.process(File, boolean) line: 145	
	RepositoryListener.added(File) line: 129	
	BundlePoolFilteredListener.added(File) line: 39	
	SiteListener.added(File) line: 318	
	DirectoryWatcher.processFile(File, DirectoryChangeListener) line: 200	
	DirectoryWatcher.scanDirectories() line: 161	
	DirectoryWatcher.poll() line: 108	
	SiteListener.synchronizeRepositories(ExtensionLocationMetadataRepository, ExtensionLocationArtifactRepository, File) line: 100	
	ExtensionLocationMetadataRepository.ensureInitialized() line: 61	
	ExtensionLocationMetadataRepository.getProperties() line: 163	
	MetadataRepositoryManager(AbstractRepositoryManager).addRepository(IRepository, boolean, String) line: 109	
	MetadataRepositoryManager.addRepository(IMetadataRepository) line: 36	
	Activator.createExtensionLocationMetadataRepository(URI, String, Map) line: 66	
	PlatformXmlListener.synchronizeConfiguration(Configuration) line: 221	
	PlatformXmlListener.stopPoll() line: 132	
	DirectoryWatcher.stopPoll() line: 172	
	DirectoryWatcher.poll() line: 109	
	Activator.watchConfiguration() line: 445	
	Activator.start(BundleContext) line: 155	


The second stack is where the printout occurs:

	RepositoryListener.synchronizeCurrentFiles() line: 281	
	RepositoryListener.startPoll() line: 189	
	BundlePoolFilteredListener.startPoll() line: 62	
	SiteListener.startPoll() line: 346	
	DirectoryWatcher.startPoll() line: 137	
	DirectoryWatcher.poll() line: 107	
	SiteListener.synchronizeRepositories(ExtensionLocationMetadataRepository, ExtensionLocationArtifactRepository, File) line: 100	
	ExtensionLocationArtifactRepository.ensureInitialized() line: 62	
	ExtensionLocationArtifactRepository.getProperties() line: 202	
	ArtifactRepositoryManager(AbstractRepositoryManager).addRepository(IRepository, boolean, String) line: 109	
	ArtifactRepositoryManager(AbstractRepositoryManager).loadRepository(URI, IProgressMonitor, String) line: 576	
	ArtifactRepositoryManager.loadRepository(URI, IProgressMonitor) line: 86	
	Activator.loadArtifactRepository(URI, IProgressMonitor) line: 116	
	PlatformXmlListener.synchronizeConfiguration(Configuration) line: 249	
	PlatformXmlListener.stopPoll() line: 132	
	DirectoryWatcher.stopPoll() line: 172	
	DirectoryWatcher.poll() line: 109	
	Activator.watchConfiguration() line: 445	
	Activator.start(BundleContext) line: 155	
Comment 2 Simon Kaegi CLA 2009-01-20 22:33:50 EST
Andrew, 
do you know if something has changed with the releationship between publishing Features and root IUs? In the directory watcher case I don't think we want a root IU generated.
Comment 3 Andrew Niefer CLA 2009-01-21 18:31:21 EST
The org.eclipse.equinox.exectuable feature in the delta pack is somewhat unique in that it ships with a build.properties file and is going to be considered "source" instead of "binary".

The publisher has some code that has been there for a while that tries to read the build.properties and generate appropriate root file IUs.  Note that if we are not publishing artifacts (IPublisherInfo.A_PUBLISH) and it apears the dropins reconciler isn't, then the artifacts for these root IUs won't exist.

I agree that we probably don't want these IUs generated, particularly if the dropings reconciler doesn't publish artifacts and doesn't run the actions which would result in such root artifacts being extracted.

(Separate from this is that I'm not convinced the publisher should be trying to read pde.build's input files to do this, in general is not going to get these root properties correct without help from ant.  PDE/Build is providing extensions to the publisher that do this, see GatherFeatureTask)
Comment 4 Pascal Rapicault CLA 2009-02-20 15:31:01 EST
.