Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Infinite loop of rendering errors in FastBoot #68

Open
davewasmer opened this issue Nov 12, 2019 · 1 comment
Open

Infinite loop of rendering errors in FastBoot #68

davewasmer opened this issue Nov 12, 2019 · 1 comment

Comments

@davewasmer
Copy link

So this is a bit of tricky one, and I'm not sure if it's this add or ember-page-title causing it.

Basically, under a very specific set of circumstances, a rendering error (i.e. trying to invoke a non-existent helper) will trigger an infinite loop of errors in FastBoot that ends up spiking the entire fastboot-app-server.

I've put together a minimal reproduction. Clone the repo down, ember s, and hit localhost:4200 to see it in action. As a heads up - once it starts dumping the error in a loop, it stops responding to SIGTERMs (Ctrl-C), so you'll need to forcibly kill the process (i.e. "Force Quit" on Mac or SIGKILL with kill -9).

I'm at a loss as to what might cause this - the errors being dumped aren't super helpful. After the initial error about being unable to find the helper, it just starts dumping this repeatededly:

TypeError: Cannot read property 'syscall' of null
    at AppendOpcodes.evaluate (/var/folders/p4/2wqjhkg160sfdr7pykp6f3ch0000gn/T/broccoli-72882ZYE8RoqN9B1E/out-221-broccoli_merge_trees/assets/@glimmer/runtime.js:69:1)
    at LowLevelVM.evaluateSyscall (/var/folders/p4/2wqjhkg160sfdr7pykp6f3ch0000gn/T/broccoli-72882ZYE8RoqN9B1E/out-221-broccoli_merge_trees/assets/@glimmer/runtime.js:3269:1)
    at LowLevelVM.evaluateInner (/var/folders/p4/2wqjhkg160sfdr7pykp6f3ch0000gn/T/broccoli-72882ZYE8RoqN9B1E/out-221-broccoli_merge_trees/assets/@glimmer/runtime.js:3215:1)
    at LowLevelVM.evaluateOuter (/var/folders/p4/2wqjhkg160sfdr7pykp6f3ch0000gn/T/broccoli-72882ZYE8RoqN9B1E/out-221-broccoli_merge_trees/assets/@glimmer/runtime.js:3207:1)
    at VM.next (/var/folders/p4/2wqjhkg160sfdr7pykp6f3ch0000gn/T/broccoli-72882ZYE8RoqN9B1E/out-221-broccoli_merge_trees/assets/@glimmer/runtime.js:5262:1)
    at TemplateIteratorImpl.next (/var/folders/p4/2wqjhkg160sfdr7pykp6f3ch0000gn/T/broccoli-72882ZYE8RoqN9B1E/out-221-broccoli_merge_trees/assets/@glimmer/runtime.js:5298:1)
    at RootState.render (/var/folders/p4/2wqjhkg160sfdr7pykp6f3ch0000gn/T/broccoli-72882ZYE8RoqN9B1E/out-221-broccoli_merge_trees/assets/@ember/-internals/glimmer.js:5883:1)
    at TransactionRunner.runInTransaction (/var/folders/p4/2wqjhkg160sfdr7pykp6f3ch0000gn/T/broccoli-72882ZYE8RoqN9B1E/out-221-broccoli_merge_trees/assets/@ember/-internals/metal.js:593:1)
    at runInTransaction (/var/folders/p4/2wqjhkg160sfdr7pykp6f3ch0000gn/T/broccoli-72882ZYE8RoqN9B1E/out-221-broccoli_merge_trees/assets/@ember/-internals/metal.js:728:1)
    at InertRenderer._renderRoots (/var/folders/p4/2wqjhkg160sfdr7pykp6f3ch0000gn/T/broccoli-72882ZYE8RoqN9B1E/out-221-broccoli_merge_trees/assets/@ember/-internals/glimmer.js:6179:1)
    at InertRenderer._renderRootsTransaction (/var/folders/p4/2wqjhkg160sfdr7pykp6f3ch0000gn/T/broccoli-72882ZYE8RoqN9B1E/out-221-broccoli_merge_trees/assets/@ember/-internals/glimmer.js:6216:1)
    at InertRenderer._revalidate (/var/folders/p4/2wqjhkg160sfdr7pykp6f3ch0000gn/T/broccoli-72882ZYE8RoqN9B1E/out-221-broccoli_merge_trees/assets/@ember/-internals/glimmer.js:6262:1)
    at invokeWithOnError (/var/folders/p4/2wqjhkg160sfdr7pykp6f3ch0000gn/T/broccoli-72882ZYE8RoqN9B1E/out-221-broccoli_merge_trees/assets/backburner.js:344:1)
    at Queue.flush (/var/folders/p4/2wqjhkg160sfdr7pykp6f3ch0000gn/T/broccoli-72882ZYE8RoqN9B1E/out-221-broccoli_merge_trees/assets/backburner.js:226:1)
    at DeferredActionQueues.flush (/var/folders/p4/2wqjhkg160sfdr7pykp6f3ch0000gn/T/broccoli-72882ZYE8RoqN9B1E/out-221-broccoli_merge_trees/assets/backburner.js:423:1)
    at Backburner._end (/var/folders/p4/2wqjhkg160sfdr7pykp6f3ch0000gn/T/broccoli-72882ZYE8RoqN9B1E/out-221-broccoli_merge_trees/assets/backburner.js:957:1)
    at Backburner.end (/var/folders/p4/2wqjhkg160sfdr7pykp6f3ch0000gn/T/broccoli-72882ZYE8RoqN9B1E/out-221-broccoli_merge_trees/assets/backburner.js:707:1)
    at Backburner._run (/var/folders/p4/2wqjhkg160sfdr7pykp6f3ch0000gn/T/broccoli-72882ZYE8RoqN9B1E/out-221-broccoli_merge_trees/assets/backburner.js:1006:1)
    at Backburner._join (/var/folders/p4/2wqjhkg160sfdr7pykp6f3ch0000gn/T/broccoli-72882ZYE8RoqN9B1E/out-221-broccoli_merge_trees/assets/backburner.js:986:1)
    at Backburner.join (/var/folders/p4/2wqjhkg160sfdr7pykp6f3ch0000gn/T/broccoli-72882ZYE8RoqN9B1E/out-221-broccoli_merge_trees/assets/backburner.js:757:1)
    at Array.loopEnd (/var/folders/p4/2wqjhkg160sfdr7pykp6f3ch0000gn/T/broccoli-72882ZYE8RoqN9B1E/out-221-broccoli_merge_trees/assets/@ember/-internals/glimmer.js:6008:1)
  [...snip ~100 more lines of repetitive backburner frames...]

Some observations I've made (not sure of the relevance). The problem only seems to occur if:

  • the non-existent helper is invoked in a child template. If I move the invocation from index.hbs into application.hbs, it's fine.
  • both {{head-layout}} and {{title}} invocations are present, and they both occur before the {{outlet}} invocation. Remove either, or move either below the {{outlet}}, and it's fine.

Things that don't seem to matter:

  • the order of invocation for {{head-layout}} and {{title}}. Either one first, still hit the problem.
  • the contents of head.hbs. I can comment out the entire file and it still occurs.
@wagenet
Copy link
Contributor

wagenet commented Feb 19, 2020

I have encountered this as well.

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

No branches or pull requests

2 participants