Opened 10 years ago

Closed 5 years ago

#4103 closed bug (fixed)

cddb not working

Reported by: scottmc Owned by: jessicah
Priority: normal Milestone: R1
Component: File Systems/cdda Version: R1/alpha1
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: yes Platform: All

Description

This was on hrev31621, here's a syslog snip from a removed/insertion of an audio cd:

KERN: Media removed from /dev/disk/atapi/1/master/raw
KERN: Media changed from /dev/disk/atapi/1/master/raw
KERN: KDiskDeviceManager::_ScanPartition(/dev/disk/atapi/1/master/raw)
KERN: intel: ep_std_ops(0x1)
KERN:   trying: partitioning_systems/intel/extended/v1
KERN:   returned: -1
KERN: intel: ep_std_ops(0x2)
KERN:   trying: partitioning_systems/intel/map/v1
KERN: intel: pm_identify_partition(8, 1: 0, 549216256, 2048)
KERN: check_sense: Illegal request
KERN: cd_read(): request.Wait() returned: General system error
KERN:   returned: -1
KERN:   trying: file_systems/bfs/v1
KERN: check_sense: Illegal request
KERN: cd_read(): request.Wait() returned: General system error
KERN:   returned: -1
KERN:   trying: file_systems/devfs/v1
KERN:   returned: -1
KERN:   trying: file_systems/rootfs/v1
KERN:   returned: -1
KERN:   trying: partitioning_systems/session/v1
KERN: raw_command: 
KERN:   returned: 0.699
KERN:   trying: file_systems/attribute_overlay/v1
KERN:   returned: -1
KERN:   trying: file_systems/cdda/v1
KERN: raw_command: 
KERN: 01. 00:02.00 (length 04:28.30)
KERN: 02. 04:30.30 (length 03:05.47)
KERN: 03. 07:36.02 (length 03:29.15)
KERN: 04. 11:05.17 (length 03:44.08)
KERN: 05. 14:49.25 (length 04:35.12)
KERN: 06. 19:24.37 (length 03:34.48)
KERN: 07. 22:59.10 (length 06:38.35)
KERN: 08. 29:37.45 (length 03:22.05)
KERN: 09. 32:59.50 (length 04:33.05)
KERN: 10. 37:32.55 (length 04:23.42)
KERN: 11. 41:56.22 (length 04:14.68)
KERN: 12. 46:11.15 (length 04:09.15)
KERN: 13. 50:20.30 (length 03:46.17)
KERN: 14. 54:06.47 (length 05:31.00)
KERN:   returned: 0.8
KERN:   trying: file_systems/ext2/v1
KERN: check_sense: Illegal request
KERN: cd_read(): request.Wait() returned: General system error
KERN:   returned: -2147483648
KERN:   trying: file_systems/fat/v1
KERN: check_sense: Illegal request
KERN: cd_read(): request.Wait() returned: General system error
KERN:   returned: -1
KERN:   trying: file_systems/iso9660/v1
KERN: identify(8, 0x81079360)
KERN: check_sense: Illegal request
KERN: cd_read(): request.Wait() returned: General system error
KERN:   returned: -1
KERN:   trying: file_systems/nfs/v1
KERN:   returned: -1
KERN:   trying: file_systems/userlandfs/v1
KERN:   returned: -1
KERN:   trying: file_systems/write_overlay/v1
KERN:   returned: -1
KERN:   scanning with: file_systems/cdda/v1
KERN: raw_command: 
KERN: 01. 00:02.00 (length 04:28.30)
KERN: 02. 04:30.30 (length 03:05.47)
KERN: 03. 07:36.02 (length 03:29.15)
KERN: 04. 11:05.17 (length 03:44.08)
KERN: 05. 14:49.25 (length 04:35.12)
KERN: 06. 19:24.37 (length 03:34.48)
KERN: 07. 22:59.10 (length 06:38.35)
KERN: 08. 29:37.45 (length 03:22.05)
KERN: 09. 32:59.50 (length 04:33.05)
KERN: 10. 37:32.55 (length 04:23.42)
KERN: 11. 41:56.22 (length 04:14.68)
KERN: 12. 46:11.15 (length 04:09.15)
KERN: 13. 50:20.30 (length 03:46.17)
KERN: 14. 54:06.47 (length 05:31.00)

