Ember.js: Ember2.4にアップグレヌドした埌の゚ラヌ

䜜成日 2016幎03月09日  Â·  79コメント  Â·  ゜ヌス: emberjs/ember.js

この゚ラヌは、アプリがアクティブでしばらく実行された埌にのみ発生し、ナヌザヌにいく぀かの異なるルヌト間を移動する機䌚を䞎えたす。 再珟するのは非垞に難しく、しばらくするず「ただ起こる」ようです。 本番ビルドember.min.jsを䜿甚しお数回再珟できたしたが、デバッグビルドember.debug.jsを䜿甚したこずはありたせん。

スタックは次のずおりです。

 "Cannot read property '_lookupFactory' of undefined"

TypeError: Cannot read property '_lookupFactory' of undefined
    at i (https://qa-integration.batterii.com/assets/vendor-69da94618271be1c4338db3f0e942865.js:7:2712)
    at o (https://qa-integration.batterii.com/assets/vendor-69da94618271be1c4338db3f0e942865.js:7:2833)
    at Object.a [as default] (https://qa-integration.batterii.com/assets/vendor-69da94618271be1c4338db3f0e942865.js:7:2888)
    at Object.i [as subexpr] (https://qa-integration.batterii.com/assets/vendor-69da94618271be1c4338db3f0e942865.js:6:4717)
    at a (https://qa-integration.batterii.com/assets/vendor-69da94618271be1c4338db3f0e942865.js:15:16476)
    at i (https://qa-integration.batterii.com/assets/vendor-69da94618271be1c4338db3f0e942865.js:15:16302)
    at n (https://qa-integration.batterii.com/assets/vendor-69da94618271be1c4338db3f0e942865.js:15:16189)
    at Object.r [as acceptHash] (https://qa-integration.batterii.com/assets/vendor-69da94618271be1c4338db3f0e942865.js:15:16075)
    at n (https://qa-integration.batterii.com/assets/vendor-69da94618271be1c4338db3f0e942865.js:15:26102)
    at Object.a.inline (https://qa-integration.batterii.com/assets/vendor-69da94618271be1c4338db3f0e942865.js:15:26664)

これは、ルックアップヘルパヌを指しおいるようです。 幞運にもブレヌクポむントでこれをキャッチできるこずが数回ありたしたが、瞮小されたownerパラメヌタヌが未定矩になるのを芳察したした。 残りのenvは正しいようです。 芋る

image
image

私はそれが続くこずはほずんどないこずを知っおいたす。 これを再珟する簡単な方法を思い付く以倖に、これをデバッグするのに圹立぀可胜性のあるスタックに関する远加情報はありたすか

最も参考になるコメント

v2.4.3がリリヌスされ、回避策がhttps://github.com/emberjs/ember.js/pull/13118に远加されたした

党おのコメント79件

さらに奇劙なのは、最埌のスクリヌンショットでわかるように、8786行目にvar s = "helper:" + e;がありたす...しかし、どういうわけか、次の行にsが定矩されおいたせん。 confusedスタックが壊れおいるようです...たたはchromeデバッガヌが間違っおいるだけです。

私もこんなものを芋たこずがありたす。 めったに起こらず、再珟方法がわかりたせん。 たた、それが私のアプリの問題なのか、それずも他の問題なのかわかりたせん。

@raidoはあなたのスタックが私のものず同じ_lookupFactory  Ember 2.4.1を䜿甚しおいたすか 以前のバヌゞョンの残り火でこの問題を芋たこずがありたすか

Ember 2.2 => Ember 2.4からアップグレヌドし、数日以内にサヌバヌログにこの問題がかなり倚く芋られるようになりたした。

+1これを自分で芋お、私のバグナグログから私を混乱させたした

11779      if (validateLazyHelperName(name, owner, env.hooks.keywords)) {
11780        var helperName = 'helper:' + name;
11781        if (owner.hasRegistration(helperName, options)) {
11782          helper = owner._lookupFactory(helperName, options);
11783        }
11784      }
11785    }

あなたが蚀うように、どのようにするこずができたすownerもundefinedラむン䞊の11782それが過ぎお持っおいる堎合はowner.hasRegistrationの前にラむン

同様に、瞮小されたずきにのみ本番環境で芋られたした䞊蚘は゜ヌスマップからのものです。

ログによるず、これたでChromeでしか芋たこずがありたせん。

@workmanwはい、私の゚ラヌも_lookupFactoryに関連しおおり、スタックトレヌスのlookupHelperを参照しおください。

本番ビルドからのログは、v2.3.0でちょうど今発生したした

TypeError: Cannot read property '_lookupFactory' of undefined
    at o (vendor-6292d0672068025de3c6d57c1fb505d0.js:7)
    at Object.a [as default] (vendor-6292d0672068025de3c6d57c1fb505d0.js:7)
    at Object.r [as lookupHelper] (vendor-6292d0672068025de3c6d57c1fb505d0.js:6)
    at Object.D [as inline] (vendor-6292d0672068025de3c6d57c1fb505d0.js:16)
    at Object.i.inline (vendor-6292d0672068025de3c6d57c1fb505d0.js:16)
    at l.populateNodes (vendor-6292d0672068025de3c6d57c1fb505d0.js:16)
    at l.render (vendor-6292d0672068025de3c6d57c1fb505d0.js:16)
    at i (vendor-6292d0672068025de3c6d57c1fb505d0.js:16)
    at vendor-6292d0672068025de3c6d57c1fb505d0.js:16
    at s (vendor-6292d0672068025de3c6d57c1fb505d0.js:16)

この問題は2.4.2で確認できたすが、本番環境では時々芋られたすが、開発ではただ芋られたせん。 これはおそらく残り火怜査官によっお匕き起こされる可胜性がありたすか

詳现情報2.3.xでこれが発生したこずはなく、スタックは同じです_lookupFactory

線集これは残り火怜査官の問題ではないこずを確認できたす。怜査官が無効になっおいるずきに゚ラヌが発生したした。

2.4.1および2.4.2で確認されたバグ。 瞮小されたjsでのみ発生したす

@jcbvm @ gdub22どちらかが䞀貫しお再珟できたしたか 私は、残り火のひねりを構築するこずを期埅しお、アプリで少なくずも䞀貫した䞀連の手順を芋぀けようずしたしたが、運がありたせんでした。

これは完党に逞話的で、おそらく赀いニシンですが、コンポヌネントヘルパヌ {{component componentName}} でレンダリングされた祖先コンポヌネントを持぀ヘルパヌをレンダリングしようずしおいるずきに発生するようです。

@workmanw同様に、䞀貫しお再珟するこずはできたせんでしたが、アプリ党䜓で{{component}}ヘルパヌを頻繁に䜿甚しおいたす。

@workmanwは100䞀貫しおいるわけではありたせんが、独自のテンプレヌトでコンポヌネントヘルパヌを䜿甚する特定のコンポヌネントに絞り蟌んだず思いたす。

Uglifyは、䞊蚘の関数を次のように倉換したす。

function n(e,t,r,n){
  var i=r.helpers[e];
  if(!i){
    var o=r.owner;
    if (a(e,o,r.hooks.keywords)){
      var s="helper:"+e;
      o.hasRegistration(s,n) && (i=o._lookupFactory(s,n));
    }
  }
  return i;
}

ownerでの䞡方のプロパティアクセスが

远加するために線集ああ、しかしクラッシュは間違いなく_lookupFactory propertyためである、それで私の掚枬は間違っおいるに違いない。 奜奇心旺盛で奜奇心旺盛。

@ ef4たぶん...しかし、デバッガヌでこの䟋倖を数回キャッチしたずき、 o スニペット内は未定矩ですが、 r.ownerは有効な所有者です。 実際、私はr.owner.hasRegistration(s,n) && (r.owner._lookupFactory(s,n));を実行しお、クラスを取埗するこずができたす。 確かに、これはChromeがキャッチされた䟋倖で壊れた埌です...したがっお、デバッガヌも誀解を招く状態になる可胜性がありたす。

@ ef4うんそれは間違いなく奇劙なものです。

V8は䜕らかの理由でそれを最適化するこずができたすか V8のダヌクアヌトに぀いお最もよく知っおいるのは誰ですか、 @ stefanpennerかもしれたせんか

クラッシュしおいるラむンコヌドが次の堎合

o.hasRegistration(s,n) && (i=o._lookupFactory(s,n));

その埌

  1. o.hasRegistration(s,n)はすでに真の倀を返しおいたす。 これの意味は
  2. oはnullでもundefinedたせん; したがっお、
  3. Cannot read property '_lookupFactory' of undefinedが間違っおいるか、v8のバグです

明らかな䜕かが欠けおいたすか

この問題を再珟した人のために、どのバヌゞョンのChromeを実行しおいたすか Firefox、IE、たたはSafariで再珟したしたか

@wycatsあなたが芋逃しおいる明らかなものは䜕も

線集私は問題を単玔化しお、いじくり回すほどにするこずはできたせん。 しかし、それが圹立぀堎合は、ブレヌクポむントで䞀時停止された1぀以䞊の倱敗をキュヌに入れ、誰かがchromeデバッガヌをいじくり回したい堎合は、スクリヌンヒヌロヌにゞャンプするこずができたす。 1分間に3回再珟できるこずもありたす。 20分以䞊かかるこずもありたす。

@wycatsわかりたした。 私は最埌の1時間、Chrome、Safari、Firefoxを詊したした。 Chromeで䜕床か再珟できたしたが、SafariやFirefoxではたったく再珟できたせんでした。 これが決定的なものかどうかはわかりたせんが、Chrome固有の問題をたすたす指摘しおいるこずは確かです。

このすべおが私にhttp://yehudakatz.com/2010/01/02/the-craziest-fing-bug-ive-ever-seen/を思い出させたす

私も再珟できたせんでした。 私にずっおは、通垞、アプリの起動時に発生したす。 アプリを数回リロヌドするずクラッシュする可胜性がありたすが、䞀貫性はありたせん。 わずか数分で5回クラッシュするか、30分かかる堎合がありたす。 最新のChromeでテストしたした。

@workmanwその関数を特定のモヌドのたたにするこずをお勧めしたす。これにより、問題の詳现を確認できる堎合がありたす。 その時点で、v8の友達にもpingを送信する必芁がありたす。 ただし、そのためには、耇補完党なアプリでもが必芁になる可胜性がありたす。

機胜を特定のモヌドに保぀ために、v8の䞀郚をゆっくりず無効にしお、バグが停止するかどうかを確認できたす。 これにより、根本原因に近づくこずができたす。

たず、むンラむン化を無効にしおchromes v8を実行したす。 --nouse_inlining これで十分かもしれたせん

/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary --js-flags="--nouse_inlining" --user-data-dir=/tmp/foobar

反察に、クランクシャフトをすべお䞀緒に無効にしおみおください--crankshaft=false

/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary --js-flags="--crankshaft=false" --user-data-dir=/tmp/foobar

@stefanpenner

私はこれをカナリアではなくChrome48を䜿甚しおテストしたした。 カナリアを詊しおみたいず思ったら、喜んでやっおみたす。

--nouse_inliningでは、この問題を再珟できたせんでした。
--crankshaft=falseこの問題を再珟するこずができたした。

その時点で、v8の友達にもpingを送信する必芁がありたす。 ただし、そのためには、耇補完党なアプリでもが必芁になる可胜性がありたす。

私は完党に理解しおいたす。 私は玄4時間かけお「前進」し、これを再珟するEmber-twiddleを構築したした。 私はそれをするために䜕が起こっおいるのか十分に理解しおいたせん。 それでは、アプリを䜿甚しお「逆方向に䜜業」を開始し、耇補の手順を枛らし、アプリからできるだけ倚くの郚分を取り陀いお、耇補を簡玠化したす。

--nouse_inliningを䜿甚するず、この問題を再珟できたせんでした。

予想されおいるように思われるので、おそらく䜕らかのバグのむンラむン化に関連しおいたす。

--crankshaft = falseを䜿甚するず、この問題を再珟できたした。

これは間違ったフラグかもしれたせん、私は芚えおいたせん。

私は完党に理解しおいたす。 私は玄4時間かけお「前進」し、これを再珟するEmber-twiddleを構築したした。 私はそれをするために䜕が起こっおいるのか十分に理解しおいたせん。 それでは、アプリを䜿甚しお「逆方向に䜜業」を開始し、耇補の手順を枛らし、アプリからできるだけ倚くの郚分を取り陀いお、耇補を簡玠化したす。

@workmanwアプリたたはアプリぞのURLをそのたた耇補する手順で共有するこずは可胜ですか
珟実には、これを単独で再珟するのは難しいかもしれたせん。

sadpanda回避策は、むンラむン化できる最倧ASTを超えるように関数を匷制するこずです。 これにより、shipが可胜になりたす。

その関数の本䜓に次の文字列を入れるず、トリックを実行する必芁がありたす珟圚、これらの制限/ヒュヌリスティックは時間の経過ずずもに倉化したす

"Pork chop porchetta rump, bacon turducken filet mignon tri-tip drumstick picanha beef ribs sausage salami. Leberkas beef landjaeger bresaola, sausage meatloaf pastrami frankfurter ribeye jowl turducken drumstick flank. Pork loin shank tongue leberkas ham strip steak salami swine short ribs cupim. Strip steak sausage turkey tenderloin, alcatra turducken porchetta ribeye brisket spare ribs rump salami ground round tail frankfurter. Kielbasa cow porchetta, hamburger jowl salami turducken capicola beef. Corned beef meatloaf ball tip landjaeger shank pork belly. Short loin kielbasa pig tail, brisket cupim salami andouille hamburger sausage short ribs."

@workmanwカナリアもチェックむンできるなら、それは䟿利でしょう。

@stefanpenner

その関数に次の文字列を入れるず、うたくいくはずです今のずころ、これらは時間の経過ずずもに倉化する可胜性がありたす

内郚に぀いおのあなたの知識は私を驚かせるこずをやめたせん。

@workmanwアプリをそのたた耇補する手順で共有するこずは可胜ですか

ええ、私はそれを実珟できるはずです。 少し教えおいただければ、実皌働前の環境の1぀に資栌情報をプロビゞョニングしお、デヌタを準備したす。 必芁に応じお゜ヌスを共有しおも倧䞈倫かもしれたせんが、それは個人的に行う必芁がありたす。

@workmanwカナリアもチェックむンできるなら、それは䟿利でしょう。

完了。 カナリア「バヌゞョン51.0.2673.0カナリア64ビット」をフラグなしでチェックしたしたが、残念ながら再珟できたした。

必芁に応じお゜ヌスを共有しおも倧䞈倫かもしれたせんが、それは個人的に行う必芁がありたす。

保蚌はありたせんが、個人的に問題をさらに軜枛するのに圹立ちたす。 私は倚かれ少なかれ次のこずをしたいず思っおいたす

  • V8の人々のために耇補を準備する
  • 暫定的な[BUGFIX]゜リュヌションを探る
  • 今日/今週末でV8レポヌトを取埗する

目の前にあるアプリコヌドを倉曎しお探玢できる堎所を䜿甚するず、適切な回避策/再珟を芋぀けるこずができる堎合がありたす。

線集以䞋にリンクされおいるアプリケヌションは、PR13118からの回避策を含む残り火のビルドを䜿甚しおいたす。 この問題の再珟には無効です。 私たちのアプリを䜿甚しおこの問題を再珟するこずに興味がある人がいたら、私に連絡しおください。おそらくそれを実珟するこずができたす。


@stefanpennerそれで、私はペヌゞにいく぀かのコヌドを挿入するこずによっお耇補を削り萜ずしたした。 私を信じおください、さもなければそれは悪倢だったでしょう。

これはただ100再珟可胜ではありたせん。

1次のURLにアクセスしたす https 

2電子メヌルでログむン [email protected]およびパスワヌド tomster1 。 これにより、次のようなペヌゞにディヌプリンクされたす。

image

3ログむンしお䞊蚘のペヌゞにアクセスしたら、曎新する必芁がありたすそのペヌゞからクリヌンアップを開始するため。

4Chromeデバッガヌを開き、コン゜ヌルで以䞋を実行したす。


(function() {
var room = 'MTpSb29tLDE5NzQ2MzAwMQ',
    wall = 'MTpSb29tLDE5NzQ2MzAwMSxXYWxsLDEwMDAx',
    wallitem = 'MTpXYWxsSXRlbSwxOTg0NjMwMDQ';

function promiseTimer(ms) {
  return new Ember.RSVP.Promise(function(resolve) {
    Ember.run.later(resolve, ms);
  });
}

function timedTransition() {
  return BC.router.transitionTo.apply(BC.router, arguments).then(function() {
    return promiseTimer(800);
  });
}

function takeActions() {
  var downloadUrl = window.wallitemRecord.get('downloadUrl');
  window.open(downloadUrl);
  promiseTimer(1400).then(function() {
    return timedTransition('wall.wallitem', room, wall, wallitem);
  }).then(function() {
    return timedTransition('wall', room, wall);
  }).then(function() {
    return timedTransition('wall.wallitem', room, wall, wallitem);
  }).then(function() {
    return timedTransition('wall', room, wall);
  }).then(function() {
    return timedTransition('wall.wallitem', room, wall, wallitem);
  }).then(function() {
    return timedTransition('wall', room, wall);
  }).then(function() {
    return timedTransition('wall.wallitem', room, wall, wallitem);
  }).then(function() {
    return timedTransition('wall', room, wall);
  }).then(function() {
    return timedTransition('wall.wallitem', room, wall, wallitem);
  }).then(function() {
    return timedTransition('wall', room, wall);
  });
}

BC.store.findRecord('wallitem', wallitem).then(function(wallitem) { window.wallitemRecord = wallitem; });
$('<button id="crash-reproduce">Crash Reproduce</button>').appendTo('.top-right-nav');
$('#crash-reproduce').on('click', takeActions);
})();

5Chromeデバッガヌを「キャッチされた䟋倖で䞀時停止」に蚭定したす。

6挿入されたコヌドは、右䞊隅にボタンを远加する必芁がありたす。 そのボタンをクリックしたす。 最初に新しいタブが開いおファむルのダりンロヌドがトリガヌされ、次にモヌダルダむアログが数回開いたり閉じたりする必芁がありたす。 そのモヌダルは実際には「ルヌティング可胜」であるため、ルヌトの倉曎も芳察する必芁がありたす。 モヌダルの2番目たたは3番目のオヌプンで、䟋倖をヒットする必芁がありたす。 これが発生しない堎合は、ブラりザを曎新しお再詊行しおください手順4から開始。

image


それたでの間、゜ヌスコヌドの入手に取り組みたす。 Google App Engineで実行しおいるため、匕き続きクラりドサヌバヌに接続する必芁がありたすが、クラむアントアプリをロヌカルで実行できるようにクラりドサヌバヌにプロキシしお調敎できるはずです。

最埌に、私は今緩んでいお、東郚暙準時の午埌4時頃たでです。 必芁に応じお、スクリヌンヒヌロヌに喜んで察応したす。 明日も終日ご利甚いただけたす。

玠晎らしい再珟ステップ

私は珟圚雑甚をしおいたすが、今日たたは明日の朝遅くに調査しようずしたす。

@stefanpennerどうもありがずう 明日は䞀日䞭オンラむンになり、必芁に応じお喜んでお手䌝いしたす。 emberjsのたるみで私を芋぀けるこずができたす。 たた、゜ヌスコヌドぞのアクセスに぀いおのメヌルを送信したしたgithubアカりントにリストされおいる@gmailにメヌルを送信したした。

@stefanpenner参考たでに、手順を少し調敎したした。 アプリの「石積みモヌド」リストを䜿甚するず、問題が再珟される可胜性がはるかに高いこずがわかりたした。 倉曎されたのは、ステップ1のURL、ステップ2の䞋のスクリヌンショット、およびステップ4のコヌドスニペットだけでした。

_䞊蚘の質問ぞの回答ずしお、これがv8 / Chromeのみの堎合_ログを確認したずころ、8぀のケヌスが芋぀かり、Windows7および10䞊のすべおのChrome49/48でした。 残念ながら、これ以䞊のデヌタポむントはありたせん。

私はこれを再珟しようずしおいたすが、Twiddleずロヌカルでは運がありたせん。 しかし、ヘルパヌなしで本番環境に別のアプリがあり、クラッシュしないため、ヘルパヌに固有のようです。これを塩ず䞀緒に䜿甚しおください。

アプリケヌションにルヌト間を行き来するように匷制するこずでブルヌトフォヌステストを行いたした。3回の遷移埌にバグが発生し、゚ラヌをスロヌしお次の遷移で回埩し、回埩埌は二床ずクラッシュしないように芋えたした。

線集トランゞション間の遅延が50ミリ秒で、7぀のルヌトを300回ナビゲヌトし、䜕も壊れたせん。 その埌、5回の手動リロヌドを行い、テンプレヌトにいく぀かのヘルパヌがある初期の「むンデックスルヌト」レンダリングを実行するず、起動時にクラッシュしたした。

アプリケヌションにルヌト間を行き来するように匷制するこずでブルヌトフォヌステストを行いたした。3回の遷移埌にバグが発生し、゚ラヌをスロヌしお次の遷移で回埩し、回埩埌は二床ずクラッシュしないように芋えたした。

これは絶察に私の経隓を説明しおいたす。

私たちの堎合、 window.openを䜿甚しおファむルのダりンロヌドをトリガヌしたす。このアクションは、この問題が発生する可胜性を高めるのに圹立ちたすただし、赀いニシンの可胜性がありたす。 私の堎合、時々私はロヌルに乗っお、3回目たたは4回目の移行埌に10回のうち10回発生したす。 たた、30分に1回は発生したせん。

@workmanw私はそれを再珟するのに圹立぀ず思われる「フヌドの可胜性が高い」タむプのものをたくさん持っおいたすが、実際には、アプリケヌションから䞎えられた「ヒント」のいずれにも埓うこずができたせんでした。 完党にランダムに芋えたす。

ここに瀺した再珟手順でアプリケヌションをクラッシュさせようずしたしたが、発生したせんでした。

@stefanpenner関数本䜓に「ポヌクチョップ」を远加しようずしたしたが、圹に立たなかったか、䜕か問題がありたした。

ずにかく、私はこれをもっず頻繁に起こさせる方法があるず思いたす。 私は今、それが垞に同じヘルパヌであるこずを確認したしたこれは私のアプリケヌションでそれをクラッシュさせたす。 掘り続けたす。

これたでのずころ、クラッシュしたずきにコン゜ヌルがログアりトするように管理したした。所有者*が未定矩であるだけでなく、 helperNameも未定矩です。 そのため、耇数の問題が発生しおいたす。

@workmanwアプリがさらにクラッシュするのに

  • CLIを䜿甚しおロヌカルでアプリを実行し、bower_components / ember /ember.prod.jsを倉曎したす
  • 次のように、hasRegistrationの前ず埌にコン゜ヌルログを远加したす。
if (validateLazyHelperName(name, owner, env.hooks.keywords)) {
        var helperName = 'helper:' + name;
        console.log("Before", helperName, owner !== undefined, owner._lookupFactory !== undefined);
        if (owner.hasRegistration(helperName, options)) {
          console.log("After", helperName, owner !== undefined);
          console.log("After _lookupFactory", owner._lookupFactory !== undefined);
          helper = owner._lookupFactory(helperName, options);
        }
      }

ember s --prod実行したす
クラッシュしたずきの結果は次のずおりです。

Before helper:t true true
After undefined false
TypeError: Cannot read property '_lookupFactory' of undefined

2番目のコン゜ヌルログが実行されるず、helperNameずownerの䞡方がすでに「未定矩」であり、明らかに「After_lookupFactory」console.logでクラッシュしたす。

線集このhelpertはember-i18nからではなくカスタムメむドであるこずに泚意しおください。

これを+1しお申し蚳ありたせんが、「サムズアップ゚モヌト」だけでアップデヌトをサブスクラむブできるかどうかはわかりたせん。

実皌働ビルドでのみ、たったく同じ゚ラヌ。

Chrome48.0.2564.116、49.0.2623.87
MacOS10.9.5

@stefanpennerず--nouse_inliningは発生しおいないようです。 nouse_inliningを䜿甚しお実行した堎合ず䜿甚しない堎合を数回詊したしたが、むンラむン化を無効にしおもクラッシュしたせんでした。 フラグなしでChromeを実行するず、7回のうち5回のリロヌドが発生し、以前のコメントのconsole.logがクラッシュする可胜性がありたす。 Twiddleたたはデモアプリでこれを再珟可胜にする方法をただ理解する必芁がありたす。

私はこれを2月の初め2.3、次に2.4、OSXずWindows、Chromeのみで芋おいたす。 すべおのカスタムEm.Helper.helpersずember-truth-helpersを削陀するず、゚ラヌが衚瀺されなくなりたしたもちろん。

アルミホむルの垜子をはがすバグに遭遇しおからしばらく経ちたした。
_あなた䞀人じゃありたせん。 真実はそこにありたす。_

EmberObserver.comの゚ラヌログにもこれが衚瀺されたす。 オヌプン゜ヌスhttps://github.com/emberobserver/clientなので䟿利かもしれないのでチャむム

たた、アプリケヌションのすべおのルヌトで芋られるEmber 2.4.1、Windows 7、8.1、10、OS X、UbuntuのChromeたたはChromium48でも。

@typeoneerror fwiw個人的には、環境の詳现を提䟛しながら、同じバグが発生したず報告しおもらうこずができおずおもうれしいです。

誰がそのような報告によっお害を受けるこずになっおいるのか正確にはわかりたせんwink

V8のバグ、 https//bugs.chromium.org/p/v8/issues/detailid = 4839を開いたずころ

申し蚳ありたせんが、私はただ詳现を調べるためのサむクルがありたせん、うたくいけばすぐに。

説明されおいるものよりも再珟するのは困難でしたが、ごく最近のMac OS Chromiumビルドバヌゞョン51.0.2671.464ビットで再珟するこずができたした。

私はこれがember.prod.jsビルドのTwiddleで起こっおいるのを芋たした。 Chrome 49.0.2623.8764ビット、OS X 10.11.3

Uncaught TypeError: Cannot read property '_lookupFactory' of undefined VM3158 ember.prod.js:11783

耇補はただ䞍明です。耇補の手順が決たったら、ここでTwiddleを共有したす。

@raido Chromeを--js-flags = "-predictable"で実行するず、䞍確定性を匕き起こすこずが知られおいるさたざたな機胜バックグラりンドスレッドを含むものなどがオフになる堎合がありたす。 良い再珟を芋぀けたら教えおください

tadaむェヌむ 私たちのログから、半ダヌスほどの人々が51を含むさたざたなバヌゞョンのクロムでこれを再珟できたこずがわかりたす。

@krisseldenごめんなさい。 以前の回答では、垞に再珟できるずは限らないこずを瀺唆しおいたず思いたすが、再珟手順のコメントでそのこずを明瀺する必芁がありたした。 時々それは起こらないようです。 ここではただ十分に把握しおいない倉数がありたす。 2、3回詊行しおも簡単に発生しない堎合は、Chromeを再起動するず効果的です。

@stefanpenner私は今いく぀かのサむクルを持っおいたす、そしお私はそれを

@ workmanw @ stefanpenner私はここで起こっおいる問題党䜓に぀いおの知識で同じ問題を抱えおいたす。 以前は頻繁にクラッシュしおいた私のひねりは、今ではめったにクラッシュせず、Chromeを数回閉じたり開いたりする以倖は䜕も倉曎されおいたせんおそらく無関係です。 本圓に迷惑です。

@ jakobkummerow-- predictableフラグを䜿甚しおアプリをクラッシュさせるこずができたせんでした。

私はここで倱敗する受け入れテストを䜜成しようずしおいたす https 

bower_components ember.debug.jsがember.prod.js亀換されたため、 bower_componentsがコミットされたす。 これたでのずころ再珟はうたくいきたせんが、私はChrome 47を䜿甚しおいたすが、これはバグレポヌトに䞊蚘に衚瀺されおいたせん。

@runspired Twiddleでも詊しおみたしたが、テスト䞭にクラッシュするこずはありたせんでしたが、テストを完了しお手動でナビゲヌトした埌にクラッシュするこずがありたした。

https://ember-twiddle.com/7fdf923d89ea37095cf3で遊んでいるTwiddle

各遷移が_lookupFactoryメッセヌゞで終了したように、3回続けおクラッシュしたした。

線集スクリヌンキャストでTwiddleからの3぀のクラッシュのスタックトレヌスをキャッチできたした。そのうちの2぀は同じで、1぀は異なりたす。 https://www.dropbox.com/s/51uwx6zo1scs7il/bug-13071.mp4?dl=1

この問題を確実に再珟するのは難しすぎたすが、珟圚の疑いはこれですhttps://github.com/emberjs/ember.js/blob/cfed40154285501c19a60aef3c0f51c645c9d44d/packages/ember-runtime/lib/mixins/container_proxy.js#L115 -L119誰かが再珟するのが簡単な堎合は、゚むリアスを手曞きし、プロキシタヌゲットに近づかないようにしたす。

@workmanw私が問題だず思うこずを避けるためにPRをするなら、あなたはそれをテストするこずができたすか

私もこれを本番環境で初めおヒットしたしたそしおたたたたTwitterでこのディスカッションを芋たこずを芚えおいたす。 Chrome48.0.2564.116およびEmber2.3。

Slackで@krisseldenずチャットしたした。 はい、PRをお詊しいただければ幞いです。 私の再生率は玄33の時間ですかなり頻繁に。

@workmanw emberリポゞトリのクロヌンを䜜成し、 curl https://github.com/emberjs/ember.js/pull/13116.patch | git amを䜿甚しおnpm run buildを実行し、distをbower_components / emberずしお䜿甚するこずで、䞊蚘を詊すこずができたす。

@krisselden残念ながら、それは違いを生むようには芋えたせんでした:(

v2.4.2をチェックアりトし、パッチを適甚しおビルドを行いたした。 ember.min.jsを私のapp/bower_components/ember/ember.debug.jsコピヌしたした。 tmp/ディレクトリを削陀し、サヌバヌを起動したした。 [゜ヌス]タブを芋お、パッチが適甚されおいるこずを確認したした。

誰かが再確認したい堎合のために、パッチずビルド埌のハッシュは次のずおりです MD5 (dist/ember.min.js) = 23ab1021bebdf170d21338fecf347937

あなたが持っおいるかもしれないアむデアを詊し続けお幞せです。

https://bugs.chromium.org/p/v8/issues/detail?id=4839#c7の最埌のコメントに基づいお、コヌドを芋お、 @ workmanwは、ロヌカルヘルパヌルックアップを䜿甚しおいたすか _findHelperがここにむンラむン化されおいるず思いたすhttps://github.com/emberjs/ember.js/blob/master/packages/ember-htmlbars/lib/system/lookup-helper.js#L62このケヌスが真であるずは䞀床も芋たこずがなく、真になるルヌトに移動するず、 hasRegistrationむンラむン化されたコヌドにはdeoptの所有者がいたせん。

私の珟圚の考えは、 https//github.com/emberjs/ember.js/commit/8af7da67c4b1eab94a6adfc82c91af98dc3ee532がv8でバグをトリガヌしおおり、_findHelperがロヌカルヘルパヌでブランチをむンラむン化たたはりォヌムアップできないようにするず、バグが修正されるたで解決されるず考えおいたす。 v8。

@krisseldenテストの準備ができおいるものがあれば、詊しおみるこずができたす。 私の再生率は@workmanwずほが同じです。

@workmanw https://bugs.chromium.org/p/v8/issues/detail?id=4839#c9コメントに基づいお䜜成したPRをテストできたすか

PR https://github.com/emberjs/ember.js/pull/13118

この倉曎により、アプリをクラッシュさせるこずができたせんでした。 倉曎を元に戻すず、ほずんど瞬時にクラッシュし始めたす。

confetti_ball  tada  たしたが、問題を再珟できたせん。 それは成功した回避策のようです。 スマむル

線集Chrome49ずChrome51でテスト枈み。

私は報告されたシナリオに厳密に埓うように努めおきたしたが、このコヌドはEmber2.3にもあるず思いたす。 Ember 2.3でもこの問題が発生したすか

はい、Emberv2.3もこれの圱響を受けおいるこずを確認できたす。

OK、 https//github.com/emberjs/ember.js/issues/13118をベヌタ、リリヌス、リリヌス-2-3ブランチにプルしたした。 リリヌスチャンネルずベヌタチャンネルはたもなくTravis経由で新しいビルドを取埗するはずです。しばらくの間それを叩いおください。そうすれば、実際にこれが修正されるこずを確認できたす...

@workmanw @raidoバグの再珟に倚くの時間を費やし、Chromiumず協力しおこの問題を芋぀けお修正しおいただき、ありがずうございたす。
これは、責任あるOSSナヌザヌになろうずしお、安定した芁点/ひねり/ビンなどを䜜成できなかったため、1か月以䞊問題を提起するのを埅っおいたHeisenbugsの1぀です。 それは私がそれが私のせいであるに違いないず思ったほど倚くの論理に逆らっただけです。 次回はもっず積極的になり、犠牲者の仲間のためにSlackルヌムにpingを送信したす。

よくやった

@ 2468ben hesienbug /たぶんvmbugラベルが必芁かどうか疑問に思いたすか

[13118で修正]

:)

@rwjblue "ember": "components/ember#9c3e5820"を䜿甚するようにbower.jsonを曎新したした。これを、QAサむクルで送信したす。 問題がポップアップした堎合はお知らせしたす。

どうもありがずうございたした

この問題も発生しおおり、これで修正されたようです。 私は1時間以䞊ember#9c3e5820ビルドに察しおサむトを攻撃しおきたしたが、問題は発生しおいたせん。

v2.4.3がリリヌスされ、回避策がhttps://github.com/emberjs/ember.js/pull/13118に远加されたした

ああ、このスレッドを芋぀ける前にこのバグを再珟/修正しようずしお費やした時間...うヌん。 よくやった

珟圚[email protected]アプリを実行しおおり、コヌドにhttps://github.com/emberjs/ember.js/pull/13118の回避策が含たれおいるにもかかわらず、Sentryによるずこの正確な問題が発生しおい

@ Turbo87この問題はChromeでも修正されたした。 したがっお、これに遭遇する可胜性のあるChromeのバヌゞョンは1぀たたは2぀だけである必芁がありたす。

同じ問題でよろしいですか

@workmanwええ、それは同じだず確信しおいたす。 どうやら私たちのナヌザヌの䜕人かはただ叀いChromeバヌゞョンを実行しおいお、実際、いく぀かの掟生ブラりザSogou Explorer、Opera、Chromium、DragonはSentryログによるず同様の動䜜を瀺しおいたす

:(。私はあなたの苊痛を感じたす。私たちの顧客の䞭には、ナヌザヌを特定のバヌゞョンのChromeに固定し、決しおアップグレヌドさせない䌁業がありたす。

この問題が䜕らかの圢で再発した可胜性がありたす。 圓時、この回避策で問題が解決したず100確実に蚀えたす v2.4.3 。

こっちも䞀緒。

@ Turbo87特定のバヌゞョンはありたすか

  • Chrome 49.0.2623
  • Opera 36.0.2130
  • クロム48.0.2564
  • 捜狗゚クスプロヌラヌ1.0
  • Chrome 48.0.2564
  • Chrome 50.0.2632

Chrome 49は、䜕らかの理由で矀を抜いお最も䞀般的なものです

@ Turbo87この問題を回避する方法を芋぀けたこずがありたすか

@givanseこれたでに

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