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
>> <https://groups.google.com/d/msgid/polymer-dev/8b2b71eb-2508-4aea-a7c2-de1ad34bec25%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> 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/CAAUAVAi2HB-eveg06Q0Be3VAEgtgPZdX790%2BOSyzz2sowrCx2w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to