Open jmcphers opened 1 year ago
You have to quit Positron to get out of this state. :-( We should really have a way to force quit (see https://github.com/posit-dev/positron/issues/1422)
I cannot reproduce 😞
I can't either!
@softwarenerd is still seeing this.
This is definitely still a problem. It's is 100% reproducible for me.
If I execute:
for (x in 1:20000) {
print(sprintf("This qlwe qlejql ejkqw ejqw eqwej qwelqjwe qwejq wis row %d", x))
}
The R language runtime will hang:
I looked at this for a little while today - my notes so far are that it looks like the frontend isn't receiving the final idle
state. AFAICT R is not actually crashing here.
If you look in the Runtime R
output logs, you will see a 'status'
(the idle) being sent at the end of the logs. It seems like it really is being sent over from the Rust side.
On the Typescript side, it seems like the idle status isn't coming through zmq, almost like it is being dropped...I tried setting breakpoints in our _iopub.onMessage()
handler but never see the corresponding idle come through.
The many many 'stream'
messages also all go through this one IOPub channel, so I wonder if they are somehow clogging it up enough to prevent the 'status'
one from getting through, I'm not really sure.
Planning to discuss further with Lionel tomorrow
Positron Version
Repro Steps
Create an .R file with these contents:
Run the code with Cmd + Enter. Wait a beat, then run it again.
The R interpreter never leaves the Busy state after this, and interrupting it has no apparent effect (see also #1105).
https://github.com/posit-dev/positron/assets/470418/26dae243-f52b-4194-a00b-74e25f38cf65
(originally discovered by @softwarenerd)