« Bugzilla Issues Index
#2999 — Dependency execution order is not deterministic
- bug_id:
2999
- creation_ts:
2014-06-25 20:55:00 -0700
- short_desc:
Dependency execution order is not deterministic
- delta_ts:
2014-10-14 15:17:57 -0700
- product:
Draft for 6th Edition
- component:
Modules
- version:
Rev 25: May 22, 2014 Draft
- rep_platform:
All
- op_sys:
All
- bug_status:
RESOLVED
- resolution:
FIXED
- priority:
Normal
- bug_severity:
normal
- everconfirmed:
true
- reporter:
Guy Bedford
- assigned_to:
Allen Wirfs-Brock
- cc:
["dherman", "jorendorff", "samth"]
- commentid:
9103
- comment_count:
0
- who:
Guy Bedford
- bug_when:
2014-06-25 20:55:30 -0700
When a module is executed, its dependencies are executed in the order they appear in [[Module]].[[Dependencies]].
This order matches the same order as [[Load]].[[Dependencies]], which is populated in 15.2.4.6.1 AddDependencyLoad (4).
The AddDependencyLoad function is asynchronously run for dependencies as they normalize through ProcessLoadDependencies, so they can call back in any order.
As a result, execution order is non-deterministic.
I'm not sure whether this is a bug or not, but a deterministic execution could be a nice thing.
The fix is to alter 15.2.4.6.1 AddDependencyLoad step 4 to have an index argument sent into it, and insert the item into the given index of parentLoad.[[Dependencies]].
- commentid:
10325
- comment_count:
1
- who:
Allen Wirfs-Brock
- bug_when:
2014-10-11 17:40:14 -0700
fixed in rev28 editor's draft
- commentid:
10457
- comment_count:
2
- who:
Allen Wirfs-Brock
- bug_when:
2014-10-14 15:17:57 -0700
fixed in rev28