|
|
Re: SVN materialization issues in 3.5 [message #387655 is a reply to message #387653] |
Tue, 07 July 2009 22:22 |
|
Nick Veys wrote:
> Ideas? Should it be possible to have 2 MaterializerJob instances acting
> on the same component?
>
No, buckminster should never make an attempt to materialize the same component twice. Is it possible that the resolution
contains two non-overlapping versions of the same source? Say from different branches?
- thomas
|
|
|
Re: SVN materialization issues in 3.5 [message #387656 is a reply to message #387653] |
Tue, 07 July 2009 22:43 |
|
Nick Veys wrote:
> This is with Buckminster 1.1.350.r10356, built from update sites
> yesterday. Using subversive 1.0.0.r10301.
>
The version seems a bit old though. Looking at the Galileo release, Buckminster core is at 1.1.350.r10382 and the
subversive feature is at 1.0.0.r10356. So from what update site did you get this yesterday?
- thomas
|
|
|
Re: SVN materialization issues in 3.5 [message #387720 is a reply to message #387656] |
Wed, 08 July 2009 15:10 |
Nick Veys Messages: 52 Registered: July 2009 |
Member |
|
|
My mistake, looking @ the plugins I see core_1.1.350.r10382, but
subversive is still 1.0.0.r10301. These are the plugin versions. I'm not
sure where features live in this new p2 world.
But it doesn't look like Subversive is related at all. During the
BOM.findMaterializationCandidates, the empty list is created and filled by
walking the tree, an empty HashSet is seeded as a 'perused' set to (I
would assume) prevent duplicates being entered into the list. But the
Resolution class inherits a final hashCode/equals from UUIDKeyed that
simply rely on raw XML content describing the resolution. This doesn't
seem to be correct for all Resolutions.
I've dumped all the resolutions being added in
MaterializationJob.prepareJobs, and here is an example of a duplicate
entry (first the Resolution toString, then the XML image for it):
workspace: Name: com.junitRunner, 2.0.0.qualifier
<?xml version="1.0" encoding="UTF-8"?>
<md:resolution xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
cspecId="36fe0779-e16a-3bd2-9e4b-913ee772754b" materializable="true"
providerId="c7ccc97e-1c9d-318a-a28f-ecae37428d24"
repository="http://svn/svnroot/core/trunk/plugins/com.junitRunner"
componentType="osgi.bundle">
<md:request name="com.junitRunner" componentType="osgi.bundle"/>
<md:versionMatch version="2.0.0.qualifier"/>
</md:resolution>
workspace: Name: com.junitRunner, 2.0.0.qualifier
<?xml version="1.0" encoding="UTF-8"?>
<md:resolution xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
cspecId="36fe0779-e16a-3bd2-9e4b-913ee772754b" materializable="true"
providerId="c7ccc97e-1c9d-318a-a28f-ecae37428d24"
repository="http://svn/svnroot/core/trunk/plugins/com.junitRunner"
componentType="osgi.bundle">
<md:request name="com.junitRunner" componentType="osgi.bundle"
filter="(!(eclipse.p2.optional=false))"/>
<md:versionMatch version="2.0.0.qualifier"/>
</md:resolution>
So the first one is required, as it is listed in some of our plugins as a
required dependency, however it is also listed as optional in some other
plugins. So the second one seems to be that optional dependency with the
not-not-optional filter applied. This makes the XML images different,
therefore the Resolutions are different and bam, duplicate resolutions.
Thomas Hallgren wrote:
> Nick Veys wrote:
>> This is with Buckminster 1.1.350.r10356, built from update sites
>> yesterday. Using subversive 1.0.0.r10301.
>>
> The version seems a bit old though. Looking at the Galileo release,
Buckminster core is at 1.1.350.r10382 and the
> subversive feature is at 1.0.0.r10356. So from what update site did you get
this yesterday?
> - thomas
|
|
|
Re: SVN materialization issues in 3.5 [message #387721 is a reply to message #387720] |
Wed, 08 July 2009 15:14 |
|
Hi Nick,
Thanks for tracking this down. The perused HashSet should not use the full as key resolution at this stage. Can you
please enter a bugzilla for this?
Thanks,
- thomas
Nick Veys wrote:
> My mistake, looking @ the plugins I see core_1.1.350.r10382, but
> subversive is still 1.0.0.r10301. These are the plugin versions. I'm
> not sure where features live in this new p2 world.
>
> But it doesn't look like Subversive is related at all. During the
> BOM.findMaterializationCandidates, the empty list is created and filled
> by walking the tree, an empty HashSet is seeded as a 'perused' set to (I
> would assume) prevent duplicates being entered into the list. But the
> Resolution class inherits a final hashCode/equals from UUIDKeyed that
> simply rely on raw XML content describing the resolution. This doesn't
> seem to be correct for all Resolutions.
>
> I've dumped all the resolutions being added in
> MaterializationJob.prepareJobs, and here is an example of a duplicate
> entry (first the Resolution toString, then the XML image for it):
>
> workspace: Name: com.junitRunner, 2.0.0.qualifier
> <?xml version="1.0" encoding="UTF-8"?>
> <md:resolution xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
> cspecId="36fe0779-e16a-3bd2-9e4b-913ee772754b" materializable="true"
> providerId="c7ccc97e-1c9d-318a-a28f-ecae37428d24"
> repository="http://svn/svnroot/core/trunk/plugins/com.junitRunner"
> componentType="osgi.bundle">
> <md:request name="com.junitRunner" componentType="osgi.bundle"/>
> <md:versionMatch version="2.0.0.qualifier"/>
> </md:resolution>
> workspace: Name: com.junitRunner, 2.0.0.qualifier
> <?xml version="1.0" encoding="UTF-8"?>
> <md:resolution xmlns:md="http://www.eclipse.org/buckminster/MetaData-1.0"
> cspecId="36fe0779-e16a-3bd2-9e4b-913ee772754b" materializable="true"
> providerId="c7ccc97e-1c9d-318a-a28f-ecae37428d24"
> repository="http://svn/svnroot/core/trunk/plugins/com.junitRunner"
> componentType="osgi.bundle">
> <md:request name="com.junitRunner" componentType="osgi.bundle"
> filter="(!(eclipse.p2.optional=false))"/>
> <md:versionMatch version="2.0.0.qualifier"/>
> </md:resolution>
>
> So the first one is required, as it is listed in some of our plugins as
> a required dependency, however it is also listed as optional in some
> other plugins. So the second one seems to be that optional dependency
> with the not-not-optional filter applied. This makes the XML images
> different, therefore the Resolutions are different and bam, duplicate
> resolutions.
>
> Thomas Hallgren wrote:
>
>> Nick Veys wrote:
>>> This is with Buckminster 1.1.350.r10356, built from update sites
>>> yesterday. Using subversive 1.0.0.r10301.
>>>
>> The version seems a bit old though. Looking at the Galileo release,
> Buckminster core is at 1.1.350.r10382 and the
>> subversive feature is at 1.0.0.r10356. So from what update site did
>> you get
> this yesterday?
>
>> - thomas
>
>
|
|
|
|
Powered by
FUDForum. Page generated in 0.04203 seconds