go-plus icon indicating copy to clipboard operation
go-plus copied to clipboard

Uncaught RangeError: Invalid string length

Open calvn opened this issue 8 years ago • 8 comments

[Enter steps to reproduce below:]

  1. ...
  2. ...

Atom Version: 1.12.8 Electron Version: 1.3.13 System: Mac OS X 10.12.2 Thrown From: go-plus package, v5.0.9

Stack Trace

Uncaught RangeError: Invalid string length

At /Users/cleung/.dotfiles/atom.symlink/packages/go-plus/lib/config/executor.js:56

RangeError: Invalid string length
    at stdoutFn (/Users/cleung/.dotfiles/atom.symlink/packages/go-plus/lib/config/executor.js:56:21)
    at Socket.<anonymous> (/Applications/Atom.app/Contents/Resources/app.asar/src/buffered-process.js:87:13)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at readableAddChunk (_stream_readable.js:176:18)
    at Socket.Readable.push (_stream_readable.js:134:10)
    at Pipe.onread (net.js:543:20)

Commands

     -2:05.7.0 editor:toggle-line-comments (atom-text-editor.editor.is-focused)
     -2:05.0 core:save (atom-text-editor.editor.is-focused)
  9x -1:40.6.0 core:backspace (atom-text-editor.editor.is-focused)
     -1:27.6.0 autocomplete-plus:confirm (atom-text-editor.editor.is-focused.autocomplete-active)
  3x -1:21.7.0 core:move-right (atom-text-editor.editor.is-focused.autocomplete-active)
     -1:20.6.0 core:backspace (atom-text-editor.editor.is-focused)
     -1:19.1.0 core:save (atom-text-editor.editor.is-focused.autocomplete-active.hyperclick)
     -0:55.1.0 core:cut (atom-text-editor.editor.is-focused)
     -0:54 core:save (atom-text-editor.editor.is-focused.autocomplete-active)
  2x -0:51.3.0 editor:newline (atom-text-editor.editor.is-focused)
     -0:46.7.0 core:backspace (atom-text-editor.editor.is-focused)
     -0:45.1.0 core:paste (atom-text-editor.editor.is-focused)
  2x -0:41.8.0 core:backspace (atom-text-editor.editor.is-focused)
     -0:34.4.0 editor:newline (atom-text-editor.editor.is-focused)
     -0:33.7.0 core:backspace (atom-text-editor.editor.is-focused.autocomplete-active)
  2x -0:32.5.0 core:save (atom-text-editor.editor.is-focused.autocomplete-active)

Config

{
  "core": {
    "telemetryConsent": "limited"
  },
  "go-plus": {}
}

Installed Packages

# User
go-debug, v1.0.1 (active)
go-plus, v5.0.9 (active)
go-signature-statusbar, v1.2.0 (active)
hyperclick, v0.0.39 (active)
linter, v1.11.18 (active)
atom-dark-syntax, v0.27.0 (inactive)
atom-dark-ui, v0.52.0 (inactive)
atom-light-syntax, v0.28.0 (inactive)
atom-light-ui, v0.45.0 (inactive)
base16-tomorrow-dark-theme, v1.3.0 (inactive)
base16-tomorrow-light-theme, v1.3.0 (inactive)
one-dark-ui, v1.6.2 (active)
one-light-ui, v1.6.2 (inactive)
one-dark-syntax, v1.5.0 (active)
one-light-syntax, v1.5.0 (inactive)
solarized-dark-syntax, v1.0.5 (inactive)
solarized-light-syntax, v1.0.5 (inactive)
about, v1.7.0 (active)
archive-view, v0.62.0 (active)
autocomplete-atom-api, v0.10.0 (active)
autocomplete-css, v0.13.1 (active)
autocomplete-html, v0.7.2 (active)
autocomplete-plus, v2.31.4 (active)
autocomplete-snippets, v1.11.0 (active)
autoflow, v0.27.0 (inactive)
autosave, v0.23.1 (active)
background-tips, v0.26.1 (active)
bookmarks, v0.42.0 (active)
bracket-matcher, v0.82.2 (active)
command-palette, v0.39.0 (inactive)
deprecation-cop, v0.54.1 (active)
dev-live-reload, v0.47.0 (active)
encoding-selector, v0.22.0 (active)
exception-reporting, v0.40.0 (active)
find-and-replace, v0.202.2 (active)
fuzzy-finder, v1.4.0 (active)
git-diff, v1.1.0 (active)
go-to-line, v0.31.0 (inactive)
grammar-selector, v0.48.2 (active)
image-view, v0.60.0 (active)
incompatible-packages, v0.26.1 (active)
keybinding-resolver, v0.35.0 (active)
line-ending-selector, v0.5.0 (active)
link, v0.31.2 (inactive)
markdown-preview, v0.158.8 (active)
metrics, v1.1.2 (active)
notifications, v0.65.1 (active)
open-on-github, v1.2.1 (inactive)
package-generator, v1.0.1 (inactive)
settings-view, v0.243.1 (active)
snippets, v1.0.4 (active)
spell-check, v0.68.4 (active)
status-bar, v1.4.1 (active)
styleguide, v0.47.2 (active)
symbols-view, v0.113.1 (inactive)
tabs, v0.103.0 (active)
timecop, v0.33.2 (active)
tree-view, v0.210.0 (active)
update-package-dependencies, v0.10.0 (active)
welcome, v0.35.1 (active)
whitespace, v0.35.0 (active)
wrap-guide, v0.38.2 (active)
language-c, v0.54.0 (active)
language-clojure, v0.22.1 (active)
language-coffee-script, v0.48.0 (active)
language-csharp, v0.13.0 (active)
language-css, v0.40.1 (active)
language-gfm, v0.88.0 (active)
language-git, v0.15.0 (active)
language-go, v0.43.0 (active)
language-html, v0.47.1 (active)
language-hyperlink, v0.16.1 (active)
language-java, v0.24.0 (active)
language-javascript, v0.122.0 (active)
language-json, v0.18.3 (active)
language-less, v0.29.6 (active)
language-make, v0.22.2 (active)
language-mustache, v0.13.0 (active)
language-objective-c, v0.15.1 (active)
language-perl, v0.37.0 (active)
language-php, v0.37.3 (active)
language-property-list, v0.8.0 (active)
language-python, v0.45.1 (active)
language-ruby, v0.70.2 (active)
language-ruby-on-rails, v0.25.1 (active)
language-sass, v0.57.0 (active)
language-shellscript, v0.23.0 (active)
language-source, v0.9.0 (active)
language-sql, v0.25.0 (active)
language-text, v0.7.1 (active)
language-todo, v0.29.1 (active)
language-toml, v0.18.1 (active)
language-xml, v0.34.12 (active)
language-yaml, v0.27.1 (active)

