bleskodev / rubyripper

Fork of the original rubyripper from code.google.com/p/rubyripper + some bugs fixes
126 stars 21 forks source link

Crash with 0.8.0rc2 #633

Closed mokkurkalve closed 3 years ago

mokkurkalve commented 3 years ago

Now there are a crash in both rrip_cli and rrip_gui on Arch Linux current with disc in tray:

$ rrip_cli 
Rubyripper version 0.8.0rc2

DEBUG: cdparanoia -d /dev/sr0 -vQ
DEBUG: cd-discid /dev/sr0
DEBUG: CGI query: http://gnudb.gnudb.org/~cddb/cddb.cgi?cmd=cddb+query+810dd00a+10+150+30697+54335+72197+91227+109010+140200+161145+180235+245350+3538&hello=anonymous+deleted%40hotmail.com+rubyripper+0.8.0rc2&proto=6
<internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- rexml/document (LoadError)
    from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /usr/lib/rubyripper/metadata/musicbrainz/getMusicBrainzRelease.rb:22:in `<top (required)>'
    from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /usr/lib/rubyripper/metadata/musicbrainz.rb:21:in `<top (required)>'
    from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /usr/lib/rubyripper/metadata/main.rb:61:in `musicbrainz'
    from /usr/lib/rubyripper/metadata/main.rb:54:in `startup'
    from /usr/lib/rubyripper/metadata/main.rb:36:in `block in get'
    from /usr/lib/rubyripper/metadata/main.rb:35:in `each'
    from /usr/lib/rubyripper/metadata/main.rb:35:in `get'
    from /usr/lib/rubyripper/disc/disc.rb:108:in `setMetadata'
    from /usr/lib/rubyripper/disc/disc.rb:40:in `scan'
    from /usr/lib/rubyripper/cli/cliDisc.rb:61:in `refreshDisc'
    from /usr/lib/rubyripper/cli/cliDisc.rb:42:in `show'
    from /usr/bin/rrip_cli:85:in `prepare'
    from /usr/bin/rrip_cli:52:in `start'
    from /usr/bin/rrip_cli:187:in `<main>'

$ rrip_gui 
DEBUG: cdparanoia -d /dev/sr0 -vQ
DEBUG: cd-discid /dev/sr0
DEBUG: CGI query: http://gnudb.gnudb.org/~cddb/cddb.cgi?cmd=cddb+query+810dd00a+10+150+30697+54335+72197+91227+109010+140200+161145+180235+245350+3538&hello=anonymous+deleted%40hotmail.com+rubyripper+0.8.0rc2&proto=6
#<Thread:0x000055bb25203560 /usr/lib/rubyripper/gtk3/gtkDisc.rb:79 run> terminated with exception (report_on_exception is true):
<internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- rexml/document (LoadError)
    from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /usr/lib/rubyripper/metadata/musicbrainz/getMusicBrainzRelease.rb:22:in `<top (required)>'
    from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /usr/lib/rubyripper/metadata/musicbrainz.rb:21:in `<top (required)>'
    from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /usr/lib/rubyripper/metadata/main.rb:61:in `musicbrainz'
    from /usr/lib/rubyripper/metadata/main.rb:54:in `startup'
    from /usr/lib/rubyripper/metadata/main.rb:36:in `block in get'
    from /usr/lib/rubyripper/metadata/main.rb:35:in `each'
    from /usr/lib/rubyripper/metadata/main.rb:35:in `get'
    from /usr/lib/rubyripper/disc/disc.rb:108:in `setMetadata'
    from /usr/lib/rubyripper/disc/disc.rb:40:in `scan'
    from /usr/lib/rubyripper/gtk3/gtkDisc.rb:80:in `block in refreshDisc'
<internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- rexml/document (LoadError)
    from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /usr/lib/rubyripper/metadata/musicbrainz/getMusicBrainzRelease.rb:22:in `<top (required)>'
    from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /usr/lib/rubyripper/metadata/musicbrainz.rb:21:in `<top (required)>'
    from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from <internal:/usr/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /usr/lib/rubyripper/metadata/main.rb:61:in `musicbrainz'
    from /usr/lib/rubyripper/metadata/main.rb:54:in `startup'
    from /usr/lib/rubyripper/metadata/main.rb:36:in `block in get'
    from /usr/lib/rubyripper/metadata/main.rb:35:in `each'
    from /usr/lib/rubyripper/metadata/main.rb:35:in `get'
    from /usr/lib/rubyripper/disc/disc.rb:108:in `setMetadata'
    from /usr/lib/rubyripper/disc/disc.rb:40:in `scan'
    from /usr/lib/rubyripper/gtk3/gtkDisc.rb:80:in `block in refreshDisc'

.config/rubyripper/settings :

cdrom=/dev/sr0
offset=102
padMissingSamples=true
rippersettings=
reqMatchesAll=2
reqMatchesErrors=4
maxTries=24
eject=true
noLog=false
createCue=true
image=false
ripHiddenAudio=true
minLengthHiddenTrack=2
preGaps=prepend
preEmphasis=sox
flac=false
settingsFlac=--best -V
vorbis=true
settingsVorbis=-q 5
mp3=false
settingsMp3=-V 2 --vbr-new --add-id3v2 --pad-id3v2 --ignore-tag-errors
nero=false
settingsNero=-q 0.5
fraunhofer=false
settingsFraunhofer=-p 2 -m 5 -a 1
wavpack=true
settingsWavpack=-hx3mt
opus=false
settingsOpus=--bitrate 160
wav=false
other=false
settingsOther=flac %i %o.flac
playlist=true
maxThreads=4
noSpaces=false
noCapitals=false
normalizer=replaygain
gain=album
metadataProvider=gnudb
firstHit=false
site=http://gnudb.gnudb.org/~cddb/cddb.cgi
username=anonymous
hostname=deleted@hotmail.com
preferMusicBrainzCountries=US,UK,XW,XE,JP
preferMusicBrainzDate=earlier
useEarliestDate=true
basedir=/home/eivind/rippers/rubyripper/
namingNormal=%f/%a/%b (%y)/[%n] %t
namingVarious=%f/Various/%b (%y)/[%n] %a - %t
namingImage=%f/Image/%a - %b (%y)
editor=leafpad
filemanager=caja
browser=firefox
verbose=false
debug=true
bleskodev commented 3 years ago

Hi, I'm sorry to hear you have new problems...

Can you check if you have rexml gem installed (ruby-rexml on Arch); in the shell, issue 'gem list | grep rexml'. According to ruby-rexml arch package history (https://github.com/archlinux/svntogit-community/commits/packages/ruby-rexml/trunk) it seems that rexml was, until recently, embedded with ruby and it became a separate gem (that's why it worked before I guess). If this is the problem, you need to add a runtime dependency to it.

If you have rexml gem, can you post the output of 'gem list' here? Thanks!

mokkurkalve commented 3 years ago

That's right. I was missing ruby-rexml. Installing that package solves this issue.

bleskodev commented 3 years ago

I have updated readme to mention the dependency to rexml gem.

I have also improved the settings migration from 'freedb' to 'gnudb' (I have seen that you, and some other people, had problems with this). I hope this will be helpful.

mokkurkalve commented 3 years ago

I've tested some disks now. Gnudb seems to work OK. Except with the disk reported as: DEBUG: MusicBrainz status after the disc query: multipleRecords It seems such 'multiple hits' records are not handled well with rrip_cli. With rrip_gui there's a menu too choose which hit you want, so it works well with rrip_gui.

bleskodev commented 3 years ago

I'm glad gnudb now works correctly. Concerning multiple records, this is true, multiple records feature is currently implemented only in gui version. I'll add a feature request to implement this in cli version too. Thanks for testing and maintaining Arch packaging!