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

Bug 330441

Summary: [transport] error checking cache
Product: [Eclipse Project] Equinox Reporter: Jeff McAffer <jeffmcaffer>
Component: p2Assignee: P2 Inbox <equinox.p2-inbox>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: irbull, pascal
Version: 3.7   
Target Milestone: 3.7 M4   
Hardware: PC   
OS: Mac OS X - Carbon (unsup.)   
Whiteboard:

Description Jeff McAffer CLA 2010-11-17 07:11:58 EST

    
Comment 1 Jeff McAffer CLA 2010-11-17 07:18:49 EST
well, it would help if I put in some description I suppose...  

in i1116
I'm not sure how this happened but while trying to access the I20101116-0800 repo directly in the target provisioning workflow, the trace below showed up in the log and the target UI reported that the repo was not available.  In fact manually accessing the content.jar with a web browser worked and doing the access from another instance of eclipse (different workspace) works.  

A quick inspection of the updateCache() method shows that control is flowing all the way through and we are throwing an exception with an OK status.  That in itself is less than optimal.

Note that I *may* have gotten in this state by having accessed the 3.7 I build composite repo and cancelled part way through (it was taking too long).  It is possible that somehow there was some cache corruption as a result of the cancelation.


!ENTRY org.eclipse.equinox.p2.core 0 0 2010-11-17 12:38:42.506
!MESSAGE Provisioning exception
!STACK 1
org.eclipse.equinox.p2.core.ProvisionException: OK
	at org.eclipse.equinox.internal.p2.repository.CacheManager.updateCache(CacheManager.java:357)
	at org.eclipse.equinox.internal.p2.repository.CacheManager.createCache(CacheManager.java:205)
	at org.eclipse.equinox.internal.p2.metadata.repository.SimpleMetadataRepositoryFactory.getLocalFile(SimpleMetadataRepositoryFactory.java:66)
	at org.eclipse.equinox.internal.p2.metadata.repository.SimpleMetadataRepositoryFactory.load(SimpleMetadataRepositoryFactory.java:88)
	at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.factoryLoad(MetadataRepositoryManager.java:57)
	at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:745)
	at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:650)
	at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:96)
	at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:92)
	at org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository.addChild(CompositeMetadataRepository.java:153)
	at org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository.<init>(CompositeMetadataRepository.java:106)
	at org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepositoryFactory.load(CompositeMetadataRepositoryFactory.java:122)
	at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.factoryLoad(MetadataRepositoryManager.java:57)
	at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:745)
	at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:650)
	at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:96)
	at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:92)
	at org.eclipse.equinox.p2.ui.ProvisioningUI.loadMetadataRepository(ProvisioningUI.java:388)
	at org.eclipse.equinox.internal.p2.ui.model.MetadataRepositoryElement.getMetadataRepository(MetadataRepositoryElement.java:120)
	at org.eclipse.equinox.internal.p2.ui.model.MetadataRepositoryElement.fetchChildren(MetadataRepositoryElement.java:70)
	at org.eclipse.equinox.internal.p2.ui.model.RemoteQueriedElement.fetchDeferredChildren(RemoteQueriedElement.java:34)
	at org.eclipse.ui.progress.DeferredTreeContentManager$1.run(DeferredTreeContentManager.java:235)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Comment 2 Pascal Rapicault CLA 2010-11-21 20:56:02 EST
I have committed a change that will cause a status to be created when something goes wrong when we are renaming the file. This is the only code path that I could think could have resulted in this issue.
I'm closing, but please review the code some more.