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. ScottReceived 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