Attachments (5)

screenshot.png (132.6 KB ) - added by scottmc 10 years ago.
screenshot showing the mounted CD, it's contents and the terminal output
screenshot1.png (113.6 KB ) - added by scottmc 10 years ago.
screenshot2.png (117.1 KB ) - added by scottmc 10 years ago.
statusCode.png (163.1 KB ) - added by scottmc 10 years ago.
0001-cddb_daemon-Various-fixes.patch (3.1 KB ) - added by waddlesplash 5 years ago.
Fixes the problem for me.

Download all attachments as: .zip

Change History (52)

comment:1 by scottmc, 10 years ago

Component: - GeneralFile Systems/cdda
Owner: changed from axeld to bga

comment:2 by bga, 10 years ago

Wat do you mean by "not working"? The syslog you posted only shows cdda-fs related stuff (which seems to be working) and not cddb_daemon stuff. Can you be more specific on what is happening and what you expected to happen?

comment:3 by scottmc, 10 years ago

I expected the Audio CD label to change to the Album name, and the track xx.wav pseudo files to be renamed to the song names. This worked ok as recently as a week or so ago, but now that I'd like to try using it, it's not working. Wasn't sure if I did something to my build environment so I confirmed that someone else on IRC saw they same thing and they did. The cddb daemon shows up in the teams list, is there a way to see what's it's doing?

comment:4 by bga, 10 years ago

Quit cddb_daemon through Process Controller. Start it manually from the terminal (/boot/system/servers/cddb_daemon). Insert and mount audio CD. Paste any output in the terminal here.

comment:5 by scottmc, 10 years ago

Tried it a few times, inserting and mounting/unmounting, with each mount I got a new "Skipping device with id #, starting with 7 then 8 and then 9. Here's the output with 3 insert cycles, starting with "Skipping device with id 9".

~> /boot/system/servers/cddb_daemon   
CDDB Daemon for Haiku v1.0.0 started.
Checking currently mounted volumes ...
Skipping device with id 1.
Skipping device with id 2.
Skipping device with id 3.
Skipping device with id 9.
Checking complete. Listening for device mounts.
Skipping device with id 10.
Skipping device with id 11.
Skipping device with id 12.

comment:6 by bga, 10 years ago

Devices will be skipped in the following cases:

1 - CD filesystem is not cdda-fs. 2 - The CD:do_lookup attribute is false (this means that you manually changed some track names) or it can not be read. 3 - The CD:cddbid attribute can not be read. 4 - The CD:toc attribute can not be read.

Based on that, do the following:

1 - Make sure the cd is really an audio CD. Can you actually mount it and, say, copy audio tracks to the desktop? Please paste the output of mountvolume -l here. 2 - Paste the output of catattr CD:do_lookup /[AudioCDMountPoint] ([AudioCDmountPoint] should most likely be "Audio CD"). 3 - Same as 2 but for the CD:cddbid attribute. 4 - Same as 2 and 3 but for the CD:toc attribute.

Note that the most likely thing that happened is that you manually tried to edit the Audio CD title or Track names before trying to use cddb_daemon to identify the CD.

comment:7 by scottmc, 10 years ago

I know the CD is getting mounted as I'm able to copy the psuedo wav files to the local harddrive and then encode them to flac, mp3, ogg etc, they're just not getting renamed.

~> mountvolume -l
Volume                           File System                   Size Mounted At (Device)
--------------------------------------------------------------------------------------------
<unnamed>                        Ext2 File System             55.9G /unnamed volume  (ata/1/master/0)
Haiku                            Be File System               46.6G /boot  (ata/1/master/1_0)
Haiku-Files                      Be File System               44.2G /Haiku-Files  (ata/1/master/1_1)
Audio CD                         CDDA File System            374.6M /Audio CD  (atapi/0/master/raw)
~> 

This seems to be where things aren't working as expected:

