Skip to content

Pluto is unhappy with notebook files that are set to read-only permissions #1400

@Krastanov

Description

@Krastanov

Related to https://discourse.julialang.org/t/read-only-pluto-notebook/66563

If I make a file readonly, e.g. chmod -w test.jl then Pluto complains. Is this something that in principle should be possible or is it outside of the Pluto roadmap (for now?)

SystemError: opening file "/home/stefan/Documents/ScratchSpace/quantumsavory/test.jl": Permission denied
Stacktrace:
  [1] systemerror(p::String, errno::Int32; extrainfo::Nothing)
    @ Base ./error.jl:168
  [2] #systemerror#62
    @ ./error.jl:167 [inlined]
  [3] systemerror
    @ ./error.jl:167 [inlined]
  [4] open(fname::String; lock::Bool, read::Nothing, write::Nothing, create::Nothing, truncate::Bool, append::Nothing)
    @ Base ./iostream.jl:293
  [5] open(fname::String, mode::String; lock::Bool)
    @ Base ./iostream.jl:355
  [6] open(fname::String, mode::String)
    @ Base ./iostream.jl:355
  [7] open(::Pluto.var"#44#45"{String}, ::String, ::Vararg{String, N} where N; kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Base ./io.jl:328
  [8] open
    @ ./io.jl:328 [inlined]
  [9] open_safe_write
    @ ~/.julia/packages/Pluto/HmZoH/src/notebook/Notebook.jl:173 [inlined]
 [10] save_notebook
    @ ~/.julia/packages/Pluto/HmZoH/src/notebook/Notebook.jl:179 [inlined]
 [11] save_notebook
    @ ~/.julia/packages/Pluto/HmZoH/src/notebook/Notebook.jl:184 [inlined]
 [12] load_notebook(path::String; disable_writing_notebook_files::Bool)
    @ Pluto ~/.julia/packages/Pluto/HmZoH/src/notebook/Notebook.jl:304
 [13] open(session::Pluto.ServerSession, path::String; run_async::Bool, compiler_options::Nothing, as_sample::Bool)
    @ Pluto.SessionActions ~/.julia/packages/Pluto/HmZoH/src/webserver/SessionActions.jl:37
 [14] (::Pluto.var"#try_launch_notebook_response#235"{Pluto.var"#try_launch_notebook_response#212#236"{Pluto.ServerSession}})(action::typeof(Pluto.SessionActions.open), path_or_url::String; title::String, advice::String, home_url::String, as_redirect::Bool, action_kwargs::Base.Iterators.Pairs{Symbol, Bool, Tuple{Symbol}, NamedTuple{(:as_sample,), Tuple{Bool}}})
    @ Pluto ~/.julia/packages/Pluto/HmZoH/src/webserver/Static.jl:141
 [15] (::Pluto.var"#214#238")(request::HTTP.Messages.Request)
    @ Pluto ~/.julia/packages/Pluto/HmZoH/src/webserver/Static.jl:172
 [16] (::Pluto.var"#201#223"{Bool, Pluto.var"#214#238", Pluto.ServerSession, Pluto.var"#add_set_secret_cookie!#220"{Pluto.ServerSession}})(request::HTTP.Messages.Request)
    @ Pluto ~/.julia/packages/Pluto/HmZoH/src/webserver/Static.jl:101
 [17] handle(::HTTP.Handlers.RequestHandlerFunction{Pluto.var"#201#223"{Bool, Pluto.var"#214#238", Pluto.ServerSession, Pluto.var"#add_set_secret_cookie!#220"{Pluto.ServerSession}}}, ::HTTP.Messages.Request)
    @ HTTP.Handlers ~/.julia/packages/HTTP/D0FSE/src/Handlers.jl:254
 [18] handle(::HTTP.Handlers.Router{Symbol("##257")}, ::HTTP.Messages.Request)
    @ HTTP.Handlers ~/.julia/packages/HTTP/D0FSE/src/Handlers.jl:468
 [19] (::Pluto.var"#301#311"{Pluto.ServerSession, Base.RefValue{Function}, HTTP.Handlers.Router{Symbol("##257")}})(http::HTTP.Streams.Stream{HTTP.Messages.Request, HTTP.ConnectionPool.Transaction{Sockets.TCPSocket}})
    @ Pluto ~/.julia/packages/Pluto/HmZoH/src/webserver/WebServer.jl:211
 [20] handle
    @ ~/.julia/packages/HTTP/D0FSE/src/Handlers.jl:270 [inlined]
 [21] #4
    @ ~/.julia/packages/HTTP/D0FSE/src/Handlers.jl:346 [inlined]
 [22] macro expansion
    @ ~/.julia/packages/HTTP/D0FSE/src/Servers.jl:413 [inlined]
 [23] (::HTTP.Servers.var"#13#14"{HTTP.Handlers.var"#4#5"{HTTP.Handlers.StreamHandlerFunction{Pluto.var"#301#311"{Pluto.ServerSession, Base.RefValue{Function}, HTTP.Handlers.Router{Symbol("##257")}}}}, HTTP.ConnectionPool.Transaction{Sockets.TCPSocket}, HTTP.Servers.Server{Nothing, Sockets.TCPServer}, HTTP.Streams.Stream{HTTP.Messages.Request, HTTP.ConnectionPool.Transaction{Sockets.TCPSocket}}})()
    @ HTTP.Servers ./task.jl:406

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions