PCSX2 hang on exit (Linux)...
#11
Hum is mtvu hack enabled ?
Reply

Sponsored links

#12
With you mentioning graphics drivers.

My driver is the Nvidia 358.16 driver which is the first driver to add support for xorg 1.18..... Coincidence??

Everything is at default settings.

I literally delete the old build and rebuild a new one (with dev enabled).
Open the program.
Accept the plugins
Close the program
Hang
Reply
#13
Please test without mtvu speedhack.
Reply
#14
Just tried again. MTVU is unchecked yet the hang still occurs.

Food for thought. I tried building and running the application in my virtual machine. That closes down as expected with no hang.

This does suggest that it might be external to the PCSX2 application
Reply
#15
Additional:

My virtual machine is Fedora 23 (32bit)
My main machine is Fedora 23 (64bit)
Reply
#16
Could you test git revision fa487474d2e4a4c9bae706ee5ddbd07473a97280? If PCSX2 closes normally try 372db4b539772991ea8efc53358ac94a9771b1f2.
Reply
#17
Good Call!

fa487474d2e4a4c9bae706ee5ddbd07473a97280 appears to work perfectly

372db4b539772991ea8efc53358ac94a9771b1f2 causes the hang
Reply
#18
Ok, thanks for testing, I'll try and improve the cleanup logic so it doesn't hang.
Reply
#19
Ok so I have done some debugging of my own by putting data out on the console after each step of the the cleanup process using "puts() commands.
Code:
void LinuxPipeRedirection::Cleanup() noexcept
{
    
    puts("a");
    
    // Restore stdout/stderr file descriptor - mostly useful if the thread
    // fails to start, but then you have bigger issues to worry about.
    if (m_pipe_fd[1] != -1) {
        puts("b");
        if (m_pipe_fd[1] == fileno(m_stdstream)) {
            puts("c");
            // FIXME: Use lock for better termination.
            // The redirect thread is most likely waiting at read(). Send a
            // newline so it returns and the thread begins to terminate.
            fflush(m_stdstream);
            puts("d");
            m_thread.Cancel();     <---------****** Fails Here *****
            puts("e");

The console shows:

Releasing host memory maps for virtual systems...
a
b
c
d
**** hangs here ****

It appears to hang at the m_thread.Cancel(); call above.

Hope it helps
Reply
#20
Actually it appears on the backtrace. Actually it could just be a print on the cancel path
Reply




Users browsing this thread: 1 Guest(s)