NativeScript / NativeScript/ios

Random Crashes with ns7 core modules

オープン
#61 コメント 25 件 リアクション 5 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
JavaScript
スター
150
フォーク
43
平均マージ
3日 10時間
マージ済み PR(30日)
22

説明

We're also experiencing pretty random but often crash from time to time on iOS devices with latest NS 7 core modules and the project built with Xcode 12:

====== Assertion failed ======
Native stack trace:
1          0x1019f4f3c tns::Assert(bool, v8::Isolate*) + 128
2          0x10196178c tns::ArgConverter::Invoke(v8::Local<v8::Context>, objc_class*, v8::Local<v8::Object>, tns::V8Args&, tns::MethodMeta const*, bool) + 100
3          0x1019ba984 tns::MetadataBuilder::InvokeMethod(v8::Local<v8::Context>, tns::MethodMeta const*, v8::Local<v8::Object>, tns::V8Args&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool) + 88
4          0x1019ba210 tns::MetadataBuilder::MethodCallback(v8::FunctionCallbackInfo<v8::Value> const&) + 220
5          0x101b23e10 v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) + 536
6          0x101b233dc v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) + 516
7          0x101b22b7c v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) + 224
8          0x1022b4d8c Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_BuiltinExit + 108
9          0x10224d6b4 Builtins_InterpreterEntryTrampoline + 244
10         0x10224d6b4 Builtins_InterpreterEntryTrampoline + 244
11         0x10224d6b4 Builtins_InterpreterEntryTrampoline + 244
12         0x10224d6b4 Builtins_InterpreterEntryTrampoline + 244
13         0x10224d6b4 Builtins_InterpreterEntryTrampoline + 244
14         0x10224d6b4 Builtins_InterpreterEntryTrampoline + 244
15         0x10224d6b4 Builtins_InterpreterEntryTrampoline + 244
16         0x10224d6b4 Builtins_InterpreterEntryTrampoline + 244
17         0x10224d6b4 Builtins_InterpreterEntryTrampoline + 244
18         0x10224d6b4 Builtins_InterpreterEntryTrampoline + 244
19         0x102246504 Builtins_ArgumentsAdaptorTrampoline + 228
20         0x10224d6b4 Builtins_InterpreterEntryTrampoline + 244
21         0x10224d6b4 Builtins_InterpreterEntryTrampoline + 244
22         0x10224d6b4 Builtins_InterpreterEntryTrampoline + 244
23         0x10224d6b4 Builtins_InterpreterEntryTrampoline + 244
24         0x10224af64 Builtins_JSEntryTrampoline + 164
25         0x10224ac08 Builtins_JSEntry + 168
26         0x122ac4000 26  ???                                 0x0000000122ac4000 0x0 + 4876681216
JavaScript stack trace:
at _removeViewFromNativeVisualTree (file: app/packages/core/ui/core/view/index.ios.ts:787:29)
at _tearDownUI (file: app/packages/core/ui/core/view-base/index.ts:871:15)
at <anonymous> (file: app/packages/core/ui/core/view-base/index.ts:865:9)
at eachChildView (file: app/packages/core/ui/layouts/layout-base-common.ts:125:18)
at eachChild (file: app/packages/core/ui/core/view/view-common.ts:867:7)
at _tearDownUI (file: app/packages/core/ui/core/view-base/index.ts:864:7)
at <anonymous> (file: app/packages/core/ui/core/view-base/index.ts:865:9)
at eachChildView (file: app/packages/core/ui/layouts/layout-base-common.ts:125:18)
at eachChild (file: app/packages/core/ui/core/view/view-common.ts:867:7)
at _tearDownUI (file: app/packages/core/ui/core/view-base/index.ts:864:7)

Originally posted by @romandragan in https://github.com/NativeScript/NativeScript/issues/8867#issuecomment-698143588

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

app/packages/core/ui/core/view/index.ios.ts の _removeViewFromNativeVisualTree から始め、view-base/index.ts と layout-base-common.ts を通る teardown 呼び出しを追跡します。報告されている NativeScript 7 と Xcode 12 のセットアップを使用して iOS デバイス上で assertion を再現し、その後、観測された条件下で teardown パスがクラッシュしなくなったことを確認します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
ios, javascript
領域
mobile-dev
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。