scsci host num / busno is getting to high at wodim and cdrdao
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
cdrkit (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
Hi!
We are using Ubuntu 8.04.2 server with wodim 9:1.1.6-1ubuntu6 and cdrdao 1:1.2.2-8ubuntu3. We have a cd and dvd burning robot connected to our server. The robots cd/dvd drives are ide drives that are connected via a ide <-> firewire changer. So the drives are recognized as /dev/sr* an can be used like normal internal drives.
Now we got the following problem: When we turn of the robot (and in fact the power source for the drives) and turn it on again, the scsi busno is increased by one. After some time this can lead to very high numbers like 277 or so. If we do a wodim --scanbus we can still see the drives, but wodim and cdrdao can't use them any more. At busno >= 256 we get this error message:
Cdrdao version 1.2.2 - (C) Andreas Mueller <email address hidden>
SCSI interface library - (C) Joerg Schilling
Paranoia DAE library - (C) Monty
Check http://
ERROR: Cannot open SCSI device '/dev/sr1': Illegal value for busno, target or lun '256,0,0'
...
The same problem seems to occur with all usb or firewire connected writers/drives.
So my question is how to solve this... I looked at the source code and found a maximum number in some lib, but also some arrays are allocated with that number - so maybe it is a bad idea to change it... A reboot of course helps, but that's really a bad solution.
I've found a kernel patch at [1] from Ben Collins which was intended to solve our problem. The final version of the patch can be found at [2]. I tried it and it worked well until a drive hung up and I got some sort of NULL Pointer Error. Then the whole system hung until a cold start.
In [3] H. Peter Anvin states that he doesn't like the patch because of the number allocation scheme. I certainly agree his comment but how can we solve our problem? Is it really a kernel issue or is it an issue of cdrkit (wodim/
If you need any further information or outputs please feel free to contact me! Thanks in advance!
Best regards,
Wolfgang Eibner
[1] http://
[2] http://
[3] http://
As I found out in libusal/ scsi-linux- sg.c:165 wodim stops at 1256: #define MAX_SCG 1256 /* Max # of SCSI controllers */
cdrdao stops at 256, defined in scsilib/ libscg/ scsi-linux- sg.c:147
I could raise these numbers but it is still a problem of "where is the end?" or how much memory is additionally consumed for the arrays which are allocated with these constants.