njbrown / texturelab

Free, Cross-Platform, GPU-Accelerated Procedural Texture Generator
Other
740 stars 46 forks source link

blank screen running Linux build 0.2.0 #11

Closed eGax closed 4 years ago

eGax commented 4 years ago

When loading the Linux builds provided from https://njbrown.itch.io/texturelab via zip or appimage and loading builds from current github texturelab source nothing but a dark gray window briefly that turns to white appears and that's it. Launching from the terminal reveals its crashing with seccomp-bpf failure in syscall 0230 3 times in a row and then just sits there.

[retro@retro-mcp TextureLabLinux-v0.2.0]$ ./texturelab 
../../sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc:**CRASHING**:seccomp-bpf failure in syscall 0230
../../sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc:**CRASHING**:seccomp-bpf failure in syscall 0230
../../sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc:**CRASHING**:seccomp-bpf failure in syscall 0230
[retro@retro-mcp TextureLabLinux-v0.2.0]$

Here is a screenshot of texturelab window and my terminal under it.

image

I give it a few minutes and nothing happens, forcing me to kill the process to unload it.

This is on Manjaro Linux 64bit KDE with an AMD Ryzen 7 2700X, Nvidia GTX 1660 running current Nvidia proprietary driver. If you need any other info related to this issue I would be happy to share.

I thought it was one of the dependencies on my system and not texturelab, but the required dependencies seem to be installed.

njbrown commented 4 years ago

Thanks for the feedback.

I had uploaded a new release a few hours ago so it could probably be some changes I had made that's causing this. Test the linux versions from the previous versions and let me know if it runs fine or not: https://github.com/njbrown/texturelab/releases/tag/v0.1.0

Also, I did a quick google search of the error and the results allude to a bug caused by chrome. https://www.reddit.com/r/operabrowser/comments/f5vtgn/almost_every_website_crashes_on_my_arch_linux/fjbuzvx/ More specifically, a recent update of glibc: https://forum.endeavouros.com/t/chromium-based-browser-crashes-solution/3595/22

You may have to downgrade glibc or update it if it's not the latest (maybe they fixed the bug in a recent release)

eGax commented 4 years ago

1st thanks for the quick response!

Yes, I also came across that searching. It appears to be an issue with chromium-based browsers and programs using them when ran in sandbox mode. In searching, I also noticed those programs using chrome have worked out code patches around it. Something like this affected Steam in WINE under Linux a few times in the recent past in a similar way. I used the same workaround for your program that I used for Steam back then disabling sandboxing and thankfully it works with Texturelab as well.

For anyone on Linux experiencing this issue when launching Texturelab they can work around it by disabling sandboxing with the command: --disable-seccomp-filter-sandbox

In my case using version 0.2.0 from your website extracted into a folder I'm launching via the terminal with: ./texturelab --disable-seccomp-filter-sandbox

Here is the documentation on chromium sandboxing here: https://chromium.googlesource.com/chromium/src.git/+/master/docs/linux/sandboxing.md

The little bit of experience I've had so far with Texturelab all seems fine so far launching it this way.

Now I also have git cloned and built Texturelab but I am not yet certain how to disable sandboxing when using npm or yarn to launch.

njbrown commented 4 years ago

Here is the documentation on chromium sandboxing here: https://chromium.googlesource.com/chromium/src.git/+/master/docs/linux/sandboxing.md

Thanks. This really helped me understand the situation.

I added a branch with potential fix. I appended the flag on startup using the electron api as suggested here ( using --disable-seccomp-filter-sandbox instead): https://github.com/electron/electron/issues/18265#issuecomment-604912302

Checkout this branch and tell me if it works for you: https://github.com/njbrown/texturelab/tree/seccomp

If it doesnt work try switching --disable-seccomp-filter-sandbox with --no-sandbox in background.ts https://github.com/njbrown/texturelab/blob/seccomp/src/background.ts#L11

eGax commented 4 years ago

That's great, glad the info helped.

eGax commented 4 years ago

It's good to know where you made the neccasary change, but I didn't need to alter background.ts of the master branch because pulling and building from the seccomp branch worked for me.

I can successfully launch the program with yarm or npm as described in Building.

Thank you much!

njbrown commented 4 years ago

Great. I merged that branch in to master.