Re: burncd(8) CD-RW blanking problem

From: Scott Long <scottl_at_freebsd.org>
Date: Sat, 06 Dec 2003 12:40:51 -0700
Mathew Kanner wrote:
> On Dec 06, Lefteris Chatzibarbas wrote:
> 
> 
>>[...]
> 
> 
>>After a little searching it seems that the program cannot get out of the
>>while() loop at line 198 of src/usr.sbin/burncd/burncd.c:
>>
>>       while (1) {
>>		sleep(1);
>>		if (ioctl(fd, CDRIOCGETPROGRESS, &pct) == -1)
>>			err(EX_IOERR,"ioctl(CDRIOGETPROGRESS)");
>>		if (pct > 0 && !quiet)
>>			fprintf(stderr,
>>				"%sing CD - %d %% done     \r",
>>				blank == CDR_B_ALL ?
>>				"eras" : "blank", pct);
>>		if (pct == 100 || (pct == 0 && last > 90))
>>			break;
>>		last = pct;
>>	}
>>
>>The pct variable is always 0, even after the blanking of the CD-RW is
>>finished (according to the device's LEDs), so the program falls into an
>>infinite loop.
>>
>>Of course, hitting ^C exits burncd...
>>
>>Does anyone else has this problem? Is it specific to my CD-R/RW device?
> 
> 
> 	I have the exact same problem.  It stays stuck in the loop
> because ioctl(fd, CDRIOGETPROGRESS, &pct) pct is always 0.
> 
> 	--Mat
> 

I'm seeing this too.  What's odd is that my cd drive is reporting back
incorrect sense information; the valid bit is not set, the asc/ascq is
suspect (4/8), and the sense key specific data is all 0.  Since other
fields in the sense data are reasonable, it's not as if no sense data is
being returned at all.  So it looks like the CDRIOGETPROGRESS ioctl
handler is doing the right thing, but the cd drive is not.  Maybe the
driver is doing something wrong when it issues the erase command, but
I can't convince myself that that is likely.

Scott
Received on Sat Dec 06 2003 - 10:42:04 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:32 UTC