pccasto / rubyripper

Automatically exported from code.google.com/p/rubyripper
0 stars 0 forks source link

freeze on checking cd-rom #210

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
rubyripper just freezes on checking cd-rom.. it's a gui version, cli
version just dumps this:

/usr/lib/ruby/site_ruby/1.8/rr_lib.rb:457:in `+': nil can't be coerced into
Fixnum (TypeError)
        from /usr/lib/ruby/site_ruby/1.8/rr_lib.rb:457:in `analyzeTOC'
        from /usr/lib/ruby/site_ruby/1.8/rr_lib.rb:457:in `each'
        from /usr/lib/ruby/site_ruby/1.8/rr_lib.rb:457:in `analyzeTOC'
        from /usr/lib/ruby/site_ruby/1.8/rr_lib.rb:325:in `initialize'
        from /usr/bin/rrip_cli:260:in `new'
        from /usr/bin/rrip_cli:260:in `get_cd_info'
        from /usr/bin/rrip_cli:48:in `initialize'
        from /usr/bin/rrip_cli:403:in `new'
        from /usr/bin/rrip_cli:403

i have no ruby-gettext installed also

version 0.5.1 + quote-fix, os is Linux. the latest ruby, cdparanoia,
ruby-gtk2 (+depends) versions.

Original issue reported on code.google.com by enql...@vaygr.net on 12 Jul 2008 at 8:48

GoogleCodeExporter commented 8 years ago
A few questions:
1) Is /dev/cdrom corresponding to your default drive?
2) Does the problem occur on one disc only?
3) what version of cdparanoia are you using?

Original comment by rubyripp...@gmail.com on 12 Jul 2008 at 8:54

GoogleCodeExporter commented 8 years ago
1) no, it's /dev/sr0, and that message is about checking this device..

2) no

3) III-alpha9.8

Original comment by enql...@vaygr.net on 13 Jul 2008 at 5:25

GoogleCodeExporter commented 8 years ago
apropos: everything was OK with 0.5.0 (well, i had ruby-gettext installed also)

Original comment by enql...@vaygr.net on 13 Jul 2008 at 5:26

GoogleCodeExporter commented 8 years ago
The cli version was in pretty bad shape. Why didn't anybody fill a bug report 
for it?
I'm fixing the cli at the moment. I'm still a bit dazzled why you're having 
problems
with the gtk interface though.

Can you attach a textfile with the output of: "cdparanoia -d /dev/sr0 -vQ"

Original comment by rubyripp...@gmail.com on 15 Jul 2008 at 8:23

GoogleCodeExporter commented 8 years ago
ah, sorry.. seems it was my fault.. i forgot about fixing the permissions of
/dev/sg1, so the problem was only with cli version (afaik you already fixed 
that), so
it's time for 0.5.2? :)

Original comment by enql...@vaygr.net on 15 Jul 2008 at 11:08

GoogleCodeExporter commented 8 years ago
although, it would be a good feature, if the dialog box's displayed instead of 
just
freezing the main window, if cd/dvd device has bad permissions

Original comment by enql...@vaygr.net on 15 Jul 2008 at 11:26

GoogleCodeExporter commented 8 years ago
I'll try to fix this before a bugfix release will come (soon). Please give it 
some
spins to test if other problems occur.

Original comment by rubyripp...@gmail.com on 16 Jul 2008 at 5:58

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
well, i tried everything else (after applying your fixes from svn), while 
playing
with different options for both gui and cli versions during the rip (5 cds, 
lol),
seems everything's ok. But just a small tip: i'd recommend installing rr_lib.rb 
with
mode 644, not 755.

Original comment by enql...@vaygr.net on 16 Jul 2008 at 9:29

GoogleCodeExporter commented 8 years ago
Done. Can you please verify this fix for the permissions (reading permission 
for the
cdrom device) work?

Original comment by rubyripp...@gmail.com on 16 Jul 2008 at 5:57

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
strange.. now it just freezes with that message "checking.."

Original comment by enql...@vaygr.net on 16 Jul 2008 at 6:24

GoogleCodeExporter commented 8 years ago
You're sure you've run an `svn update`? Should be at revision 251.

Original comment by rubyripp...@gmail.com on 16 Jul 2008 at 6:31

GoogleCodeExporter commented 8 years ago
yes, i was shure, but the problem was the other:
while running `cdparanoia -d /dev/sr0 -vQ' it shows this:
--
cdparanoia III release 9.8 (March 23, 2001)
(C) 2001 Monty <monty@xiph.org> and Xiphophorus

Report bugs to paranoia@xiph.org
http://www.xiph.org/paranoia/

Checking /dev/sr0 for cdrom...
        Testing /dev/sr0 for cooked ioctl() interface
                /dev/sr0 is not a cooked ioctl CDROM.
        Testing /dev/sr0 for SCSI interface
                generic device: /dev/sg1
                ioctl device: /dev/sr0
--