# Dev
No dev packages

calvn avatar Jan 04 '17 00:01 calvn

After a quick search this error seems to happen if you have a really (!!!) long string (> 256MB, see constant in node/v8). A related issue can be found here: https://github.com/nodejs/node/issues/3175

What did you do that could have caused such a massive output? Running tests with verbose flag?

I don't think we can do anything here (beside better error handling)...

lloiser avatar Jan 04 '17 09:01 lloiser

That error was caused by a stack overflow

runtime: goroutine stack exceeds 1000000000-byte limit
fatal error: stack overflow

calvn avatar Jan 05 '17 04:01 calvn

If this error throws once, it keeps throwing until Atom crashes. It's pretty serious and needs to be resolved.

gmmeyer avatar Aug 03 '17 20:08 gmmeyer

Now, it's my fault for accidentally logging a gigantic object, but at the same time that should not crash the editor.

gmmeyer avatar Aug 03 '17 20:08 gmmeyer

This error (and the related perpetual throwing until crash) can also be caused by logging in a frequently-repeating (e.g. infinite or very large) loop.

For my case (log in loop), it would be better to handle by terminating program execution and logging an error to the console.

eblock-fw avatar Aug 16 '17 17:08 eblock-fw

I caused this error by introducing an infinite loop and because the test suite runs on each save it kept crashing Atom before I could debug and fix the loop. Completely my fault but it would be nice if go-plus handled this without crashing.

tomjowitt avatar Aug 21 '17 06:08 tomjowitt

[Enter steps to reproduce:]

  1. ...
  2. ...

Atom: 1.21.2 x64 Electron: 1.6.15 OS: Mac OS X 10.13.1 Thrown From: go-plus package 5.6.0

Stack Trace

Uncaught RangeError: Invalid string length

At /Users/YDZ/.atom/packages/go-plus/lib/config/executor.js:64

RangeError: Invalid string length
    at stdoutFn (/packages/go-plus/lib/config/executor.js:64:21)
    at Socket.<anonymous> (/Applications/Atom.app/Contents/Resources/app/src/buffered-process.js:212:17)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at readableAddChunk (_stream_readable.js:176:18)
    at Socket.Readable.push (_stream_readable.js:134:10)
    at Pipe.onread (net.js:551:20)

Commands

  2x -0:46.2.0 core:backspace (input.hidden-input)
     -0:44.4.0 core:save (input.hidden-input)
  8x -0:07.8.0 core:copy (atom-notification.fatal.icon.icon-bug.native-key-bindings.has-detail.has-close.has-stack)

Non-Core Packages

atom-beautify 0.30.6 
atom-material-ui 2.0.6 
busy-signal 1.4.3 
esformatter 2.3.0 
go-debug 1.5.2 
go-plus 5.6.0 
go-signature-statusbar 1.2.3 
hyperclick 0.1.5 
intentions 1.1.5 
js-hyperclick 1.12.1 
language-vue 0.23.1 
last-cursor-position 0.9.2 
linter 2.2.0 
linter-ui-default 1.6.10 
minimap 4.29.7 
nucleus-dark-ui 0.12.3 
platformio-ide-terminal 2.7.0 
seti-icons 1.5.4 
seti-syntax 1.1.3 
seti-ui 1.9.0 
sync-settings 0.8.3 
vue-autocomplete 0.1.1 
vue-hyperclick 0.2.0 
vue2-autocomplete 0.1.0-alpha.4 
weex-format 1.0.2 

halfrost avatar Nov 05 '17 03:11 halfrost

The real issue here is that the entire Editor crashes if you hit this limit. That makes it very difficult to debug why your test is spewing so much information. Can this not be headed off or caught in a way that lets the Editor continue running?

BrendonW avatar Mar 26 '19 18:03 BrendonW