bleskodev / rubyripper

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

Exception thrown when fetching freedb info #496

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
1) Please describe the steps to reproduce the situation:
a. run rubyripper_cli.rb version 0.6.1
b. when fetching freedb info you get:

    Exception thrown: undefined method `[]' for nil:NilClass
    Couldn't connect to freedb server. Network down?

3) What version of rubyripper are you using? On what operating system? The gtk2 
of commandline interface?
On Linux using commandline version 0.6.1, same thing happens with gtk2 version.

4) Is this not already fixed with the latest & greatest code? See for
instructions the Source tab above.
Get error trying to run version from git.

Original issue reported on code.google.com by jfe...@gmail.com on 9 Nov 2011 at 8:28

GoogleCodeExporter commented 8 years ago
Please give the full stacktrace you see.

Original comment by boukewou...@gmail.com on 9 Nov 2011 at 9:51

GoogleCodeExporter commented 8 years ago
Is there any instructions on providing a stacktrace?

Original comment by jfe...@gmail.com on 9 Nov 2011 at 11:23

GoogleCodeExporter commented 8 years ago
Same issue here with the rubyripper HEAD and Ruby 1.9.3 - this is the 
stacktrace:

/home/peplin/Dropbox/bin/rubyripper/lib/rubyripper/metadata/freedb/getFreedbReco
rd.rb:68:in `analyzeQueryResult': undefined method `[]' for nil:NilClass 
(NoMethodError)
    from /home/peplin/Dropbox/bin/rubyripper/lib/rubyripper/metadata/freedb/getFreedbRecord.rb:37:in `queryDisc'
    from /home/peplin/Dropbox/bin/rubyripper/lib/rubyripper/metadata/freedb.rb:75:in `isRemoteFileFound?'
    from /home/peplin/Dropbox/bin/rubyripper/lib/rubyripper/metadata/freedb.rb:45:in `get'
    from /home/peplin/Dropbox/bin/rubyripper/lib/rubyripper/disc/disc.rb:83:in `setMetadata'
    from /home/peplin/Dropbox/bin/rubyripper/lib/rubyripper/disc/disc.rb:38:in `scan'
    from /home/peplin/Dropbox/bin/rubyripper/lib/rubyripper/cli/cliDisc.rb:64:in `refreshDisc'
    from /home/peplin/Dropbox/bin/rubyripper/lib/rubyripper/cli/cliDisc.rb:39:in `show'
    from bin/rubyripper_cli:90:in `prepare'
    from bin/rubyripper_cli:57:in `start'
    from bin/rubyripper_cli:184:in `<main>'

With Ruby 1.8.7, the error is slightly different:

/home/peplin/Dropbox/bin/rubyripper/lib/rubyripper/metadata/freedb/freedbRecordP
arser.rb:56:in `recordIsValid?': undefined method `valid_encoding?' for 
#<String:0x7f780923a6d0> (NoMethodError)
    from /home/peplin/Dropbox/bin/rubyripper/lib/rubyripper/metadata/freedb/freedbRecordParser.rb:33:in `parse'
    from /home/peplin/Dropbox/bin/rubyripper/lib/rubyripper/metadata/freedb.rb:71:in `handleLocal'
    from /home/peplin/Dropbox/bin/rubyripper/lib/rubyripper/metadata/freedb.rb:44:in `get'
    from /home/peplin/Dropbox/bin/rubyripper/lib/rubyripper/metadata/freedb.rb:83:in `handleRemote'
    from /home/peplin/Dropbox/bin/rubyripper/lib/rubyripper/metadata/freedb.rb:45:in `get'
    from /home/peplin/Dropbox/bin/rubyripper/lib/rubyripper/disc/disc.rb:83:in `setMetadata'
    from /home/peplin/Dropbox/bin/rubyripper/lib/rubyripper/disc/disc.rb:38:in `scan'
    from /home/peplin/Dropbox/bin/rubyripper/lib/rubyripper/cli/cliDisc.rb:64:in `refreshDisc'
    from /home/peplin/Dropbox/bin/rubyripper/lib/rubyripper/cli/cliDisc.rb:39:in `show'
    from bin/rubyripper_cli:90:in `prepare'
    from bin/rubyripper_cli:57:in `start'
    from bin/rubyripper_cli:184

Original comment by chris.pe...@gmail.com on 10 Nov 2011 at 3:19

GoogleCodeExporter commented 8 years ago
I don't know if I did this right, as I have never used and/or debugged a ruby 
program before.  I ran ruby -rdebug and hit c until I got this:

Fetching freedb info...
/usr/lib/ruby/1.9.1/net/protocol.rb:141: `' (NilClass)
    from /usr/lib/ruby/1.9.1/net/http.rb:2551:in `read_new'
    from /usr/lib/ruby/1.9.1/net/http.rb:1319:in `block in transport_request'
    from /usr/lib/ruby/1.9.1/net/http.rb:1316:in `catch'
    from /usr/lib/ruby/1.9.1/net/http.rb:1316:in `transport_request'
    from /usr/lib/ruby/1.9.1/net/http.rb:1293:in `request'
    from /usr/lib/ruby/1.9.1/net/http.rb:1286:in `block in request'
    from /usr/lib/ruby/1.9.1/net/http.rb:745:in `start'
    from /usr/lib/ruby/1.9.1/net/http.rb:1284:in `request'
    from /usr/lib/ruby/1.9.1/net/http.rb:1026:in `get'
    from /home/null/gnome/rubyripper-0.6.1/rr_lib.rb:1181:in `handshake'
    from /home/null/gnome/rubyripper-0.6.1/rr_lib.rb:1141:in `searchMetadata'
    from /home/null/gnome/rubyripper-0.6.1/rr_lib.rb:1113:in `freedb'
    from rubyripper_cli.rb:257:in `handleFreedb'
    from rubyripper_cli.rb:244:in `get_cd_info'
    from rubyripper_cli.rb:47:in `initialize'
    from rubyripper_cli.rb:486:in `new'
    from rubyripper_cli.rb:486:in `<main>'
/usr/lib/ruby/1.9.1/net/protocol.rb:141:        @rbuf << 
@io.read_nonblock(BUFSIZE)
(rdb:1) c
/home/null/gnome/rubyripper-0.6.1/rr_lib.rb:1190: `' (NilClass)
    from /home/null/gnome/rubyripper-0.6.1/rr_lib.rb:1182:in `handshake'
    from /home/null/gnome/rubyripper-0.6.1/rr_lib.rb:1141:in `searchMetadata'
    from /home/null/gnome/rubyripper-0.6.1/rr_lib.rb:1113:in `freedb'
    from rubyripper_cli.rb:257:in `handleFreedb'
    from rubyripper_cli.rb:244:in `get_cd_info'
    from rubyripper_cli.rb:47:in `initialize'
    from rubyripper_cli.rb:486:in `new'
    from rubyripper_cli.rb:486:in `<main>'