~> catattr CD:do_loopup "Audio CD"
catattr: file "Audio CD", attribute "CD:do_loopup": No such file or directory
~> catattr CD:cddbid "Audio CD"
catattr: file "Audio CD", attribute "CD:cddbid": No such file or directory
~> catattr CD:toc "Audio CD"
catattr: file "Audio CD", attribute "CD:toc": No such file or directory

I understand that CD Player does it's own cddb lookup, and that is working ok, gives the right info and all. So I assume that they network part must be ok.

by scottmc, 10 years ago

Attachment: screenshot.png added

screenshot showing the mounted CD, it's contents and the terminal output

comment:8 by VinDuv, 10 years ago

Use "/Audio CD" instead of just "Audio CD" ;-)

comment:9 by bga, 10 years ago

Yes, follow VinDuv's suggestion. :) You want to check the attributes if the Audio CD mount point so unless you are already at the root dir ("/"), you need to use /Audio\ CD.

comment:10 by bga, 10 years ago

BTW, a listattr /Audio\ CD would also help.

comment:11 by scottmc, 10 years ago

~> catattr /Audio\ CD

usage: catattr [--rawr] attr_name file1 [file2...]

~> catattr -r "CD:cddbid" /Audio\ CD e~> catattr "CD:cddbid" /Audio\ CD /Audio CD : uint32 : 1695153416 ~> catattr "CD:cddbid" /Audio\ CD /Audio CD : uint32 : 1695153416 ~> catattr "CD:do_lookup" /Audio\ CD /Audio CD : bool : 0 ~> catattr "CD:toc" /Audio\ CD /Audio CD : raw_data : 0x000000: 00 4a 01 08 00 10 01 00 00 00 02 20 00 10 02 00 '.J..............' 0x000010: 00 04 3b 21 00 10 03 00 00 08 28 0a 00 10 04 00 '..;!......(.....' 0x000020: 00 0e 20 21 00 10 05 00 00 16 23 21 00 10 06 00 '...!......#!....' 0x000030: 00 1b 0e 19 00 10 07 00 00 1f 3b 26 00 10 08 00 '..........;&....' 0x000040: 00 23 1f 0a 00 10 aa 00 00 2a 27 26 '.#.......*'& ' ~>

comment:12 by scottmc, 10 years ago

~> catattr /Audio\ CD
usage: catattr [--raw|-r] attr_name file1 [file2...]
~> catattr -r "CD:cddbid" /Audio\ CD
e~> catattr "CD:cddbid" /Audio\ CD
/Audio CD : uint32 : 1695153416
~> catattr "CD:cddbid" /Audio\ CD
/Audio CD : uint32 : 1695153416
~> catattr "CD:do_lookup" /Audio\ CD
/Audio CD : bool : 0
~> catattr "CD:toc" /Audio\ CD
/Audio CD : raw_data : 
0x000000:  00 4a 01 08 00 10 01 00 00 00 02 20 00 10 02 00   '.J..............'
0x000010:  00 04 3b 21 00 10 03 00 00 08 28 0a 00 10 04 00   '..;!......(.....'
0x000020:  00 0e 20 21 00 10 05 00 00 16 23 21 00 10 06 00   '...!......#!....'
0x000030:  00 1b 0e 19 00 10 07 00 00 1f 3b 26 00 10 08 00   '..........;&....'
0x000040:  00 23 1f 0a 00 10 aa 00 00 2a 27 26               '.#.......*'&    '
~> 

comment:13 by bga, 10 years ago

There you go. The relevant result is this:

catattr "CD:do_lookup" /Audio\ CD
/Audio CD : bool : 0

This indicates that CD:do_lookup is set to 0. This means that you either manually edited some track names or the CD title at some point or that the CD has CD-Text (which seems unlikelly as it was not used). Proving this is easy:

1 - Unmount CD.
2 - Open Terminal and "cd /boot/home/config/settings/cdda".
3 - "rm 6509fd08" (this file name is 1695153416 converted to hexadecimal).
4 - Mount CD. cddb_daemon, if it is running, should look your CD up. To be sure you may, before mounting the CD quitting cddb_daemon with ProcessController and then starting it manually in the terminal to check its output.

Let me know if it worked.

comment:14 by jonas.kirilla, 10 years ago

Try hrev32194.

comment:15 by scottmc, 10 years ago

