Thanks, guys! I really appreciate the help. Glad, Daniel could reproduce this 
and it's not something stupid I did.

For what it's worth, I think your analysis is pretty spot on. It seems there is 
some race condition going on since the problem occurs only part of the time. 
All things considered, I now think the problem was most likely introduced in 
polymer-gestures since TemplateBinding didn't see a lot of changes between 
0.3.4 and 0.3.5.
On 3. September 2014 at 23:14:40, 'Daniel Freedman' via Polymer 
([email protected]) wrote:

I was able to make a repro case just with templates and tap handlers.

It looks like this error is triggered when the a node with a touch handler is 
being removed by a template model update while a touch event is being 
dispatched.

Minimal repro: https://gist.github.com/azakus/72d2b7d1ffde1e94283a

Since this seems related to template stamping timing, I'll have to sit down 
with the template polyfill authors to get a better understanding of the exact 
timing of the polyfill.

Thanks for your patience.


On Wed, Sep 3, 2014 at 10:23 AM, Daniel Freedman <[email protected]> wrote:
Hi Martin,

I'm not very familiar with iOS, but it looks like there was a bad dereference 
inside of the WebView (that 0xfffffff9 looks like the highest address on your 
process stack).

I did get it to fail in the ios simulator as well, but mobile safari only 
reports a "bus error", which suggests that this is a bad pointer dereference.

I have a hunch that this is related to a node being removed from the DOM that 
also has a touch listener on it, but that idea is just based on the fact that 
safari stops sending touch events when the origin node is removed.

The WebCore::Document::touchEventsChangedTimerFired code is an IOS only 
extension to WebKit, so I'm not sure how to look at what that is doing.


On Wed, Sep 3, 2014 at 9:46 AM, Rob Dodson <[email protected]> wrote:
Hey Martin, sorry for the delay, I think we're still catching up a bit from the 
long weekend :)
We're looking into this and hopefully will have a response soon.

- Rob


On Wednesday, September 3, 2014 7:29:18 AM UTC-7, Martin Kleinschrodt wrote:
Anyone? I could really use some help on this...

On Monday, September 1, 2014 11:39:55 AM UTC+2, Martin Kleinschrodt wrote:
After some more experimentation, I narrowed it down a little more: It seems the 
issue was introduced between versions 0.3.4 and 0.3.5. Also, it seems that the 
problem is inside the polymer package, not the platform layer as one might 
expect (I reproduced the crashes with Polymer/polymer#0.3.5 + 
Polymer/platform#0.3.2). Then again, apparently TemplateBinding and 
polymer-expressions are contained in the polymer package, so maybe not that 
surprising after all. So it seems the culprit is hiding in one of these 
changesets:

https://github.com/Polymer/polymer-dev/compare/0.3.4...0.3.5
https://github.com/polymer/TemplateBinding/compare/0.3.4...0.3.5
https://github.com/polymer/polymer-expressions/compare/0.3.4...0.3.5
https://github.com/Polymer/polymer-gestures/compare/0.3.4...0.3.5

Anything else I missed that is part of the polymer package?

On Monday, September 1, 2014 10:56:18 AM UTC+2, Martin Kleinschrodt wrote:
Ever since updating from v0.3.2, my Polymer app crashes all the time. The 
problem is extremely hard to debug since I don't get any error messages in the 
browser console but instead the app crashes completely. This happens both in 
mobile safari and in the web view. The only clue that I have is this log from 
my cordova app:

Process 15971 stopped
* thread #6: tid = 0x5783c3, 0x36ae071a 
WebCore`WebCore::Document::touchEventsChangedTimerFired(WebCore::Timer<WebCore::Document>*)
 + 254, name = 'WebThread', stop reason = EXC_BAD_ACCESS (code=1, 
address=0xfffffff9)
    frame #0: 0x36ae071a 
WebCore`WebCore::Document::touchEventsChangedTimerFired(WebCore::Timer<WebCore::Document>*)
 + 254
WebCore`WebCore::Document::touchEventsChangedTimerFired(WebCore::Timer<WebCore::Document>*)
 + 254:
-> 0x36ae071a:  ldr.w  r8, [r0]
   0x36ae071e:  cmp.w  r8, #0x0
   0x36ae0722:  beq    0x36ae07e4                ; 
WebCore::Document::touchEventsChangedTimerFired(WebCore::Timer<WebCore::Document>*)
 + 456
   0x36ae0724:  movs   r0, #0x0

I don't know enough about WebCore to get anything from this, but based on when 
the crashes occur (usually after updating a model) I suspect that the problem 
has something to do with either polymer-expressions or TemplateBinding.

I'm currently using Polymer 0.4.0 but I think the problem exists since 0.3.3.

If you want to reproduce the problem yourself, go ahead and open 
http://maklesoft.github.io/padlock on your iPhone (or iOS simulator) and follow 
these steps:

- Choose a master password (you can simply use an empty one)
- Create a record
- Go back
- Create another record
- Switch back and forth between the two records (tap a record to select it), at 
some point the app will crash (probably sooner rather than later)

Other ways to reproduce the crash

- Delete a record
- Add a field to a record
- Add a category to a record

I wish I could offer more information, but at this point I am pretty much 
clueless. If you want to dig through the code, you can find it at

https://github.com/maklesoft/padlock

I probably don't have to mention that this is a show stopper for me. I wonder 
if anybody is having similar problems?
Follow Polymer on Google+: plus.google.com/107187849809354688692
---
You received this message because you are subscribed to the Google Groups 
"Polymer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/polymer-dev/8b2b71eb-2508-4aea-a7c2-de1ad34bec25%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.


Follow Polymer on Google+: plus.google.com/107187849809354688692
---
You received this message because you are subscribed to a topic in the Google 
Groups "Polymer" group.
To unsubscribe from this topic, visit 
https://groups.google.com/d/topic/polymer-dev/YE0U38xqXig/unsubscribe.
To unsubscribe from this group and all its topics, send an email to 
[email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/polymer-dev/CAAUAVAi2HB-eveg06Q0Be3VAEgtgPZdX790%2BOSyzz2sowrCx2w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Follow Polymer on Google+: plus.google.com/107187849809354688692
--- 
You received this message because you are subscribed to the Google Groups 
"Polymer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/polymer-dev/etPan.54081d9d.4e6afb66.20d%40Martins-MacBook-Air-2.local.
For more options, visit https://groups.google.com/d/optout.

Reply via email to