bleskodev / rubyripper

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

musicbrainzReleaseParser.rb:154:in `block (2 levels) in analyzeResult': undefined method `<<' for nil:NilClass (NoMethodError) #603

Closed Safari77 closed 7 years ago

Safari77 commented 7 years ago
Ignoring sup-0.21.0 because its extensions are not built.  Try: gem pristine sup --version 0.21.0
Ignoring websocket-driver-0.3.4 because its extensions are not built.  Try: gem pristine websocket-driver --version 0.3.4
DEBUG: cdparanoia -d /dev/disk/by-id/ata-ATAPI_iHAS124_F_3524728_2C7635515149 -vQ
DEBUG: cd-info -C /dev/disk/by-id/ata-ATAPI_iHAS124_F_3524728_2C7635515149 -A --no-cddb
DEBUG: CGI query: http://musicbrainz.org/ws/2/discid/kES0UqdarnXy.olKhf6mDljKdcM-?toc=1+8+151019+150+20223+35556+55557+73798+89419+112868+126970&inc=artists+recordings+artist-credits+release-groups
DEBUG: MusicBrainz status after the disc query: ok
DEBUG: cd-discid /dev/disk/by-id/ata-ATAPI_iHAS124_F_3524728_2C7635515149
DEBUG: CGI query: http://musicbrainz.org/ws/2/release-group/ff01a595-ff51-395a-9ed1-b2c93f54f659?inc=tags
/wrk/safari/cvs/rubyripper-fork/lib/rubyripper/metadata/musicbrainz/musicbrainzReleaseParser.rb:154:in `block (2 levels) in analyzeResult': undefined method `<<' for nil:NilClass (NoMethodError)
    from /usr/share/ruby/rexml/xpath.rb:68:in `each'
    from /usr/share/ruby/rexml/xpath.rb:68:in `each'
    from /wrk/safari/cvs/rubyripper-fork/lib/rubyripper/metadata/musicbrainz/musicbrainzReleaseParser.rb:152:in `block in analyzeResult'
    from /usr/share/ruby/rexml/xpath.rb:68:in `each'
    from /usr/share/ruby/rexml/xpath.rb:68:in `each'
    from /wrk/safari/cvs/rubyripper-fork/lib/rubyripper/metadata/musicbrainz/musicbrainzReleaseParser.rb:148:in `analyzeResult'
    from /wrk/safari/cvs/rubyripper-fork/lib/rubyripper/metadata/musicbrainz/musicbrainzReleaseParser.rb:44:in `parse'
    from /wrk/safari/cvs/rubyripper-fork/lib/rubyripper/metadata/musicbrainz.rb:45:in `get'
    from /wrk/safari/cvs/rubyripper-fork/lib/rubyripper/metadata/main.rb:63:in `musicbrainz'
    from /wrk/safari/cvs/rubyripper-fork/lib/rubyripper/metadata/main.rb:54:in `startup'
    from /wrk/safari/cvs/rubyripper-fork/lib/rubyripper/metadata/main.rb:36:in `block in get'
    from /wrk/safari/cvs/rubyripper-fork/lib/rubyripper/metadata/main.rb:35:in `each'
    from /wrk/safari/cvs/rubyripper-fork/lib/rubyripper/metadata/main.rb:35:in `get'
    from /wrk/safari/cvs/rubyripper-fork/lib/rubyripper/disc/disc.rb:106:in `setMetadata'
    from /wrk/safari/cvs/rubyripper-fork/lib/rubyripper/disc/disc.rb:40:in `scan'
    from /wrk/safari/cvs/rubyripper-fork/lib/rubyripper/gtk2/gtkDisc.rb:44:in `refresh'
    from /wrk/safari/cvs/rubyripper-fork/lib/rubyripper/gtk2/gtkDisc.rb:37:in `start'
    from ./rubyripper_gtk2:146:in `block in scanDisc'

Works if I comment metadataProvider in config file.

bleskodev commented 7 years ago

Thanks for reporting the bug. I have pushed the fix. Can you confirm it? Thanks.

Safari77 commented 7 years ago

I can't test with that CD right now, but a different CD caused crash in ...

DEBUG: CGI query: http://musicbrainz.org/ws/2/discid/eKtlv8b3bCnLg7IhoToTVgaVidY-?toc=1+15+199275+150+13374+24857+31624+43801+48274+57281+79016+93134+101431+123327+144003+161936+176937+188741&inc=artists+recordings+artist-credits+release-groups
DEBUG: MusicBrainz status after the disc query: ok
DEBUG: cd-discid /dev/disk/by-id/ata-ATAPI_iHAS124_F_3524728_2C7635515149
/wrk/safari/cvs/rubyripper-fork/lib/rubyripper/metadata/musicbrainz/musicbrainzReleaseParser.rb:137:in `analyzeResult': undefined method `[]' for nil:NilClass (NoMethodError)
    from /wrk/safari/cvs/rubyripper-fork/lib/rubyripper/metadata/musicbrainz/musicbrainzReleaseParser.rb:44:in `parse'
    from /wrk/safari/cvs/rubyripper-fork/lib/rubyripper/metadata/musicbrainz.rb:45:in `get'
    from /wrk/safari/cvs/rubyripper-fork/lib/rubyripper/metadata/main.rb:63:in `musicbrainz'
    from /wrk/safari/cvs/rubyripper-fork/lib/rubyripper/metadata/main.rb:54:in `startup'
    from /wrk/safari/cvs/rubyripper-fork/lib/rubyripper/metadata/main.rb:36:in `block in get'
    from /wrk/safari/cvs/rubyripper-fork/lib/rubyripper/metadata/main.rb:35:in `each'
    from /wrk/safari/cvs/rubyripper-fork/lib/rubyripper/metadata/main.rb:35:in `get'
    from /wrk/safari/cvs/rubyripper-fork/lib/rubyripper/disc/disc.rb:106:in `setMetadata'
    from /wrk/safari/cvs/rubyripper-fork/lib/rubyripper/disc/disc.rb:40:in `scan'
    from /wrk/safari/cvs/rubyripper-fork/lib/rubyripper/gtk2/gtkDisc.rb:44:in `refresh'
    from /wrk/safari/cvs/rubyripper-fork/lib/rubyripper/gtk2/gtkDisc.rb:37:in `start'
    from ./rubyripper_gtk2:146:in `block in scanDisc'
bleskodev commented 7 years ago

Ah, ah, ah, sorry for this, I have pushed a commit which should fix the second problem and improve resilience to bad/incomplete musicbrainz data received from the server.

Safari77 commented 7 years ago

Works OK now, thanks.

bleskodev commented 7 years ago

Cool. I'm closing the issue then.