/home/null/gnome/rubyripper-0.6.1/rr_lib.rb:1190:       if @answer[0..2] == '200'  
#There was only one hit found

Original comment by jfe...@gmail.com on 11 Nov 2011 at 5:05

GoogleCodeExporter commented 8 years ago
This is due to an update in the Ruby Net::HTTP module. I've updated the master 
and the stable branch in git.

Original comment by boukewou...@gmail.com on 13 Nov 2011 at 4:42

GoogleCodeExporter commented 8 years ago
When I run git stable I now get this error:

cddb_query return code = 500. Return code not supported.

Original comment by jfe...@gmail.com on 14 Nov 2011 at 4:27

GoogleCodeExporter commented 8 years ago
I've added two debug statements. Please try again, when started from the 
terminal, and set the debug option on (other settings). Notice, that I cannot 
reproduce this behaviour. A 500 error should only occur in case of invalid 
queries.

Original comment by boukewou...@gmail.com on 14 Nov 2011 at 8:14

GoogleCodeExporter commented 8 years ago
I ran ruby -d and got:

Fetching freedb info...
cddb query 1 = 
/~cddb/cddb.cgi?cmd=cddb+query+960c670a+10+150+18500+42065+67350+88987+112212+13
4380+161697+186530+210862+3177&hello=++rubyripper+0.6.1&proto=6
Exception `Errno::EAGAIN' at /usr/lib/ruby/1.9.1/net/protocol.rb:141 - Resource 
temporarily unavailable - read would block
cddb_query return code = 500. Return code not supported.

I'm using ruby 1.9.3-p0 if that helps.

Original comment by jfe...@gmail.com on 14 Nov 2011 at 8:31

GoogleCodeExporter commented 8 years ago
The solution is simple: don't leave the username + hostname blank in your 
configuration. It goes wrong here: &hello=++rubyripper+0.6.1.

This should be something like &hello=anonymous+my_secret.com+rubyripper+0.6.1

Original comment by boukewou...@gmail.com on 14 Nov 2011 at 8:38

GoogleCodeExporter commented 8 years ago
Ah, sorry I must have deleted it.

Original comment by jfe...@gmail.com on 14 Nov 2011 at 8:44

GoogleCodeExporter commented 8 years ago
I've 'fixed' this in the master branch:
http://code.google.com/p/rubyripper/source/detail?r=5fafc9df753847fd6001b2a52d5e
1df6d1871f65

Original comment by boukewou...@gmail.com on 14 Nov 2011 at 8:49

GoogleCodeExporter commented 8 years ago
filling in user and host does NOT help

[carnager@freebox ~]$ egrep -i 'freedb|username|host' 
.config/rubyripper/settings 
site=http://freedb.freedb.org:80
username=anonymous
hostname=bla.blub.de
freedb=true

cddb_query return code = <!D. Return code not supported.

Original comment by katjab...@gmail.com on 3 Jan 2012 at 3:53

GoogleCodeExporter commented 8 years ago
Oh and master branch doesnt work either...

Original comment by katjab...@gmail.com on 3 Jan 2012 at 3:55

GoogleCodeExporter commented 8 years ago
I get the same nilClass error.  Rubyripper uses a proxy.  It SUCCESSFULLY 
receives the reply from squid (HTTP 200):
210 Found exact matches, list follows (until terminating `.')
data 12345 foo
rock 12345 bar
.

But STILL rubyripper says:
Couldn't connect to freedb server.  Network down?

I have ruby 1.9.3.286-18.fc17

Original comment by hvtaifwk...@gmail.com on 31 Oct 2012 at 11:26