Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 330441 - [transport] error checking cache
Summary: [transport] error checking cache
Status: CLOSED FIXED
Alias: None
Product: Equinox
Classification: Eclipse Project
Component: p2 (show other bugs)
Version: 3.7   Edit
Hardware: PC Mac OS X - Carbon (unsup.)
: P3 normal (vote)
Target Milestone: 3.7 M4   Edit
Assignee: P2 Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-11-17 07:11 EST by Jeff McAffer CLA
Modified: 2010-11-21 20:56 EST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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.