Still not working... this with hrev32198.

/dev> cd ..
/> ls
Audio CD   Audio CD2  Audio CD4  Haiku  boot  etc     tmp
Audio CD1  Audio CD3  Audio CD5  bin    dev   system  var
/> catattr "CD:do_lookup" /Audio\ CD5
/Audio CD5 : bool : 0
/> catattr "CD:toc" /Audio\ CD5
/Audio CD5 : raw_data : 
0x000000:  00 6a 01 0c 00 10 01 00 00 00 02 21 00 10 02 00   '.j.........!....'
0x000010:  00 05 04 00 00 10 03 00 00 09 12 46 00 10 04 00   '...........F....'
0x000020:  00 0c 3a 00 00 10 05 00 00 10 01 3c 00 10 06 00   '..:........<....'
0x000030:  00 14 12 3a 00 10 07 00 00 17 0f 3c 00 10 08 00   '...:.......<....'
0x000040:  00 19 26 3f 00 10 09 00 00 1d 16 30 00 10 0a 00   '..&?.......0....'
0x000050:  00 1f 3b 28 00 10 0b 00 00 23 20 03 00 10 0c 00   '..;(.....#......'
0x000060:  00 26 30 1e 00 10 aa 00 00 3b 17 21               '.&0......;.!    '
/> catattr "CD:cddbid" /Audio\ CD5
/Audio CD5 : uint32 : 2869815564
/> rm /boot/home/config/settings/cdda/2869815564
rm: cannot remove `/boot/home/config/settings/cdda/2869815564': No such file or directory
/> ls /boot/home/config/settings/cdda
1e116112  6409b909  b609b10c                     shared
30117a16  ab0de90c  dev_disk_atapi_1_master_raw
/> rm /boot/home/config/settings/cdda/1*        
/> rm /boot/home/config/settings/cdda/3*
/> rm /boot/home/config/settings/cdda/6*
/> rm /boot/home/config/settings/cdda/a*
/> rm /boot/home/config/settings/cdda/b*
/> ls /boot/home/config/settings/cdda
dev_disk_atapi_1_master_raw  shared
/> Skipping device with id 13.

/> ls /dev
audio      console  dvb       keyboard  net   ptmx    tty      zero
bluetooth  disk     graphics  midi      null  random  urandom
bus        dprintf  input     misc      pt    tt      video
/> ls /dev/disk
ata  atapi  floppy  usb  virtual
/> ls /dev/disk/ata
0
/> ls /            
Audio CD   Audio CD2  Audio CD4  Audio CD6  bin   dev  system  var
Audio CD1  Audio CD3  Audio CD5  Haiku      boot  etc  tmp
/> 

One thing to note is that every mount/unmount cycle created a new "/Audio CD#" I tried with several common Audio CDs and none worked.

comment:16 by jonas.kirilla, 10 years ago

A CD:cddbid value of 2869815564 corresponds to ~/config/settings/cdda/ab0de90c. (Decimal/hexadecimal: http://www.easycalculation.com/decimal-converter.php )

Try ejecting the CD, remove the file "ab0de90c", or better yet remove the folder ~/config/settings/cdda, restart the cddb_daemon from Terminal, insert the CD again and check the syslog and whatever cddb_daemon might say on stdout.

(A fresh install of Haiku would be without cdda entries, unless previous cdda entries get merged. This might depend on how one installs Haiku, now that Tracker merges folders, IIRC.)

There is tracing one can turn here http://haiku.it.su.se:8180/source/xref/src/add-ons/kernel/file_systems/cdda/kernel_interface.cpp#29 to have a little more printed to the syslog.

I can see two reasons why cddb_daemon would find the a negative CD:do_lookup attribute (placed there by the cdda fs as a hint to cddb_daemon): presence of cdtext on the CD, or that the CD is already known to the cdda fs. The rather empty track listing in the syslog you posted (up top) should not happen anymore unless there is valid cdtext data, which leaves the cddbid entries in the cdda folder. Unless I've missed something.

comment:17 by jonas.kirilla, 10 years ago

I'm preparing a patch for cddb.

comment:18 by jonas.kirilla, 10 years ago

If CDPlayer shows the right info then it could be a CDDB 211 error. Around the code part that says printf("Something bad happened"); Conflicting data, or some such, IIRC, CDPlayer takes the first CDDB results, whereas cddb_daemon fails instead.

I'm thinking about consolidating these two code bases, and have CDPlayer instead ask for CDDB data by messaging with cddb_daemon. I haven't looked deeply at both code bases, but I'm leaning towards using the one from CDPlayer. What do you think Bruno?

comment:19 by bga, 10 years ago

210 is the code for multiple results and cddb_server does handle that (by returning the first result). I have no idea what code 211 is.

I didn't look at the CDPlayer implementation either so I don't know if it is better or not. Feel free to evaluate it.

comment:20 by bga, 10 years ago

Ah, 211 is inexact match. I am not sure we really want to use that and I am also sure that this is not the problem Scott is seeing.

comment:21 by bga, 10 years ago

Scott, please, do this so we can resolve this problem:

1 - Make sure you have no audio CD mounted.
2 - Close cddb_daemon.
3 - rm -rf ~/config/settings/cdda (this will erase all cdda related files).
4 - Mount an audio CD.
5 - Start cddb_daemon from a Terminal window and paste any output here.

After all this, either the CD will be renamed or the cddb_daemon output will show why it was not.

in reply to:  21 comment:22 by scottmc, 10 years ago

Replying to bga:

Scott, please, do this so we can resolve this problem:

1 - Make sure you have no audio CD mounted.
2 - Close cddb_daemon.
3 - rm -rf ~/config/settings/cdda (this will erase all cdda related files).
4 - Mount an audio CD.
5 - Start cddb_daemon from a Terminal window and paste any output here.

After all this, either the CD will be renamed or the cddb_daemon output will show why it was not.

I will try this in the next day or two. Both of the laptops that I have had this issue on have AMD64 CPUs, could there be some Intel specific code that is tripping this up? Perhaps SSE3 or something along those lines? Just a thought.

comment:23 by bga, 10 years ago

no. There is no arch specific code in cddb_daemon. If there was, it would result in a crash, not a wrong behavior.

in reply to:  21 comment:24 by scottmc, 10 years ago

Replying to bga:

Scott, please, do this so we can resolve this problem:

1 - Make sure you have no audio CD mounted.
2 - Close cddb_daemon.
3 - rm -rf ~/config/settings/cdda (this will erase all cdda related files).
4 - Mount an audio CD.
5 - Start cddb_daemon from a Terminal window and paste any output here.

After all this, either the CD will be renamed or the cddb_daemon output will show why it was not.

Here's the output running the above steps. I tried 5 different CDs this time, of those one didn't give me the "Error when querying CD.", but even that one didn't complete the renaming of the volume and track names.

Welcome to the Haiku shell.

~> rm -rf ~/config/settings/cdda
~> cddb_daemon
sh: cddb_daemon: command not found
~> /boot/system/servers/cddb_daemon
CDDB Daemon for Haiku v1.0.0 started.
Checking currently mounted volumes ...
Skipping device with id 1.
Skipping device with id 2.
Skipping device with id 3.
Looking up CD with CDDB Id 6509fd08.
Error when querying CD.
Checking complete. Listening for device mounts.
Looking up CD with CDDB Id 690a1c0a.
Error when querying CD.
Looking up CD with CDDB Id b609b10c.
* b609b10c : Nirvana - In Utero [MFSL UDCD 690] (rock)
Looking up CD with CDDB Id 950c910c.
Error when querying CD.
Looking up CD with CDDB Id ab0de90c.
Error when querying CD.

comment:25 by scottmc, 10 years ago

Continuing on with trying more CDs and I get this:

~> cddb_daemon
sh: cddb_daemon: command not found
~> /boot/system/servers/cddb_daemon
CDDB Daemon for Haiku v1.0.0 started.
Checking currently mounted volumes ...
Skipping device with id 1.
Skipping device with id 2.
Skipping device with id 3.
Looking up CD with CDDB Id 6509fd08.
Error when querying CD.
Checking complete. Listening for device mounts.
Looking up CD with CDDB Id 690a1c0a.
Error when querying CD.
Looking up CD with CDDB Id b609b10c.
* b609b10c : Nirvana - In Utero [MFSL UDCD 690] (rock)
Looking up CD with CDDB Id 950c910c.
Error when querying CD.
Looking up CD with CDDB Id ab0de90c.
Error when querying CD.
Skipping device with id 10.
Skipping device with id 11.
Looking up CD with CDDB Id ba0a5e0c.
Error when querying CD.
Looking up CD with CDDB Id 1e116112.
Error when querying CD.
Looking up CD with CDDB Id 30117a16.
Error when querying CD.
Looking up CD with CDDB Id 900cb30b.
* 900cb30b : The Black Crowes - Amorica. (Banned Cover) (rock)
Looking up CD with CDDB Id c50efc0e.
Error when querying CD.
Looking up CD with CDDB Id a20d920e.
Error when querying CD.
Skipping device with id 18.
Skipping device with id 19.
Skipping device with id 20.

Note that In Utero did work, and even renamed the volume and files, but when unmounting it and remounting it, it wouldn't come up again, same for the 2nd CD that worked, it only worked the one time. Second time for those it just said Skipping device with id XX.

comment:26 by bga, 10 years ago

Resolution: fixed
Status: newclosed

Try with hrev32423 and let me know how it goes. The error was probably that your CDs resulted in partial matches. I must warn you that handling of partial matches is oretty dumb right now.

It *IS* supposed to not request the CD again as it already got the data. That's why it said "skipping cd ..." When mounting the CD the names should be correct though. cddb_daemon only needs to fetch the CD info once. After that the data is stored by cdda-fs.

Closing this. Feel free to reopen it if needed.

comment:27 by scottmc, 10 years ago

Resolution: fixed
Status: closedreopened

Tried with hrev32432, still not working right. For nearly every CD I tried the CDPlayer code picked up the name correctly but cdda-fs didn't rename the volume and filenames.

by scottmc, 10 years ago

Attachment: screenshot1.png added

by scottmc, 10 years ago

Attachment: screenshot2.png added

comment:28 by scottmc, 10 years ago

Ticket #4246 may or may not be related to this one. It occurring while I was trying out various CDs on hrev32432.

comment:29 by scottmc, 10 years ago

I added a line to cddb_server.cpp to print out the statusCode, it appears to be the same as the cddbID, is that expected?

by scottmc, 10 years ago

Attachment: statusCode.png added

comment:30 by bga, 10 years ago

Scott, you are confusing cddb_daemon with CD player a bit. cddb_daemon saves information in cdda-fs, CD player dies not. So it is normal that even when CD Player shows the track names you still do not see the renamed files. Please, forget about this. The only relevent information you can take form CD player in what concerns cddb_daemon is that it managed to get the track names while cddb_daemon did not.

That said, I added even more debug in hrev32437. Please repeat the last test steps I mentioned but only include here the cases where cddb_daemon failed. There should be a lot more information dumped now now.

comment:31 by bga, 10 years ago

Also, statusCode is a BString. You need to use statusCode.String() when printing it. In any case, it does not matter as the status code is printed below but, somehow, it is empty. That's what I am trying to figure out why it is happening.

comment:32 by scottmc, 10 years ago

Here's the output from checking some CDs with hrev32443:

Welcome to the Haiku shell.

~> /boot/system/servers/cddb_daemon
CDDB Daemon for Haiku v1.0.0 started.
Checking currently mounted volumes ...
Skipping device with id 1.
Skipping device with id 2.
Skipping device with id 3.
Checking complete. Listening for device mounts.
Looking up CD with CDDB Id a60c9e0d.
----- CDDB query reply start -----

-----  CDDB query reply end  -----
StatusCode : xa60c9e0d Error : CDDB server status code is .
Error when querying CD.
Looking up CD with CDDB Id b50ee70e.
----- CDDB query reply start -----

-----  CDDB query reply end  -----
StatusCode :b50ee70e Error : CDDB server status code is .
Error when querying CD.
Looking up CD with CDDB Id d20df70e.
----- CDDB query reply start -----

-----  CDDB query reply end  -----
StatusCode : d20df70e Error : CDDB server status code is .
Error when querying CD.
Looking up CD with CDDB Id cb0e000f.
----- CDDB query reply start -----
HTTP/1.1 200 OK
Date: Sun, 16 Aug 2009 17:58:46 GMT
Server: Apache/2.0.54 (Debian GNU/Linux)
Expires: Sun Aug 16 19:58:46 2009
Connection: close
Content-Type: text/plain; charset=UTF-8

200 rock cb0e000f No Doubt / The Singles 1992-2003

-----  CDDB query reply end  -----
StatusCode :cb0e000f * cb0e000f : No Doubt - The Singles 1992-2003 (rock)
Looking up CD with CDDB Id b609b10c.
----- CDDB query reply start -----

-----  CDDB query reply end  -----
StatusCode : xb609b10c Error : CDDB server status code is .
Error when querying CD.
Looking up CD with CDDB Id 900cb30b.
----- CDDB query reply start -----

-----  CDDB query reply end  -----
StatusCode : 900cb30b Error : CDDB server status code is .
Error when querying CD.
Looking up CD with CDDB Id 750cde08.
----- CDDB query reply start -----

-----  CDDB query reply end  -----
StatusCode : xp750cde08 Error : CDDB server status code is .
Error when querying CD.

comment:33 by bga, 10 years ago

Well, this is weird. For several entries the CDDB server seems to simply be sending back an empty reply. Does syslog say anything interesting when one of these CDs fail? I simply can not reproduce this here. What network card are you using? Does the same CDs always fail or sometimes if you retry they work?

Also, not there is still some wrong debug output form you on the code. Remove it please as it confuses things.

comment:34 by bga, 10 years ago

Try hrev32446. Be sure you have all the changes as based on the output below you did not get all the changes I submitted. This time I am dumping the string sent to the CDDB server so I can test locally here.

comment:35 by scottmc, 10 years ago

I removed the code i had inserted locally and rebuilt with hrev32446. Output results:

Welcome to the Haiku shell.

~> /boot/system/servers/cddb_daemon
CDDB Daemon for Haiku v1.0.0 started.
Checking currently mounted volumes ...
Skipping device with id 1.
Skipping device with id 2.
Skipping device with id 3.
Looking up CD with CDDB Id 900cb30b.
GET /~cddb/cddb.cgi?cmd=cddb+query+900cb30b+11+182+23312+44830+62962+89732+108952+135107+151542+176992+201965+218557+3253&hello=baron+haikubox+cddb_daemon+1.0&proto=6 HTTP 1.0


----- CDDB query reply start -----

-----  CDDB query reply end  -----
Error : CDDB server status code is .
Error when querying CD.
Checking complete. Listening for device mounts.
Looking up CD with CDDB Id b609b10c.
GET /~cddb/cddb.cgi?cmd=cddb+query+b609b10c+12+150+16405+33482+54597+67332+86050+97457+106135+123742+140032+161870+169005+2483&hello=baron+haikubox+cddb_daemon+1.0&proto=6 HTTP 1.0


----- CDDB query reply start -----

-----  CDDB query reply end  -----
Error : CDDB server status code is .
Error when querying CD.
Looking up CD with CDDB Id cb0e000f.
GET /~cddb/cddb.cgi?cmd=cddb+query+cb0e000f+15+150+15596+32536+48043+66073+86419+104596+124415+147068+160915+178981+198984+218158+237864+253719+3586&hello=baron+haikubox+cddb_daemon+1.0&proto=6 HTTP 1.0


----- CDDB query reply start -----

-----  CDDB query reply end  -----
Error : CDDB server status code is .
Error when querying CD.
Looking up CD with CDDB Id d20df70e.
GET /~cddb/cddb.cgi?cmd=cddb+query+d20df70e+14+150+20280+34202+49892+66700+87337+103435+133320+148475+168955+188722+207840+226530+243497+3577&hello=baron+haikubox+cddb_daemon+1.0&proto=6 HTTP 1.0


----- CDDB query reply start -----

-----  CDDB query reply end  -----
Error : CDDB server status code is .
Error when querying CD.
Looking up CD with CDDB Id b50ee70e.
GET /~cddb/cddb.cgi?cmd=cddb+query+b50ee70e+14+150+2183+20377+35905+55008+77712+90712+109370+128220+146352+161785+177340+197413+232974+3817&hello=baron+haikubox+cddb_daemon+1.0&proto=6 HTTP 1.0


----- CDDB query reply start -----

-----  CDDB query reply end  -----
Error : CDDB server status code is .
Error when querying CD.
Looking up CD with CDDB Id a60c9e0d.
GET /~cddb/cddb.cgi?cmd=cddb+query+a60c9e0d+13+150+17333+34543+51571+72619+93407+115601+134636+151011+168528+184809+206486+225158+3232&hello=baron+haikubox+cddb_daemon+1.0&proto=6 HTTP 1.0


----- CDDB query reply start -----

-----  CDDB query reply end  -----
Error : CDDB server status code is .
Error when querying CD.
Looking up CD with CDDB Id 750cde08.
GET /~cddb/cddb.cgi?cmd=cddb+query+750cde08+8+150+27367+71220+96037+120450+136802+178167+209050+3296&hello=baron+haikubox+cddb_daemon+1.0&proto=6 HTTP 1.0


----- CDDB query reply start -----

-----  CDDB query reply end  -----
Error : CDDB server status code is .
Error when querying CD.
Looking up CD with CDDB Id 950c910c.
GET /~cddb/cddb.cgi?cmd=cddb+query+950c910c+12+182+23452+39855+58255+64282+91662+108857+133855+158190+181745+188995+203567+3219&hello=baron+haikubox+cddb_daemon+1.0&proto=6 HTTP 1.0


----- CDDB query reply start -----

-----  CDDB query reply end  -----
Error : CDDB server status code is .
Error when querying CD.
Looking up CD with CDDB Id ab0de90c.
GET /~cddb/cddb.cgi?cmd=cddb+query+ab0de90c+12+183+22800+41920+58350+72135+91408+104685+115413+132198+143965+159903+174630+3563&hello=baron+haikubox+cddb_daemon+1.0&proto=6 HTTP 1.0


----- CDDB query reply start -----

-----  CDDB query reply end  -----
Error : CDDB server status code is .
Error when querying CD.
Skipping device with id 13.

comment:36 by bga, 10 years ago

Resolution: invalid
Status: reopenedclosed

Do you have any network related problems with this machine in any other application? I just tested every single entry you provided above and got correct replies for all of them. Unfortunately I can not do anything else and you will have to debug it on your side.

comment:37 by scottmc, 9 years ago

Resolution: invalid
Status: closedreopened
Version: R1/pre-alpha1R1/alpha1

@bga, reopening this one as I said I would. Now that you've seen this happen first hand maybe we can troubleshoot this one further. Feel free to update the summary to what the real issue is.

comment:38 by waddlesplash, 5 years ago

Found the problem: CDDB_daemon hard-fails if a null "DYEAR" is passed by FreeDB. Working on a fix...

comment:39 by waddlesplash, 5 years ago

Has a Patch: set

comment:40 by jessicah, 5 years ago

Owner: changed from bga to jessicah
Status: reopenedassigned

comment:41 by korli, 5 years ago

  • Please use snprintf() and "%02d ".
  • use braces around a multi-line if block.
  • track_num and track_str are not correct for a C++ file, trackNum and trackNumString would be fine.

comment:42 by korli, 5 years ago

I believe that name.Prepend("0") isn't needed anymore, or? You can also replace 3 by sizeof(trackNumString).

Last edited 5 years ago by korli (previous) (diff)

comment:43 by waddlesplash, 5 years ago

Whoops, commited that without thinking about it. Fixed now.

by waddlesplash, 5 years ago

Fixes the problem for me.

comment:44 by korli, 5 years ago

Why adding .wav at the end of filenames?

comment:45 by waddlesplash, 5 years ago

Because I sometimes want to rip CDs on Haiku and copy the files over to another OS. CDDAfs adds ".wav" by default, but currently cddb_daemon removes it when renaming files.

comment:46 by korli, 5 years ago

Edited and applied in hrev47476.

comment:47 by waddlesplash, 5 years ago

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.