vsid crashes when switching to next subtune
Versatile Commodore Emulator
Brought to you by:
blackystardust,
gpz
Tested on VICE Version 3.4, rev 38789. I'm on Ubuntu 20.04.
Configure-line (if it matters):
./configure --enable-arch=native --with-resid --enable-native-gtk3ui --enable-ethernet --with-pulse --with-alsa --enable-pdf-docs --enable-external-ffmpeg
I'm able to crash vsid just by switching to the next subtune a few times, by clicking the >>|-button rapidly. I tried with /MUSICIANS/G/Galway_Martin/Combat_School.sid
$ vsid ~/Downloads/Combat_School.sid
Detecting ISA HardSID boards.
Could not open '/dev/port'.
Cannot get permission to access $300.
Detecting PCI HardSID boards.
No PCI HardSID boards found.
Detecting PCI CatWeasel boards.
No PCI CatWeasel found.
Detecting Linux ParSIDs.
Could not open /dev/parport0.
Could not open /dev/parport1.
Could not open /dev/parport2.
No Linux ParSIDs found.
Detecting direct I/O ParSIDs.
Could not open '/dev/port'.
Could not get permission to access 3BC.
Could not open '/dev/port'.
Could not get permission to access 378.
Could not open '/dev/port'.
Could not get permission to access 278.
Detecting direct I/O ISA SSI2001.
Could not open '/dev/port'.
Cannot get permission to access $280.
*** VICE Version 3.4, rev 38789 ***
Welcome to vsid, the free portable SID Player.
Current VICE team members:
Martin Pottendorfer, Marco van den Heuvel, Fabrizio Gennari, Groepaz,
Errol Smith, Ingo Korb, Olaf Seibert, Marcus Sutton, Kajtar Zsolt, AreaScout,
Bas Wassink, Michael C. Martin, Christopher Phillips, David Hogan.
This is free software with ABSOLUTELY NO WARRANTY.
See the "About VICE" command for more info.
Vsid: PSID version number: 2.
(vsid:114015): Gtk-CRITICAL **: 18:25:58.313: gtk_label_set_text: assertion 'GTK_IS_LABEL (label)' failed
(vsid:114015): Gtk-CRITICAL **: 18:25:58.313: gtk_label_set_text: assertion 'GTK_IS_LABEL (label)' failed
Vsid: No PSID freepages set, recalculating...
Loading system file `/usr/local/share/vice/C64/kernal'.
Loading system file `/usr/local/share/vice/C64/basic'.
Loading system file `/usr/local/share/vice/C64/chargen'.
Sound: Available sound devices: pulse alsa dummy fs dump wav voc iff aiff soundmovie
Warning - Trying to read value from unknown resource `Mouse'.
Warning - Trying to read value from unknown resource `KbdStatusbar'.
Main CPU: starting at ($FFFC).
Main CPU: RESET.
Vsid: PSID free pages: $3c00-$9fff
Vsid: Driver=$3C00, Image=$1000-$3BFF, Init=$1000, Play=$0000
Sound: Opened device `pulse', speed 44100Hz, fragment size 2,9ms, buffer size 351ms
reSID: MOS6581, filter on, sampling rate 44100Hz - resampling, pass to 19845Hz
Vsid: PSID free pages: $3c00-$9fff
Main CPU: RESET.
Vsid: PSID free pages: $3c00-$9fff
Vsid: Driver=$3C00, Image=$1000-$3BFF, Init=$1000, Play=$0000
reSID: MOS6581, filter on, sampling rate 44100Hz - resampling, pass to 19845Hz
Vsid: PSID free pages: $3c00-$9fff
Main CPU: RESET.
Vsid: PSID free pages: $3c00-$9fff
Vsid: Driver=$3C00, Image=$1000-$3BFF, Init=$1000, Play=$0000
reSID: MOS6581, filter on, sampling rate 44100Hz - resampling, pass to 19845Hz
Vsid: PSID free pages: $3c00-$9fff
Main CPU: RESET.
Vsid: PSID free pages: $3c00-$9fff
Vsid: Driver=$3C00, Image=$1000-$3BFF, Init=$1000, Play=$0000
reSID: MOS6581, filter on, sampling rate 44100Hz - resampling, pass to 19845Hz
Vsid: PSID free pages: $3c00-$9fff
Main CPU: RESET.
Vsid: PSID free pages: $3c00-$9fff
Vsid: Driver=$3C00, Image=$1000-$3BFF, Init=$1000, Play=$0000
reSID: MOS6581, filter on, sampling rate 44100Hz - resampling, pass to 19845Hz
Vsid: PSID free pages: $3c00-$9fff
Main CPU: RESET.
Vsid: PSID free pages: $3c00-$9fff
Vsid: Driver=$3C00, Image=$1000-$3BFF, Init=$1000, Play=$0000
reSID: MOS6581, filter on, sampling rate 44100Hz - resampling, pass to 19845Hz
Vsid: PSID free pages: $3c00-$9fff
Main CPU: RESET.
Vsid: PSID free pages: $3c00-$9fff
Vsid: Driver=$3C00, Image=$1000-$3BFF, Init=$1000, Play=$0000
reSID: MOS6581, filter on, sampling rate 44100Hz - resampling, pass to 19845Hz
Vsid: PSID free pages: $3c00-$9fff
Main CPU: RESET.
Vsid: PSID free pages: $3c00-$9fff
Vsid: Driver=$3C00, Image=$1000-$3BFF, Init=$1000, Play=$0000
reSID: MOS6581, filter on, sampling rate 44100Hz - resampling, pass to 19845Hz
Vsid: PSID free pages: $3c00-$9fff
Main CPU: RESET.
Vsid: PSID free pages: $3c00-$9fff
Vsid: Driver=$3C00, Image=$1000-$3BFF, Init=$1000, Play=$0000
reSID: MOS6581, filter on, sampling rate 44100Hz - resampling, pass to 19845Hz
Vsid: PSID free pages: $3c00-$9fff
Main CPU: RESET.
Vsid: PSID free pages: $3c00-$9fff
Vsid: Driver=$3C00, Image=$1000-$3BFF, Init=$1000, Play=$0000
reSID: MOS6581, filter on, sampling rate 44100Hz - resampling, pass to 19845Hz
Vsid: PSID free pages: $3c00-$9fff
Main CPU: RESET.
Vsid: PSID free pages: $3c00-$9fff
Vsid: Driver=$3C00, Image=$1000-$3BFF, Init=$1000, Play=$0000
reSID: MOS6581, filter on, sampling rate 44100Hz - resampling, pass to 19845Hz
Vsid: PSID free pages: $3c00-$9fff
Main CPU: RESET.
Vsid: PSID free pages: $3c00-$9fff
Vsid: Driver=$3C00, Image=$1000-$3BFF, Init=$1000, Play=$0000
reSID: MOS6581, filter on, sampling rate 44100Hz - resampling, pass to 19845Hz
Vsid: PSID free pages: $3c00-$9fff
Main CPU: RESET.
Vsid: PSID free pages: $3c00-$9fff
Vsid: Driver=$3C00, Image=$1000-$3BFF, Init=$1000, Play=$0000
reSID: MOS6581, filter on, sampling rate 44100Hz - resampling, pass to 19845Hz
Vsid: PSID free pages: $3c00-$9fff
Main CPU: RESET.
Vsid: PSID free pages: $3c00-$9fff
Vsid: Driver=$3C00, Image=$1000-$3BFF, Init=$1000, Play=$0000
reSID: MOS6581, filter on, sampling rate 44100Hz - resampling, pass to 19845Hz
Vsid: PSID free pages: $3c00-$9fff
Main CPU: RESET.
Vsid: PSID free pages: $3c00-$9fff
Vsid: Driver=$3C00, Image=$1000-$3BFF, Init=$1000, Play=$0000
reSID: MOS6581, filter on, sampling rate 44100Hz - resampling, pass to 19845Hz
Vsid: PSID free pages: $3c00-$9fff
Main CPU: RESET.
Vsid: PSID free pages: $3c00-$9fff
Vsid: Driver=$3C00, Image=$1000-$3BFF, Init=$1000, Play=$0000
reSID: MOS6581, filter on, sampling rate 44100Hz - resampling, pass to 19845Hz
Vsid: PSID free pages: $3c00-$9fff
Main CPU: RESET.
Vsid: PSID free pages: $3c00-$9fff
Vsid: Driver=$3C00, Image=$1000-$3BFF, Init=$1000, Play=$0000
reSID: MOS6581, filter on, sampling rate 44100Hz - resampling, pass to 19845Hz
Vsid: PSID free pages: $3c00-$9fff
Main CPU: RESET.
Vsid: PSID free pages: $3c00-$9fff
Vsid: Driver=$3C00, Image=$1000-$3BFF, Init=$1000, Play=$0000
**
Gtk:ERROR:../../../../gtk/gtkcssnode.c:319:lookup_in_global_parent_cache: assertion failed: (node->cache == NULL)
Bail out! Gtk:ERROR:../../../../gtk/gtkcssnode.c:319:lookup_in_global_parent_cache: assertion failed: (node->cache == NULL)
Aborted
Tried again today on revision 39929, Ubuntu 20.10 this time. Still crashes when hitting >>|-button rapidly a few times.
Yes, that's a problem with the main VICE thread updating the UI, which is wrong. I'm looking at it.
Yeah, some pointer gets corrupted. Error messages I also saw indicating this:
"free(): invalid pointer" and "Bus error" (points into the void).
Bug #1438 is probably a duplicate of this, I'd think.
is that still a problem?
gpz: yes, unless its fixed within the last week or two.
The issue with this is that the code hasn't been properly updated to use the threaded UI code. A related bug is #1438.
There's a lot of calling back and forth between the emulator and the UI, many of these calls need to be updated/wrapped to work properly with the threading code.
Should be fixed in trunk.
@compyx confirmed. thanks!
Alright, cool. Better late than never :)
I also can't reproduce the issue anymore. Great work, thank you!
Good to hear, and you're welcome :)