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

Uncaught Error: This socket has been ended by the other party #208

Open
bukzor opened this issue Sep 2, 2018 · 11 comments
Open

Uncaught Error: This socket has been ended by the other party #208

bukzor opened this issue Sep 2, 2018 · 11 comments

Comments

@bukzor
Copy link

bukzor commented Sep 2, 2018

Atom says this issue was already reported, but the ticket it gives (#51) was closed years ago.

  1. I'm working though the tutorial at https://github.com/idris-hackers/atom-language-idris/blob/master/documentation/tutorial.md
  2. I got to the "Select plusAssoc_rhs_1 and press ctrl+alt+s" bit
  3. That hotkey toggled the shaded (minimized) state of the window
  4. I had to go on a brief excursion through stackoverflow and dconf-editor to turn that hotkey off
  5. I returned to atom and this crash report.

Idris: 1.3.0
Atom: 1.30.0 x64
Electron: 2.0.5
OS: Ubuntu 18.04.1
Thrown From: language-idris package 0.4.10

Stack Trace

Uncaught Error: This socket has been ended by the other party

At /home/buck/.atom/packages/language-idris/node_modules/rx-lite/rx.lite.js:78

Error: This socket has been ended by the other party
    at Socket.writeAfterFIN [as write] (net.js:351:12)
    at IdrisIdeMode.send (/packages/language-idris/lib/idris-ide-mode.coffee:51:20)
    at IdrisModel.prepareCommand (/packages/language-idris/lib/idris-model.coffee:89:32)
    at IdrisModel.interpret (/packages/language-idris/lib/idris-model.coffee:132:6)
    at IdrisModel.changeDirectory (/packages/language-idris/lib/idris-model.coffee:93:6)
    at IdrisModel.load (/packages/language-idris/lib/idris-model.coffee:105:10)
    at IdrisController.getTypeForWord (/packages/language-idris/lib/idris-controller.coffee:200:8)
    at /packages/language-idris/lib/idris-controller.coffee:1:1
    at AnonymousObserver._onNext (/packages/language-idris/lib/idris-controller.coffee:102:11)
    at AnonymousObserver.Rx.AnonymousObserver.AnonymousObserver.next (/packages/language-idris/node_modules/rx-lite/rx.lite.js:1635:12)
    at AnonymousObserver.Rx.internals.AbstractObserver.AbstractObserver.onNext (/packages/language-idris/node_modules/rx-lite/rx.lite.js:1569:31)
    at AnonymousObserver.tryCatcher (/packages/language-idris/node_modules/rx-lite/rx.lite.js:64:31)
    at AutoDetachObserverPrototype.next (/packages/language-idris/node_modules/rx-lite/rx.lite.js:6260:51)
    at AutoDetachObserver.Rx.internals.AbstractObserver.AbstractObserver.onNext (/packages/language-idris/node_modules/rx-lite/rx.lite.js:1569:31)
    at CatchObserver.next (/packages/language-idris/node_modules/rx-lite/rx.lite.js:2747:59)
    at CatchObserver.Rx.internals.AbstractObserver.AbstractObserver.onNext (/packages/language-idris/node_modules/rx-lite/rx.lite.js:1569:31)
    at CatchObserver.tryCatcher (/packages/language-idris/node_modules/rx-lite/rx.lite.js:64:31)
    at AutoDetachObserverPrototype.next (/packages/language-idris/node_modules/rx-lite/rx.lite.js:6260:51)
    at AutoDetachObserver.Rx.internals.AbstractObserver.AbstractObserver.onNext (/packages/language-idris/node_modules/rx-lite/rx.lite.js:1569:31)
    at InnerObserver.onNext (/packages/language-idris/node_modules/rx-lite/rx.lite.js:3263:90)
    at InnerObserver.tryCatcher (/packages/language-idris/node_modules/rx-lite/rx.lite.js:64:31)
    at AutoDetachObserverPrototype.next (/packages/language-idris/node_modules/rx-lite/rx.lite.js:6260:51)
    at AutoDetachObserver.Rx.internals.AbstractObserver.AbstractObserver.onNext (/packages/language-idris/node_modules/rx-lite/rx.lite.js:1569:31)
    at scheduleItem (/packages/language-idris/node_modules/rx-lite/rx.lite.js:2651:16)
    at JustSink.run (/packages/language-idris/node_modules/rx-lite/rx.lite.js:2659:9)
    at JustObservable.subscribeCore (/packages/language-idris/node_modules/rx-lite/rx.lite.js:2640:19)
    at JustObservable.tryCatcher (/packages/language-idris/node_modules/rx-lite/rx.lite.js:64:31)
    at /packages/language-idris/node_modules/rx-lite/rx.lite.js:1813:46)
    at Rx.internals.ScheduledItem.ScheduledItem.invokeCore (/packages/language-idris/node_modules/rx-lite/rx.lite.js:858:33)
    at Rx.internals.ScheduledItem.ScheduledItem.invoke (/packages/language-idris/node_modules/rx-lite/rx.lite.js:846:40)
    at runTrampoline (/packages/language-idris/node_modules/rx-lite/rx.lite.js:1045:37)
    at tryCatcher (/packages/language-idris/node_modules/rx-lite/rx.lite.js:64:31)
    at CurrentThreadScheduler.schedule (/packages/language-idris/node_modules/rx-lite/rx.lite.js:1061:45)
    at JustObservable.Rx.ObservableBase.ObservableBase._subscribe (/packages/language-idris/node_modules/rx-lite/rx.lite.js:1826:32)
    at JustObservable.Rx.Observable.observableProto.subscribe.observableProto.forEach (/packages/language-idris/node_modules/rx-lite/rx.lite.js:1703:19)
    at MergeAllObserver.onNext (/packages/language-idris/node_modules/rx-lite/rx.lite.js:3232:37)
    at MergeAllObserver.tryCatcher (/packages/language-idris/node_modules/rx-lite/rx.lite.js:64:31)
    at AutoDetachObserverPrototype.next (/packages/language-idris/node_modules/rx-lite/rx.lite.js:6260:51)
    at AutoDetachObserver.Rx.internals.AbstractObserver.AbstractObserver.onNext (/packages/language-idris/node_modules/rx-lite/rx.lite.js:1569:31)
    at InnerObserver.Rx.FlatMapObservable.InnerObserver.next (/packages/language-idris/node_modules/rx-lite/rx.lite.js:1876:14)
    at InnerObserver.Rx.internals.AbstractObserver.AbstractObserver.onNext (/packages/language-idris/node_modules/rx-lite/rx.lite.js:1569:31)
    at InnerObserver.tryCatcher (/packages/language-idris/node_modules/rx-lite/rx.lite.js:64:31)
    at AutoDetachObserverPrototype.next (/packages/language-idris/node_modules/rx-lite/rx.lite.js:6260:51)
    at AutoDetachObserver.Rx.internals.AbstractObserver.AbstractObserver.onNext (/packages/language-idris/node_modules/rx-lite/rx.lite.js:1569:31)
    at InnerObserver.next (/packages/language-idris/node_modules/rx-lite/rx.lite.js:4329:14)
    at InnerObserver.Rx.internals.AbstractObserver.AbstractObserver.onNext (/packages/language-idris/node_modules/rx-lite/rx.lite.js:1569:31)
    at InnerObserver.tryCatcher (/packages/language-idris/node_modules/rx-lite/rx.lite.js:64:31)
    at AutoDetachObserverPrototype.next (/packages/language-idris/node_modules/rx-lite/rx.lite.js:6260:51)
    at AutoDetachObserver.Rx.internals.AbstractObserver.AbstractObserver.onNext (/packages/language-idris/node_modules/rx-lite/rx.lite.js:1569:31)
    at AsyncSubject.onCompleted (/packages/language-idris/node_modules/rx-lite/rx.lite.js:6462:17)
    at handler (/packages/language-idris/node_modules/rx-lite/rx.lite.js:4766:7)
    at FSReqWrap.oncomplete (fs.js:135:15)

