From owner-freebsd-current@FreeBSD.ORG Sun Dec 14 14:40:30 2008 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1A0801065670 for ; Sun, 14 Dec 2008 14:40:30 +0000 (UTC) (envelope-from a_best01@uni-muenster.de) Received: from zivm-out1.uni-muenster.de (ZIVM-OUT1.UNI-MUENSTER.DE [128.176.192.8]) by mx1.freebsd.org (Postfix) with ESMTP id A2ADE8FC25 for ; Sun, 14 Dec 2008 14:40:28 +0000 (UTC) (envelope-from a_best01@uni-muenster.de) X-IronPort-AV: E=Sophos;i="4.36,219,1228086000"; d="scan'208";a="265081117" Received: from zivmaildisp1.uni-muenster.de (HELO ZIVMAILUSER05.UNI-MUENSTER.DE) ([128.176.188.85]) by zivm-relay1.uni-muenster.de with ESMTP; 14 Dec 2008 15:40:27 +0100 Received: by ZIVMAILUSER05.UNI-MUENSTER.DE (Postfix, from userid 149459) id 268E81B07DD; Sun, 14 Dec 2008 15:40:27 +0100 (CET) Date: Sun, 14 Dec 2008 15:40:26 +0100 (CET) From: Alexander Best Sender: Organization: Westfaelische Wilhelms-Universitaet Muenster To: Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Subject: (timeout) error during cd fixation X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 14 Dec 2008 14:40:30 -0000 hi there, i am getting the following error when using burncd to burn a regular data-iso: burncd: ioctl(CDRIOCFIXATE): Input/output error this is how i usually run burncd: burncd -s max -e -f /dev/acd0 data xyz.iso fixate however i'm able to mount the cd although fixation fails. running dd if=/dev/acd0 of=check.iso bs=2048 gives me this warning: dd: /dev/acd0: Input/output error doing a diff between xyz.iso and check.iso reveals no differences. so the only problem is the fixation of the cd. i believe this is a timeout problem, because if i run burncd with speed set to 1 the cd gets fixated just fine (no ioctl(CDRIOCFIXATE) error anymore). however the the dd-warning still comes up. i don't really know why the dd-warning doesn't dissapear. maybe this is a completly different issue? no idea. as far as i remember this issue (ioctl(CDRIOCFIXATE): Input/output error) has always been present in burncd (since RELENG4 oder RELENG5). i found a PR in feedback state dealing with this problem (http://www.freebsd.org/cgi/query-pr.cgi?pr=95979&cat=bin). the PR includes a patch which i applied. however that didn't solve the issue. the problem seems to be the timeout variable used in acd_fixate() in sys/dev/ata/atapi-cd.c. it get's set to: int timeout = 5*60*2; changing timeout to a higher value doesn't make much of a difference though, because it gets altered a bit further down in the src. that's the reason the patch didn't fix the issue for me. this is the code where timout gets altered again: /* some drives just return ready, wait for the expected fixate time */ if ((error = acd_test_ready(dev)) != EBUSY) { timeout = timeout / (cdp->cap.cur_write_speed / 177); pause("acdfix", timeout * hz / 2); return acd_test_ready(dev); } it seems my drive doesn't return EBUSY, although it's still busy. that's why burncd runs this delay block. the problem seems to be that timeout gets set to: timeout / (cdp->cap.cur_write_speed / 177) which in my case is too low. maybe somebody can take a brief look an growisofs to see which timeout values during fixation are being used. unfortunately running burncd in test mode doesn't perform a fixation-check. so to test any new timeout setting one has to actually burn a cd. maybe somebody else is having the same problem and wants to try setting timeout = timeout / (cdp->cap.cur_write_speed / 177); to timeout = timeout / ((cdp->cap.cur_write_speed / 177) / 2); or some other vlaue. cheers. alex