Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER Bug Reports

Reply
 
Thread Tools Display Modes
Old 09-15-2020, 02:20 AM   #1
tufb
Human being with feelings
 
Join Date: Dec 2017
Posts: 152
Default Fedora 32 / linux_x86_64 : Crash on loading JS plugins

I've been using the linux_x86_64 versions on Fedora without issues whatsoever since they first appeared. On upgrading my system to Fedora 32, I now always get immediate application crashes whenever I try to load any JS plugin. Other than the system upgrade, system configuration hasn't changed. I consulted the linux readme and made sure that all required libraries are still installed.

Rea effects such as ReaFIR, and instruments such as ReaSynth, all load successfully.

I tested with 5.99, 6.12c, 6.13 and reaper613+dev0908 and several JS plugins. I tried a fresh config folder. Never had any issues with these same application versions before the system upgrade.


Typical strace output below.
Fedora32
PulseAudio
Reaper 6.13 linux_x86_64
fresh config

Open REAPER.
Trying to add 3BandEQ JS to any track.

Result: Reaper crashes immediately without notice.

Happy to provide more info.
Code:
writev(3, [{iov_base="%(\1\0", iov_len=4}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 4
recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{iov_base="+(\1\0", iov_len=4}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 4
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\2\1%\0\0\0\0\342\5\200\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
openat(AT_FDCWD, "/dev/urandom", O_RDONLY) = 16
read(16, "\240 0s\356\270\344\247%\224\r\367\6\31\244\356", 16) = 16
close(16)                               = 0
stat("/home/$USER/.config/REAPER/Effects/loser/3BandEQ", {st_mode=S_IFREG|0644, st_size=2031, ...}) = 0
openat(AT_FDCWD, "/home/$USER/.config/REAPER/Effects/loser/3BandEQ", O_RDONLY) = 16
fstat(16, {st_mode=S_IFREG|0644, st_size=2031, ...}) = 0
read(16, "// (C) 2006, Michael Gruhn.\r\n\r\n/"..., 4096) = 2031
read(16, "", 4096)                      = 0
close(16)                               = 0
mprotect(0x21d6000, 69632, PROT_READ|PROT_WRITE|PROT_EXEC) = -1 EACCES (Permission denied)
mprotect(0x21f6000, 69632, PROT_READ|PROT_WRITE|PROT_EXEC) = -1 EACCES (Permission denied)
mprotect(0x2216000, 69632, PROT_READ|PROT_WRITE|PROT_EXEC) = -1 EACCES (Permission denied)
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_ACCERR, si_addr=0x21d6360} ---
+++ killed by SIGSEGV (core dumped) +++
Segmentation fault (core dumped)


edit:
reaper614rc1_linux_x86_64
Code:
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1(86\7\0\0\0f\7\0\0\0\0\0\0\0\0|\3\0\0S\1\0\0\32\1\0\0c\0"..., iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 60
openat(AT_FDCWD, "/dev/urandom", O_RDONLY) = 32
read(32, ",\316\351I\246\3038\24\361\304\343\37'2Q\371", 16) = 16
close(32)                               = 0
stat("/home/$USER/.config/REAPER/Effects/Liteon/3bandpeakfilter", {st_mode=S_IFREG|0644, st_size=15094, ...}) = 0
openat(AT_FDCWD, "/home/$USER/.config/REAPER/Effects/Liteon/3bandpeakfilter", O_RDONLY) = 32
fstat(32, {st_mode=S_IFREG|0644, st_size=15094, ...}) = 0
read(32, "// (C) 2008-2009, Lubomir I. Iva"..., 4096) = 4096
read(32, "/d;\r\ncx12 = (p-m*ta)/d;\r\ncy11 = "..., 4096) = 4096
read(32, "l_c3);\r\nbl_out2 = (bl1_2*bl_c1 +"..., 4096) = 4096
read(32, " series out\r\no_out1l = 0.5*(bl_o"..., 4096) = 2806
read(32, "", 4096)                      = 0
close(32)                               = 0
brk(NULL)                               = 0x569b000
brk(0x56cb000)                          = 0x56cb000
mprotect(0x569a000, 69632, PROT_READ|PROT_WRITE|PROT_EXEC) = -1 EACCES (Permission denied)
brk(NULL)                               = 0x56cb000
brk(0x56fb000)                          = 0x56fb000
mprotect(0x56ca000, 69632, PROT_READ|PROT_WRITE|PROT_EXEC) = -1 EACCES (Permission denied)
mprotect(0x56ea000, 69632, PROT_READ|PROT_WRITE|PROT_EXEC) = -1 EACCES (Permission denied)
brk(NULL)                               = 0x56fb000
brk(0x572b000)                          = 0x572b000
mprotect(0x56fa000, 69632, PROT_READ|PROT_WRITE|PROT_EXEC) = -1 EACCES (Permission denied)
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_ACCERR, si_addr=0x569ac60} ---
+++ killed by SIGSEGV (core dumped) +++
Segmentation fault (core dumped)
tufb is offline   Reply With Quote
Old 09-23-2020, 04:06 AM   #2
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,721
Default

Ah looks like Fedora 32 changes permissions to prevent writing to executable pages:
Quote:
mprotect(0x2216000, 69632, PROT_READ|PROT_WRITE|PROT_EXEC) = -1 EACCES (Permission denied)
Perhaps we can make the pages executable after writing to avoid this, but for now, can you try:

Code:
chcon -t execmem_exec_t /path/to/reaper
and see if that fixes?
Justin is offline   Reply With Quote
Old 09-24-2020, 02:18 PM   #3
tufb
Human being with feelings
 
Join Date: Dec 2017
Posts: 152
Default

Thank you for the support!

Alas, that did not fix it it. Tried with reaper614_linux_x86_64.
Applied the command to both the REAPER executable, then to the folder. Identical symptoms.

btw, I should have mentioned, I just extract the archive in my home folder and then run Reaper without installing.
tufb is offline   Reply With Quote
Old 11-21-2020, 07:18 AM   #4
juril
Human being with feelings
 
Join Date: Nov 2020
Posts: 1
Default

Hi,

Just in case people are still interested in fixing this.

I could make it work by disabling SELinux, making it permissive actually:
"Changing to permissive mode" from https://docs.fedoraproject.org/en-US...tes-and-modes/

Hope this helps.
juril is offline   Reply With Quote
Old 02-06-2021, 04:37 AM   #5
ply
Human being with feelings
 
ply's Avatar
 
Join Date: Aug 2014
Location: Kraków, PL
Posts: 20
Default

The problem is not Fedora-specific, but it exist in every SELinux enforced system

Actually it's not required to disable SELinux at all. You need to allow heap execution using command:
Code:
sudo setsebool -P selinuxuser_execheap 1
Despite existing workaround, it is a potential security risk to have memory be both writable and executable simultaneously. The problem is still valid with REAPER 6.23.
__________________
my ReaPack repo with Source-Destination editing scripts and other utils
ply is offline   Reply With Quote
Old 02-06-2021, 06:47 AM   #6
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,721
Default

Hmm as of 6.20 REAPER should no longer need to mark pages as both executable and write at the same time -- it first writes to them, then makes them read-only and executable. I'll look at why it is failing with selinux execheap disabled, but it's probably simply because it is within the heap.
Justin is offline   Reply With Quote
Old 02-06-2021, 11:05 AM   #7
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,721
Default

Hmm installed Fedora 32 and it all works fine (with selinuxuser_execheap off, even), how do I reproduce?

Justin is offline   Reply With Quote
Old 02-06-2021, 11:15 AM   #8
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 15,721
Default

Edit: updated to latest, now duplicated, thanks! Seeing if I can fix!

Edit: should be fixed in the latest +dev builds

Last edited by Justin; 02-06-2021 at 04:21 PM.
Justin is offline   Reply With Quote
Old 02-07-2021, 08:43 AM   #9
ply
Human being with feelings
 
ply's Avatar
 
Join Date: Aug 2014
Location: Kraków, PL
Posts: 20
Default

Quote:
Originally Posted by Justin View Post
Edit: should be fixed in the latest +dev builds
I confirm, thanks!
__________________
my ReaPack repo with Source-Destination editing scripts and other utils
ply is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 11:20 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.