You are not logged in.

#1 2017-10-13 16:08:17

ezequiel.ezb
Member
Registered: 2017-08-14
Posts: 33

PCSXR segfaults on Arch Linux 64 bit[SOLVED]

I have a 64 bit Arch Linux build, running on a Intel Core i5 processor an I'm having this problem with PCSXR downloaded via official repos. I installed the 32 bit version from the official (multilib) repos and configured it, all went fine, but when I try to either run a game or the PSX bios, it segfaults, like follows:

139 vlash@vl-arch ~/Public % pcsxr                                                                                                                                   sad
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
[1]    31309 segmentation fault (core dumped)  pcsxr
pcsxr  7.77s user 0.35s system 34% cpu 23.654 total

What should I do, since the version found in the AUR doesn't seem to segfault like this (however it doesn't work to play games either, since it only compiles to 64 bit, rendering all the 32 bit - which means, basically all of them - unusable)

Last edited by ezequiel.ezb (2017-10-14 17:51:01)

Offline

#2 2017-10-13 17:39:28

seth
Member
Registered: 2012-09-03
Posts: 50,927

Re: PCSXR segfaults on Arch Linux 64 bit[SOLVED]

1. "man coredumpctl"
2. What do you  mean by "I downloaded the 32 bit version from the official (multilib) repos"?
     You're supposed to add that repo to your pacman conf and install it via pacman. That lib depends on a ton of other 32 bit libraries.

Offline

#3 2017-10-13 23:50:40

ezequiel.ezb
Member
Registered: 2017-08-14
Posts: 33

Re: PCSXR segfaults on Arch Linux 64 bit[SOLVED]

seth wrote:

1. "man coredumpctl"
2. What do you  mean by "I downloaded the 32 bit version from the official (multilib) repos"?
     You're supposed to add that repo to your pacman conf and install it via pacman. That lib depends on a ton of other 32 bit libraries.

Yes, I meant I installed it from the repos, using pacman -Syu

Anyways, I read what you've posted here about coredumpctl, so I managed to open the coredump with gdb, all the information it throws at me seems too much.

I found the coredump corresponding to pcsxr process using # coredumpctl list -r (so it shows the list in reverse order, the last coredump [from pcsxr] showing first). and I found the PID to be 1894.

So I did, # coredumbctl gdb 1894 and it shows the following.

 PID: 1894 (pcsxr)
           UID: 1000 (vlash)
           GID: 1000 (vlash)
        Signal: 11 (SEGV)
     Timestamp: Fri 2017-10-13 21:08:57 -03 (37s ago)
  Command Line: pcsxr
    Executable: /usr/bin/pcsxr
 Control Group: /user.slice/user-1000.slice/session-c1.scope
          Unit: session-c1.scope
         Slice: user-1000.slice
       Session: c1
     Owner UID: 1000 (vlash)
       Boot ID: 6f95bf1327f34660bcefa7bfef2ba7e2
    Machine ID: 3bf316c6c6284bf5b1860db0e7554ce8
      Hostname: vl-arch
       Storage: /var/lib/systemd/coredump/core.pcsxr.1000.6f95bf1327f34660bcefa7bfef2ba7e2.1894.1507939737000000.lz4
       Message: Process 1894 (pcsxr) of user 1000 dumped core.
                
                Stack trace of thread 1894:
                #0  0x00000000e6d3684a n/a (i965_dri.so)
                #1  0x00000000e6d36bb3 n/a (i965_dri.so)
                #2  0x00000000e6d38a17 n/a (i965_dri.so)
                #3  0x00000000e6d38a44 n/a (i965_dri.so)
                #4  0x00000000e6d2e715 n/a (i965_dri.so)
                #5  0x00000000e6d1ea09 n/a (i965_dri.so)
                #6  0x00000000e6ad3d34 n/a (i965_dri.so)
                #7  0x00000000e6ab7922 n/a (i965_dri.so)
                #8  0x00000000e6ad0c25 n/a (i965_dri.so)
                #9  0x00000000e69b3629 n/a (i965_dri.so)
                #10 0x00000000e69b4c91 n/a (i965_dri.so)
                #11 0x00000000e80addad updateDisplay (/usr/lib32/games/psemu/libpeopsxgl.so)
                #12 0x00000000e80ae8a1 GPUupdateLace (/usr/lib32/games/psemu/libpeopsxgl.so)
                #13 0x0000000008091903 n/a (pcsxr)
                #14 0x000000000806835d n/a (pcsxr)
                #15 0x00000000f5853f2b n/a (n/a)

