IRkernel / irkernel.github.io

Website for IRkernel
https://irkernel.github.io/
4 stars 7 forks source link

FAQ: updating certain packages while a kernel is running is going to break the installation/fail #32

Open jankatins opened 8 years ago

jankatins commented 8 years ago

If update.packages touches a native package which is loaded, it will fail and leave the package in a weired state (at least if I use R CMD build in my local git).

This is not a problem unless that that package is jsonlite, which the kernel needs... In that case you need to shutdown all kernels and then reinstall jsonlite...

takluyver commented 8 years ago

Is this a Windows issue with multiple processes trying to open the same file?

jankatins commented 8 years ago

No, I think it is a problem with native code (= *.so on linux) trying to be replaced while in use.

jankatins commented 8 years ago

Maybe it would be interesting to replace update.packages with a version which checks if one of the to-be-updated packages are in a "blacklist" and if so errors instead of crashing...?

takluyver commented 8 years ago

I feel like we don't understand the problem well enough, and I'm wary of attempting to paper over bugs in R package installation - that's the kind of fix that can end up causing as much aggravation as the problem it aims to resolve.

jankatins commented 8 years ago

true...

BTW: I looked into the Rsession process of rstudio and they use rcp messages to communicate between the UI and the session... Not sure how easy it would be to translate the jupyter messages to rstudio messages and then use their rsession as the backend for the kernel... would remove a lot of headache from our usage of evaluate...

flying-sheep commented 8 years ago

well, i guess that would be a separate project then.

i think a hard dependency on RStudio is out of scope for this

jankatins commented 8 years ago

Yep, the last would a replacement for our current evaluate based implementation...

flying-sheep commented 8 years ago

i’ve added most FAQ entries, but it’s not clear if we should really add this