Project

General

Profile

Bug #5504

Kepler incorrectly uses old version of a kar file in ~KeplerData/workflows/MyWorkflows

Added by Jing Tao almost 8 years ago. Updated almost 8 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
core
Target version:
Start date:
10/04/2011
Due date:
% Done:

0%

Estimated time:
Bugzilla-Id:
5504

Description

I updated the tpc01 workflow by changing an eml actor to point to knb rather than dev in my mac machine. It worked and i committed the newer version of the tpc01 kar file to the svn server.

I tried to run this new kar file in my linux machine. But it confused me.
First, i updated the kar file in project/kruger directory. Then i run the kepler-reporting-2.3 and opened the kar file staying project/kruger directory. However, it still access the data on dev. I decompressed the kar file which I opened. It shows that it points to the knb. I tried couple times and got the same result.

I talked with derik and we removed the core module under ~/KeplerData. But it didn't help. Derik asked if i had another copy of the kar file. I said that I had another one under ~KeplerData/workflows/MyWorkflows. And this copy was the older version. We removed this old one and it worked.

It seems that the old version of kar file locating at ~KeplerData/workflows/MyWorkflows affect the open of the new version.

tpc01-buffalo-tb.kar (138 KB) tpc01-buffalo-tb.kar Jing Tao, 10/04/2011 03:43 PM
tpc01-buffalo-tb.kar (138 KB) tpc01-buffalo-tb.kar Jing Tao, 10/04/2011 03:46 PM

History

#3 Updated by Jing Tao almost 8 years ago

I reproduced the bug when i ran two tpc03 workflows.

#4 Updated by Derik Barseghian almost 8 years ago

I think the question is: How is it that these kars contain different workflows that have the same LSID? I think the idea is that's not supposed to be possible, and we shouldn't try to handle such a case (defeats the purpose of a unique id system).

I've spent some time trying to recreate two different workflows with the same LSID, and short of hacking one copy's moml by hand, thankfully I can't. I believe the LSID db keeps track of used LSIDs and their revision numbers, so two copies of the same workflow can 'co-evolve' with unique revision numbers.
Also if you delete the db, the next time you revise a workflow it gets a new LSID, and the original is put in the derived from list.
Another thing I tried was putting an EML 2 Dataset actor inside a composite, and then changing its parameters, to see if somehow these types of changes are getting swallowed. But this incremented the LSID revision as one would hope.

#5 Updated by Jing Tao almost 8 years ago

Hi, Derik:

Did you try the two version of kar files which are in the attachment? May they will be helpful.

Thanks,

Jing

#6 Updated by Derik Barseghian almost 8 years ago

The problem is that changes to an EML200DataSource instantiated from the Data panel does not increment the workflow's LSID.

#7 Updated by Derik Barseghian almost 8 years ago

So when you drag a Data search result onto the canvas, the actor has a null LSID. Changes to this LSID-less actor don't increment the container's LSID.
Was a plan ever devised for how this should work?

#8 Updated by Derik Barseghian almost 8 years ago

KeplerLSID format:
urn:lsid:<authority>:<namespace>:<object>:<revision>#<anchor>
(https://kepler-project.org/developers/teams/framework/kepler-life-science-identifiers-keplerlsid )

To assign a Data set result an LSID, I imagine we should utilize the metacat url and id. E.g.:
urn:lsid:http://knb.ecoinformatics.org/knb/metacat:knb-lter-kbs.49.13
Is there a better url to use? The authority is defined as "usually the URL of the web service that assigned the namespace".

When the Kepler user changes the actor in some way, this lsid is put in the referral list and a new lsid is assigned.

#9 Updated by Derik Barseghian almost 8 years ago

Except I guess no "http://" in the authority.

(In reply to comment #8)

KeplerLSID format:
urn:lsid:<authority>:<namespace>:<object>:<revision>#<anchor>
(https://kepler-project.org/developers/teams/framework/kepler-life-science-identifiers-keplerlsid
)

To assign a Data set result an LSID, I imagine we should utilize the metacat
url and id. E.g.:
urn:lsid:http://knb.ecoinformatics.org/knb/metacat:knb-lter-kbs.49.13
Is there a better url to use? The authority is defined as "usually the URL of
the web service that assigned the namespace".

When the Kepler user changes the actor in some way, this lsid is put in the
referral list and a new lsid is assigned.

#10 Updated by Derik Barseghian almost 8 years ago

After discussion with the group the current plan is to, when dragging out an EML 2 Dataset actor from the Data pane, just assign the actor a new LSID, putting the EML 2 Dataset LSID in the referral list.

One downside of this is that 2 instantiations of the same Data search result actor will have different LSIDS, so future work may have some difficulty determining these are the same actor. But the actor's recordid parameter can be utilized to see which use the same package id.

#11 Updated by Derik Barseghian almost 8 years ago

Fixed at r28927-28.
You'll want to re-instantiate your EML 2 Dataset actors instantiated from a Data search result.

#12 Updated by Redmine Admin over 6 years ago

Original Bugzilla ID was 5504

Also available in: Atom PDF