GNU gdb (GDB) 8.0.1
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <[url]http://gnu.org/licenses/gpl.html[/url]>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<[url]http://www.gnu.org/software/gdb/bugs/[/url]>.
Find the GDB manual and other documentation resources online at:
<[url]http://www.gnu.org/software/gdb/documentation/[/url]>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/pcsxr...(no debugging symbols found)...done.
[New LWP 1894]
[New LWP 1898]
[New LWP 1895]
[New LWP 1899]
[New LWP 1915]
[New LWP 1916]
[New LWP 1917]
[New LWP 1918]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
---Type <return> to continue, or q <return> to quit---
Core was generated by `pcsxr'.                                                                                                                                         
Program terminated with signal SIGSEGV, Segmentation fault.                                                                                                            
#0  0xe6d3684a in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so                                                                                                   
[Current thread is 1 (Thread 0xf63878c0 (LWP 1894))]                                                                                                                   
(gdb) bt                                                                                                                                                               
#0  0xe6d3684a in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so                                                                                                   
#1  0xe6d36bb3 in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so                                                                                                   
#2  0xe6d38a17 in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so                                                                                                   
#3  0xe6d38a44 in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so                                                                                                   
#4  0xe6d2e715 in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so                                                                                                   
#5  0xe6d1ea09 in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so                                                                                                   
#6  0xe6ad3d34 in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so                                                                                                   
#7  0xe6ab7922 in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so                                                                                                   
#8  0xe6ad0c25 in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so
#9  0xe69b3629 in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so
#10 0xe69b4c91 in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so
#11 0xe80addad in updateDisplay () from /home/vlash/.pcsxr/plugins/libpeopsxgl.so
#12 0xe80ae8a1 in GPUupdateLace () from /home/vlash/.pcsxr/plugins/libpeopsxgl.so
#13 0x08091903 in ?? ()
#14 0x0806835d in ?? ()
#15 0xf5853f2b in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb) 
#0  0xe6d3684a in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so
#1  0xe6d36bb3 in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so
#2  0xe6d38a17 in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so
#3  0xe6d38a44 in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so
#4  0xe6d2e715 in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so
#5  0xe6d1ea09 in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so
#6  0xe6ad3d34 in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so
#7  0xe6ab7922 in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so
#8  0xe6ad0c25 in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so
#9  0xe69b3629 in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so
#10 0xe69b4c91 in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so
#11 0xe80addad in updateDisplay () from /home/vlash/.pcsxr/plugins/libpeopsxgl.so
#12 0xe80ae8a1 in GPUupdateLace () from /home/vlash/.pcsxr/plugins/libpeopsxgl.so
#13 0x08091903 in ?? ()
#14 0x0806835d in ?? ()
#15 0xf5853f2b in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb) 

I also deleted all the proprietaty, non-default plugins that I've installed in the emulator and ran it again. Again, interface shows up and I can configure it, but when I try to run a game or the PSX bios, it crashes. I checked the coredump again and it is way smaller, but it also stops after these lines:

#9  0xe6d15629 in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so
#10 0xe6d16c91 in ?? () from /usr/lib32/xorg/modules/dri/i965_dri.so
#11 0xe80addad in updateDisplay () from /home/vlash/.pcsxr/plugins/libpeopsxgl.so
#12 0xe80ae8a1 in GPUupdateLace () from /home/vlash/.pcsxr/plugins/libpeopsxgl.so
#13 0x08091903 in ?? ()
#14 0x0806835d in ?? ()
#15 0xf588f362 in ?? ()

Just like previously. I don't know, but does this crash have anything to do with this i965_dri.so library?

EDIT:

I looked which package the i965_dri.so file belongs to with $pkgfile i965_dri.so and it returns

extra/mesa
multilib/lib32-mesa

In other words, it is part of the mesa package, and since my graphics card belongs to the HD Intel 965 family, I presume it is the graphics driver for my GPU or something related. With that information at hand, I managed to replace the Emulators plugins for a non OpenGL dummy plugin (a test plugin that does not render any image whatsoever), and it doesn't segfault anymore.

In other words, It seems like it was crashing because of OpenGL, specifically because of something in this i965_dri.so, which seems to be the OpenGL or GPU driver included with mesa. What should I do, how do I report it so that they might know this problems exists?

Last edited by ezequiel.ezb (2017-10-14 00:46:14)

Offline

#4 2017-10-14 04:43:39

lpr1
Member
Registered: 2017-10-08
Posts: 68

Re: PCSXR segfaults on Arch Linux 64 bit[SOLVED]

Try this, change "Cpu = 0" to 1 in ~/.pcsxr/pcsxr.cfg

It might be the same problem I had.

Offline

#5 2017-10-14 17:43:05

ezequiel.ezb
Member
Registered: 2017-08-14
Posts: 33

Re: PCSXR segfaults on Arch Linux 64 bit[SOLVED]

lpr1 wrote:

Try this, change "Cpu = 0" to 1 in ~/.pcsxr/pcsxr.cfg

It might be the same problem I had.

Yes, indeed it worked, I'll document this, cause this is a hell of a bug.

Offline

#6 2017-10-14 18:14:49

lpr1
Member
Registered: 2017-10-08
Posts: 68

Re: PCSXR segfaults on Arch Linux 64 bit[SOLVED]

ezequiel.ezb wrote:
lpr1 wrote:

Try this, change "Cpu = 0" to 1 in ~/.pcsxr/pcsxr.cfg

It might be the same problem I had.

Yes, indeed it worked, I'll document this, cause this is a hell of a bug.

I think it's already documented, check github (or their) page, if there's none however, file a bug report, maybe it is fixed in git version, if you file a bug, link me to confirm it.

Offline

#7 2017-10-15 13:00:20

ezequiel.ezb
Member
Registered: 2017-08-14
Posts: 33

Re: PCSXR segfaults on Arch Linux 64 bit[SOLVED]

lpr1 wrote:
ezequiel.ezb wrote:
lpr1 wrote:

Try this, change "Cpu = 0" to 1 in ~/.pcsxr/pcsxr.cfg

It might be the same problem I had.

Yes, indeed it worked, I'll document this, cause this is a hell of a bug.

I think it's already documented, check github (or their) page, if there's none however, file a bug report, maybe it is fixed in git version, if you file a bug, link me to confirm it.

You mean, check mesa's or PCSXR's page.
PCSXR is actually hosted in codeplex not github, that's why I'm asking (and it seems it has a very poor documentation.)

By the way, I wish you tell me which graphic card is yours, because I'd like to know if this segfault issue is exclusive to computers that have the Intel HD graphics 965.

EDIT:

I wrote a little documentation for PCSXR on my subpage, I'll soon ask the moderators to check it and move it to the Arch Wiki.
See https://wiki.archlinux.org/index.php/Us … X-Reloaded

Any feedbacks are welcome.

Last edited by ezequiel.ezb (2017-10-15 13:18:02)

Offline

#8 2017-10-15 13:20:15

lpr1
Member
Registered: 2017-10-08
Posts: 68

Re: PCSXR segfaults on Arch Linux 64 bit[SOLVED]

Yeah, it is confusing, what i saw was launchpad bug report, so maybe it isn't reported there... (https://bugs.launchpad.net/ubuntu/+sour … ug/1504834), at least that's where I saw workaround.

I'm using AMD HD 6770 with radeon/Mesa drivers, so it is not exclusive to Intel, from what I did read it happened also on nvidia GPU's.

EDIT: Yeah it would be cool to move it to Arch wiki, well done btw.

Last edited by lpr1 (2017-10-15 13:21:47)

Offline

Board footer

Powered by FluxBB