the actual cdrom device is /dev/cdrom which links to /dev/sr0 (as i said it was 
set
directly in the config), but! rrip needs to check _generic_ (/dev/sg1) device 
for
_write_ permissions (not read) to be able to scan the disk and get the tracks,
otherwise it just doesn't work

Original comment by enql...@vaygr.net on 16 Jul 2008 at 6:48

GoogleCodeExporter commented 8 years ago
I've added a check for writeable permission. Does this fix it or should I really
check the link?

Original comment by rubyripp...@gmail.com on 16 Jul 2008 at 7:06

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
No, you didn't get the point :) /dev/sg1 is not a link, but a generic device, 
so the
thing you just committed is useless at all. You need to write a method (or just 
do it
directly in existent) which would detect generic device name and its 
permissions. In
my situation the real device is /dev/sr0, generic device is /dev/sg1, and the 
last
one must be read/write-able :) something like that :)

Original comment by enql...@vaygr.net on 16 Jul 2008 at 7:12

GoogleCodeExporter commented 8 years ago
Thanks for the explanation. Can you check if r253 does solve the problem then?

Original comment by rubyripp...@gmail.com on 16 Jul 2008 at 7:52

GoogleCodeExporter commented 8 years ago
oh, seems you didn't get the point again :) /dev/sr0 and /dev/sg1 are BOTH 
_DEVICES_
(the symlink is /dev/cdrom, but we aren't talking about it), but /dev/sg1 is a
generic one, so i repeat: you need to write a method which would parse that 
message
and detect GENERIC device, then check its permissions.

Original comment by enql...@vaygr.net on 16 Jul 2008 at 7:58

GoogleCodeExporter commented 8 years ago
apropos: I suppose it only matters for sata cdrom devices, like i have @ my 
lappy:
--
Checking /dev/sr0 for cdrom...
        Testing /dev/sr0 for cooked ioctl() interface
                /dev/sr0 is not a cooked ioctl CDROM.
        Testing /dev/sr0 for SCSI interface
                generic device: /dev/sg1
                ioctl device: /dev/sr0
--
"/dev/sr0 is not a cooked ioctl CDROM." <- probably you don't receive this 
message if
you have IDE-connected one

but these are both devices:
--
                generic device: /dev/sg1
                ioctl device: /dev/sr0
--
the real one is /dev/sr0
and the real two (but generic) is /dev/sg1, so we need to check ITS permissions

Original comment by enql...@vaygr.net on 16 Jul 2008 at 8:04

GoogleCodeExporter commented 8 years ago
aren't these always mapped the same then? Seems to me like a bug of the OS 
you're
using. In Arch Linux this is:

bash-3.2$ ls -l /dev/sr0
brw-rw---- 1 root optical 11, 0 jul 16 19:23 /dev/sr0
bash-3.2$ ls -l /dev/sg0
crw-rw---- 1 root optical 21, 0 jul 16 19:23 /dev/sg0

So if you're not in the optical group and ain't running it as root, you will 
have
trouble with the permissions. Can you post your output of the above?

Original comment by rubyripp...@gmail.com on 16 Jul 2008 at 8:08

GoogleCodeExporter commented 8 years ago
wait, wait. i'm talking about /dev/sg1, not /dev/sg0! they aren't the same, and
/dev/sr0 and /dev/sg0 aren't the same anyway too!

stealth@carrier:~ $ ls -l /dev/sr0
brw-rw---- 1 root burning 11, 0 2008-07-16 21:04 /dev/sr0
stealth@carrier:~ $ ls -l /dev/sg0
crw-rw---- 1 root disk 21, 0 2008-07-16 21:04 /dev/sg0
stealth@carrier:~ $ ls -l /dev/sg1
crw-rw---- 1 root disk 21, 1 2008-07-16 21:04 /dev/sg1

p.s. stealth in both groups disk and burning

Original comment by enql...@vaygr.net on 16 Jul 2008 at 8:21

GoogleCodeExporter commented 8 years ago
So how can I possibly match the /dev/sg# char device to the cdrom block device? 
Based
on the cdparanoia output?

Original comment by rubyripp...@gmail.com on 16 Jul 2008 at 8:24

GoogleCodeExporter commented 8 years ago
parse that message and detect it by line containing "generic device:"?

Original comment by enql...@vaygr.net on 16 Jul 2008 at 8:48

GoogleCodeExporter commented 8 years ago
please check out r254. It tries to do as you wish. In the console the detected
generic drive will be shown as DEBUG info.

Original comment by rubyripp...@gmail.com on 16 Jul 2008 at 9:01

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
hmm.. now it just freezes with checking message, and cli version fails with 
this message:
--
stealth@carrier:~ $ rrip_cli 
ruby-gettext is not found. Translations are disabled!
Use config file ~/.rubyripper/settings
/usr/lib/ruby/site_ruby/1.8/rr_lib.rb:404:in `=~': type mismatch: String given
(TypeError)
        from /usr/lib/ruby/site_ruby/1.8/rr_lib.rb:404:in `genericDevice'
        from /usr/lib/ruby/site_ruby/1.8/rr_lib.rb:403:in `each'
        from /usr/lib/ruby/site_ruby/1.8/rr_lib.rb:403:in `genericDevice'
        from /usr/lib/ruby/site_ruby/1.8/rr_lib.rb:355:in `audioDisc'
        from /usr/lib/ruby/site_ruby/1.8/rr_lib.rb:323:in `initialize'
        from /usr/bin/rrip_cli:260:in `new'
        from /usr/bin/rrip_cli:260:in `get_cd_info'
        from /usr/bin/rrip_cli:48:in `initialize'
        from /usr/bin/rrip_cli:402:in `new'
        from /usr/bin/rrip_cli:402

Original comment by enql...@vaygr.net on 16 Jul 2008 at 9:11

GoogleCodeExporter commented 8 years ago
There is a chance r255 will fix it.

Original comment by rubyripp...@gmail.com on 16 Jul 2008 at 9:16

GoogleCodeExporter commented 8 years ago
update: you need r256.

Original comment by rubyripp...@gmail.com on 16 Jul 2008 at 9:20

GoogleCodeExporter commented 8 years ago
stealth@carrier:~ $ rrip_gui 
ruby-gettext is not found. Translations are disabled!
DEBUG info: generic device detected: 

hmm..

Original comment by enql...@vaygr.net on 16 Jul 2008 at 9:28

GoogleCodeExporter commented 8 years ago
cli fails also:
--
stealth@carrier:~ $ rrip_cli
ruby-gettext is not found. Translations are disabled!
Use config file ~/.rubyripper/settings
DEBUG info: generic device detected: 
/usr/lib/ruby/site_ruby/1.8/rr_lib.rb:415:in `chardev?': can't convert nil into
String (TypeError)
        from /usr/lib/ruby/site_ruby/1.8/rr_lib.rb:415:in `genericDevice'
        from /usr/lib/ruby/site_ruby/1.8/rr_lib.rb:355:in `audioDisc'
        from /usr/lib/ruby/site_ruby/1.8/rr_lib.rb:323:in `initialize'
        from /usr/bin/rrip_cli:260:in `new'
        from /usr/bin/rrip_cli:260:in `get_cd_info'
        from /usr/bin/rrip_cli:48:in `initialize'
        from /usr/bin/rrip_cli:402:in `new'
        from /usr/bin/rrip_cli:402

Original comment by enql...@vaygr.net on 16 Jul 2008 at 9:28

GoogleCodeExporter commented 8 years ago
this is for r256?

Original comment by rubyripp...@gmail.com on 16 Jul 2008 at 9:31

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
yep, i've checked twice

Original comment by enql...@vaygr.net on 16 Jul 2008 at 9:38

GoogleCodeExporter commented 8 years ago
seems it doesn't detect that device by given line

Original comment by enql...@vaygr.net on 16 Jul 2008 at 9:38

GoogleCodeExporter commented 8 years ago
let's try 257..

Original comment by enql...@vaygr.net on 17 Jul 2008 at 4:24

GoogleCodeExporter commented 8 years ago
Can you tell me what latest revision shows you in the terminal?

Original comment by rubyripp...@gmail.com on 17 Jul 2008 at 4:24

GoogleCodeExporter commented 8 years ago
damn, you're fast :) we've got to get this one down before tonight. Or I will 
sleep
restless for another night...

Original comment by rubyripp...@gmail.com on 17 Jul 2008 at 4:26

GoogleCodeExporter commented 8 years ago
lol, no.. it still shows nothing, empty "DEBUG info: generic device detected: "

Original comment by enql...@vaygr.net on 17 Jul 2008 at 4:28

GoogleCodeExporter commented 8 years ago
Nevertheless, no result is also a result. I think I've found the error.

Original comment by rubyripp...@gmail.com on 17 Jul 2008 at 4:43

GoogleCodeExporter commented 8 years ago
nice! it detects the device now:
--
stealth@carrier:~ $ rrip_gui 
ruby-gettext is not found. Translations are disabled!
DEBUG info: generic device detected: /dev/sg1
You don't have read and write permission for device /dev/sg1 on your system!
These permissions are necessary for cdparanoia to scan your drive.
--

but the permissions are right :)

and yes, it's in console, it would be nice to show this in gui with another 
window or
just instead of saying in main window "No disc found..."

Original comment by enql...@vaygr.net on 17 Jul 2008 at 4:50

GoogleCodeExporter commented 8 years ago
Does r259 anything you wish? Can I set the status to finished? :D

Original comment by rubyripp...@gmail.com on 17 Jul 2008 at 6:08

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
whoa!!! finally it works!!! awesome solution :D thanks a lot! the answer is 
"yes"
though :P

Original comment by enql...@vaygr.net on 17 Jul 2008 at 6:12

GoogleCodeExporter commented 8 years ago
Hooray! I say some coffee, well deserved. Thanks m8 for chasing this one down!

Original comment by rubyripp...@gmail.com on 17 Jul 2008 at 6:15