Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Aug 2007 00:23:13 -0700 (PDT)
From:      Jeremy Chadwick <koitsu@FreeBSD.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/115853: diskcheckd runs constantly rather than at interval specified
Message-ID:  <20070827072314.071961CC030@mx01.sc1.parodius.com>
Resent-Message-ID: <200708270750.l7R7o2Kp009192@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         115853
>Category:       ports
>Synopsis:       diskcheckd runs constantly rather than at interval specified
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Aug 27 07:50:01 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator:     Jeremy Chadwick
>Release:        FreeBSD 6.2-STABLE i386
>Organization:
>Environment:
System: FreeBSD eos.sc1.parodius.com 6.2-STABLE FreeBSD 6.2-STABLE #0: Mon Jun 25 13:30:53 PDT 2007 root@eos.sc1.parodius.com:/usr/obj/usr/src/sys/EOS i386
>Description:
	According to the diskcheckd manpage, the following configuration
	will cause diskcheckd to check (read) the ad0 disk once every 14 days:

/dev/ad0	*	14	*

	I put the following in our /usr/local/etc/diskcheckd.conf file:

/dev/ad4	*	7	*
/dev/ad6	*	7	*

	And set `diskcheckd_enable="yes"` in /etc/rc.conf, then did
	/usr/local/etc/rc.d/diskcheckd start.

	However, it looks to me that diskcheckd is pounding away at each disk
	constantly, rather than "every 7 days".  I started diskcheckd at
	approximately 23:45 on August 25th.

	Taken from our syslog:

Aug 26 00:34:56 anubis diskcheckd[30472]: reached end of /dev/ad4 with 0 errors
Aug 26 01:18:17 anubis diskcheckd[30472]: reached end of /dev/ad4 with 0 errors
Aug 26 01:22:49 anubis diskcheckd[30472]: reached end of /dev/ad6 with 0 errors
Aug 26 02:03:04 anubis diskcheckd[30472]: reached end of /dev/ad4 with 0 errors
Aug 26 02:46:20 anubis diskcheckd[30472]: reached end of /dev/ad4 with 0 errors
Aug 26 02:55:10 anubis diskcheckd[30472]: reached end of /dev/ad6 with 0 errors
Aug 26 03:36:27 anubis diskcheckd[30472]: reached end of /dev/ad4 with 0 errors
Aug 26 04:21:51 anubis diskcheckd[30472]: reached end of /dev/ad4 with 0 errors
Aug 26 04:35:24 anubis diskcheckd[30472]: reached end of /dev/ad6 with 0 errors
Aug 26 05:12:11 anubis diskcheckd[30472]: reached end of /dev/ad4 with 0 errors
Aug 26 05:55:20 anubis diskcheckd[30472]: reached end of /dev/ad4 with 0 errors

	And so on, indefintely.

	top(1) shows diskcheckd either in physrd state (majority of the time)
	or sleep state (rarely).  truss'ing the process shows:

read(3,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,65536) = 65536 (0x10000)
read(4,"\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?"...,65536) = 65536 (0x10000)
nanosleep({0.000000000})                         = 0 (0x0)
read(3,"\0\0\0\0\M-j\^C\0\0\M-u\^A\0\0\0"...,65536) = 65536 (0x10000)
read(4,"\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?"...,65536) = 65536 (0x10000)
nanosleep({0.000000000})                         = 0 (0x0)
read(3,"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,65536) = 65536 (0x10000)
read(4,"\M^?\M^?\M^?\M^?\M^?\M^?\M^?\M^?"...,65536) = 65536 (0x10000)

	And so on.

	It makes perfect sense that diskcheckd should immediately start a disk
	scan when it starts up, but the syslog entries above prove to me that
	once its done, it starts over immediately, rinse lather repeat.
>How-To-Repeat:
	See above.
>Fix:
	None that I know of.

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070827072314.071961CC030>