Skip to content
This repository has been archived by the owner on Mar 13, 2018. It is now read-only.

test failure after issue29 - 3 test on IE11 #44

Open
jmesserly opened this issue Aug 11, 2014 · 5 comments
Open

test failure after issue29 - 3 test on IE11 #44

jmesserly opened this issue Aug 11, 2014 · 5 comments
Assignees

Comments

@jmesserly
Copy link
Contributor

Running IE11 on the "issue 29 - 3" test it passes, but there's a failure on cleanup afterwards.

Not entirely sure if it's that test, the results seem timing dependent. Some of the early investigation notes are here: #43 (comment)

(edit: it's 29-3 not 29-2. can be seen by running http://localhost:8000/polymer-expressions/tests/index.html?grep=issue-29 - 3)

@jmesserly jmesserly changed the title race condition after issue29 - 2 test on IE11 test failure after issue29 - 2 test on IE11 Aug 11, 2014
@jmesserly
Copy link
Contributor Author

I think it's probably a race condition, since adding some logging code made it pass. But I don't know for sure yet.

@jmesserly
Copy link
Contributor Author

possibly related to googlearchive/TemplateBinding#184

@jmesserly jmesserly self-assigned this Aug 12, 2014
@jmesserly jmesserly changed the title test failure after issue29 - 2 test on IE11 test failure after issue29 - 3 test on IE11 Aug 14, 2014
@jmesserly
Copy link
Contributor Author

I found a "fix" -- add this print statement to the end of insertInstanceAt:

console.log(previousInstanceLast.nextSibling);

Naturally, the console needs to be open for it to work. So this is pretty deep into heisenbug territory.

My hypothesis: under certain conditions IE loses the identity of the Text node in the tree. Perhaps this happens because we're inserting from a DocumentFragment, or because of the adoptNode we've done before, or just some random bug (refcount? GC?) that we happen to be hitting.

This appears to not be the first time, @arv worked around a similar issue here: https://github.com/Polymer/ShadowDOM/blob/master/src/wrappers/Node.js#L436 though I'm surprised this kind of thing is still happening in 11 :|

I found a not-totally-terrible workaround we can do in TemplateBinding, by reassigning the terminator_ property. On most browsers it will be a no-op, whereas on IE it will ensure we get the new Text node instance, instead of the zombie one. Will post the code change shortly.

@jmesserly
Copy link
Contributor Author

I found a not-totally-terrible workaround we can do in TemplateBinding

Scratch that. The no-op workaround makes that particular test pass when run it isolation, but moves the problem to another place. Drat.

jmesserly pushed a commit that referenced this issue Aug 18, 2014
Note: I'm not seeing this failure in IE 10, so it appears to not need any workaround code

[email protected]

Review URL: https://codereview.appspot.com/124460044
@jmesserly
Copy link
Contributor Author

landed a workaround, but still need a simplified repro for https://connect.microsoft.com/IE

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant