JuliaPluto / Malt.jl

Simple multiprocessing for Julia
https://juliapluto.github.io/Malt.jl/
MIT License
47 stars 8 forks source link

Feature Request: Add backtrace information to `RemoteException` #66

Closed schlichtanders closed 11 months ago

schlichtanders commented 11 months ago

I am currently trying to figure out where this bug https://github.com/JuliaPluto/Malt.jl/issues/65 comes from.

Unfortunately, Malt.jl misses to print stacktraces. Pluto has perfect support for stacktraces, but Malt misses them. It's a pity which will cause me at least a full working day of work...

Maybe you can copy the logic from Pluto.PlutoRunner.CapturedException?

schlichtanders commented 11 months ago

I found the location which needs to be changed: https://github.com/JuliaPluto/Malt.jl/blob/34e6226b80ee5f8a16ea0fb4ba5b41d0f00c6284/src/worker.jl#L80

Probably it is easiest to directly transform it to a string like it is done in a similar place https://github.com/JuliaPluto/Malt.jl/blob/34e6226b80ee5f8a16ea0fb4ba5b41d0f00c6284/src/worker.jl#L126-L128

Or altrnatively delete the sprint transformations early on and do it during construction of Malt.RemoteException (or even better as showerror implementation of Malt.RemoteException)

Pangoraw commented 11 months ago

Or altrnatively delete the sprint transformations early on and do it during construction of Malt.RemoteException (or even better as showerror implementation of Malt.RemoteException)

The exception needs to be deserializable on the "main" process which is why we convert to string.