Commands

  2x -9:35 language-idris:proof-search (input.hidden-input)
  2x -9:11.3.0 language-idris:type-of (input.hidden-input)
     -0:12.7.0 core:save-as (input.hidden-input)
     -0:07.4.0 language-idris:type-of (input.hidden-input)

Non-Core Packages

language-idris 0.4.10 
@bukzor
Copy link
Author

bukzor commented Sep 2, 2018

Same issue, different cause: I randomly chose "Language Idris: Make with" just to see what it does.
Atom reported that the interpreter crashed with code 1 (but what was the error message?) and subsequent operations report the above Uncaught socket-closed error.

@justjoheinz
Copy link
Contributor

justjoheinz commented Sep 2, 2018 via email

@bukzor
Copy link
Author

bukzor commented Sep 3, 2018

Yes, in comment-2 I show that the error recurred after restart.
Not exactly a reproduction though...

The "make with" crash reproduced just now, but didn't after I restarted.
Are there any logs I can collect / enable?

@justjoheinz
Copy link
Contributor

justjoheinz commented Sep 3, 2018 via email

@bukzor
Copy link
Author

bukzor commented Sep 3, 2018

@justjoheinz Idris was already on the $PATH so the default setting (just idris) worked fine.
I'm able to interact with idris before it crashes, which wouldn't be possible with an incorrect path.

I do recall seeing something to the effect of "it should work, perhaps after setting the path to idris" in some part of the documentation, so that bit's good enough, for me at least.

I wasn't able to get any variation of ctrl-alt-l to work, nor find anything similar to "Developer Console" in the command palette. I suspect it's from a package that I don't have installed.

@bukzor
Copy link
Author

bukzor commented Sep 3, 2018

Ah, it's ctrl-shift-i.

@bukzor
Copy link
Author

bukzor commented Sep 3, 2018

It seems to crash pretty reliably if I put my cursor on the last (empty) line of this script, then "idris: find holes" and then "idris: make with".

module Main

main : IO ()
main = putStrLn (cast 'x')

Also, I captured a log of the described crash: atom-idris-crash.log

@justjoheinz
Copy link
Contributor

justjoheinz commented Sep 4, 2018

idris-lang/Idris-dev#4549

@bukzor thanks for the detailed steps to reproduce. I will fix this in Atom but the problem originates in idris itself. As for the with clauses -have a look at http://docs.idris-lang.org/en/latest/tutorial/views.html to understand how they are used.

@bukzor
Copy link
Author

bukzor commented Sep 8, 2018

Ah I see this is the fix, rather than the PR that's linked above: c98aabd

But isn't there an additional bug wherein atom-idris fails to restart idris when it crashes?

@justjoheinz
Copy link
Contributor

justjoheinz commented Sep 9, 2018 via email

@bukzor
Copy link
Author

bukzor commented Sep 9, 2018

No problem! I just got a little confused.
Should I re-title this issue as "idris fails to restart on crash"?

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

No branches or pull requests

2 participants