Bug 491552 - libatasmart wakes up disk when trying determining whether the disk is sleeping
libatasmart wakes up disk when trying determining whether the disk is sleeping
Status: CLOSED NEXTRELEASE
Product: Fedora
Classification: Fedora
Component: libatasmart (Show other bugs)
rawhide
All Linux
low Severity medium
: ---
: ---
Assigned To: Lennart Poettering
Fedora Extras Quality Assurance
: Reopened
: 526025 (view as bug list)
Depends On:
Blocks: 454582
  Show dependency treegraph
 
Reported: 2009-03-22 18:53 EDT by Mace Moneta
Modified: 2010-03-06 13:27 EST (History)
13 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2009-10-26 22:44:43 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)
"sysctl -w vm.block_dump=1" activity for sdb (168.23 KB, text/plain)
2009-03-22 18:53 EDT, Mace Moneta
no flags Details
devkit-disks --monitor-detail (18.63 KB, text/plain)
2009-03-22 18:55 EDT, Mace Moneta
no flags Details
devkit-disks monitor output (22.95 KB, text/plain)
2009-04-07 01:17 EDT, Mace Moneta
no flags Details


External Trackers
Tracker ID Priority Status Summary Last Updated
FreeDesktop.org 24579 None None None Never
Launchpad 435190 None None None Never

  None (edit)
Description Mace Moneta 2009-03-22 18:53:45 EDT
Created attachment 336227 [details]
"sysctl -w vm.block_dump=1" activity for sdb

Description of problem:

I have an internal SATA drive (sdb) that I only use for backups; it is otherwise unmounted.  I have it set to spin down when idle.

Recently, I noticed taht the drive is not spinning down.  I checked to see what was accessing it using "sysctl -w vm.block_dump=1" (see the attached who-io.log).  It appeared to be devkit-disks-part-id.

I ran "devkit-disks --monitor-detail" (see attached devkit.log), and it appears that deviceKit is polling smart data, which keeps the drive from spinning down.

The device is not removable, and it's not in the list of polled drives:

# ps -Afl | grep devkit-disks-daemon | grep -v grep
4 S root      4326     1  0  80   0 -     0 poll_s 17:23 ?        00:00:02 /usr/libexec/devkit-disks-daemon
1 S root      4382  4326  0  80   0 -     0 poll_s 17:23 ?        00:00:03 devkit-disks-daemon: polling /dev/sdg /dev/sdf /dev/sr0 /dev/sde /dev/sr1 /dev/sdd

Version-Release number of selected component (if applicable):

DeviceKit-disks-003-7.fc11.x86_64
DeviceKit-003-1.x86_64
DeviceKit-power-006-3.fc11.x86_64

How reproducible:

Always

Steps to Reproduce:
1.Unmount a drive
2.Set the spin down time
3.Watch nothing happen
  
Actual results:

Drives stay spun up, even when unmounted

Expected results:

Drives should spin down

Additional info:
Comment 1 Mace Moneta 2009-03-22 18:55:00 EDT
Created attachment 336228 [details]
devkit-disks --monitor-detail
Comment 2 Eric Sandeen 2009-03-24 17:22:12 EDT
Mace, feel free to add it to the tracker bug if you like; it's a slightly different issue, but the same net result, sounds like.

-Eric
Comment 3 David Zeuthen 2009-03-24 17:30:16 EDT
FWIW, this is fixed with the smartmontools->libatasmart port that I committed upstream yesterday. I'll keep this bug open until it's in Rawhide.
Comment 4 Mace Moneta 2009-03-24 20:31:19 EDT
(In reply to comment #3)
> FWIW, this is fixed with the smartmontools->libatasmart port that I committed
> upstream yesterday. I'll keep this bug open until it's in Rawhide.  

I don't have libatasmart installed; how does it relate to the issue?
Comment 5 David Zeuthen 2009-03-25 12:52:28 EDT
(In reply to comment #4)
> (In reply to comment #3)
> > FWIW, this is fixed with the smartmontools->libatasmart port that I committed
> > upstream yesterday. I'll keep this bug open until it's in Rawhide.  
> 
> I don't have libatasmart installed; how does it relate to the issue?  

As I said this is fixed upstream but the fix is not in Rawhide yet. Once the next version hits Rawhide libatasmart will be pulled in and then a drive will not be spun up for checking ATA SMART if the drive are sleeping.
Comment 6 Matthias Clasen 2009-04-07 00:43:04 EDT
Should be fixed in DeviceKit-disks-004
Comment 7 Mace Moneta 2009-04-07 01:17:41 EDT
Created attachment 338456 [details]
devkit-disks monitor output

I updated to DeviceKit-disks-004 from Koji, rebooted, and still see the same issue.  Sdb is unmounted, has 'hdparm -S2' set, but will not spin down.  The 'devkit-disks --monitor-detail' still shows /dev/sdb being polled.
Comment 8 David Zeuthen 2009-04-07 12:19:32 EDT
Interesting. Please try to boot into runlevel 3 (to avoid the desktop starting devkit-disks-daemon), ensure that devkit-disks-daemon isn't running and then put the drive asleep (or wait until it is asleep). Then as root run this command

 # /usr/libexec/devkit-disks-helper-ata-smart-collect /dev/sdb 1

replacing /dev/sdb with whatever disk it is. If the drive is asleep we should print

 Disk /dev/sdb is asleep and nowakeup option was passed

and exit with exit code 2. Otherwise it will dump a base64 encoded blob of the smart data to stdout and exit with exit code 0.

If this wakes up the disk it's probably a libatasmart bug - we've already identified a few issues with detecting whether a disk is asleep/awake in libatasmart (which is why I'm adding the libatasmart author to the Cc).
Comment 9 Mace Moneta 2009-04-07 15:57:34 EDT
I booted to runlevel 3, and devkit was still polling the drive (something else must be starting devkit).

So I booted to runlevel 1, and confirmed that nothing was polling the drive.  However, I still could not spin it down.  Every time it went to spin down, I heard it spin up again (confirmed with 'hdparm -C').  Even manually (hdparm -y), the drive immediately spun back up.

I booted a F10 liveCD, and the drive spins down no problem.  At this point, it appears that the F11 kernel is preventing the drive from spinning down, so devkit polling it while it's active is not a surprise.  I'll open a separate bug for the kernel.
Comment 10 Lennart Poettering 2009-04-07 16:12:16 EDT
libatasmart 0.7 should fix the bad parsing of the awake flag.

http://koji.fedoraproject.org/koji/taskinfo?taskID=1283923
Comment 11 David Zeuthen 2009-04-07 16:25:04 EDT
(In reply to comment #9)
> I booted to runlevel 3, and devkit was still polling the drive (something else
> must be starting devkit).

Just do killall devkit-disks-daemon from a root shell...

> So I booted to runlevel 1, and confirmed that nothing was polling the drive. 
> However, I still could not spin it down.  Every time it went to spin down, I
> heard it spin up again (confirmed with 'hdparm -C').  Even manually (hdparm
> -y), the drive immediately spun back up.

I've seen that too on a Rawhide box. So what you are running into is a bug with hdparm and/or the kernel, not DeviceKit-disks.

FWIW, I have a WD Passport USB enclosure that automatically spins down the disk (e.g. without host intervention). When that happens devkit-disks-daemon will avoid reading SMART data to spin up the disk. And with the latest libatasmart fixes this should work for all kinds of ATA compliant devices. So I'm going to close this bug as WORKSFORME.

> I booted a F10 liveCD, and the drive spins down no problem.  At this point, it
> appears that the F11 kernel is preventing the drive from spinning down, so
> devkit polling it while it's active is not a surprise.  I'll open a separate
> bug for the kernel.  

Please paste the bug number here so others can follow it. Thanks.
Comment 12 David Zeuthen 2009-04-07 16:44:00 EDT
Btw, I think the bug with hdparm and/or the kernel *may* be caused by what I explained in bug 454582 comment 5.

So it's probably worthwhile to try and patch hdparm to use O_RDONLY instead of O_RDWR as it is doing today, e.g.

 [root@localhost ~]# strace -o out.txt hdparm -y /dev/sda

 /dev/sda:
  issuing standby command

 [root@localhost ~]# grep "open(\"/dev/sda" out.txt
 open("/dev/sda", O_RDWR|O_NONBLOCK)     = 3
Comment 13 Mace Moneta 2009-04-07 16:59:31 EDT
Bug #494711 added for F11/rawhide kernel issue.  I'll add a link to the above comment as well.
Comment 14 Alex Butcher 2009-06-19 20:07:09 EDT
(In reply to comment #8)
> Interesting. Please try to boot into runlevel 3 (to avoid the desktop starting
> devkit-disks-daemon), ensure that devkit-disks-daemon isn't running and then
> put the drive asleep (or wait until it is asleep). Then as root run this
> command

I killed devkit-disks-daemon, and used hdparm 9.15's -S option to set the timeout to 5 seconds, then waited at least that amount of time.

>  # /usr/libexec/devkit-disks-helper-ata-smart-collect /dev/sdb 1
> 
> replacing /dev/sdb with whatever disk it is. If the drive is asleep we should
> print
> 
>  Disk /dev/sdb is asleep and nowakeup option was passed
> 
> and exit with exit code 2. Otherwise it will dump a base64 encoded blob of the
> smart data to stdout and exit with exit code 0.

I did this, and heard the drive spin up, and shortly afterwards I got the base64 blob.

> If this wakes up the disk it's probably a libatasmart bug - we've already
> identified a few issues with detecting whether a disk is asleep/awake in
> libatasmart (which is why I'm adding the libatasmart author to the Cc).  

libatasmart 0.12-3.fc11 and DeviceKit-disks-004-3.fc11 here.
Comment 15 Jim Meyering 2009-06-25 11:55:55 EDT
Hi, I have a similar problem.  Is there a way to tell devkit-disks-daemon (via devkit-disks-helper-ata-smart-collect) not to spin-up my /dev/sda once an hour?  This is happening on F11 (I've just installed DeviceKit-disks-005-2.fc12.x86_64 but haven't restarted anything yet).
Comment 16 Jim Meyering 2009-10-10 05:53:04 EDT
reopening.  Please see comment #15, above.
Comment 17 David Zeuthen 2009-10-16 18:01:50 EDT
This is likely just a hardware bug in your hard disk spinning up when libatasmart sends the IDENTIFY command. Most of my external hard disks works fine - only a single one exhibits this behavior. So there is little we can do about this. Closing (since I believe there is little we can do about this) and reassigning to libatasmart (since it is the component waking up the disk even when told not to).
Comment 18 Jim Meyering 2009-10-16 23:42:47 EDT
Thanks for the reply.
In that case, is there a way to make devkit refrain from sending IDENTIFY?
Comment 19 David Zeuthen 2009-10-17 16:30:28 EDT
Not at this point. It might be useful with a DKD_ATA_SMART variable you can set via an udev rule. I've filed a bug for this here

https://bugs.freedesktop.org/show_bug.cgi?id=24594

for this feature request.
Comment 20 Jim Meyering 2009-10-18 03:31:26 EDT
Thanks.

Since this has been reassigned, I'm reopening against libatasmart.  If hddtemp can determine that this disk is asleep without waking it, libatasmart should be able to do that, too.
Comment 21 David Zeuthen 2009-10-20 20:11:51 EDT
Interesting. Lennart, this is how I call into libatasmart

http://cgit.freedesktop.org/DeviceKit/DeviceKit-disks/tree/src/job-ata-smart-collect.c?id=008#n57

it looks correct, doesn't it? Adjusting summary too.
Comment 22 David Zeuthen 2009-10-20 20:13:01 EDT
(In reply to comment #20)
> Since this has been reassigned, I'm reopening against libatasmart.  If hddtemp
> can determine that this disk is asleep without waking it, libatasmart should be
> able to do that, too.  

Please attach strace output when doing this with hddtemp. Thanks.
Comment 23 Rich Rauenzahn 2009-10-20 21:33:36 EDT
execve("/usr/sbin/hddtemp", ["hddtemp", "/dev/sdc"], [/* 33 vars */]) = 0
brk(0)                                  = 0x81ce000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=122927, ...}) = 0
mmap2(NULL, 122927, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb800b000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300k\1\0004\0\0\0\f"...,
512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1800012, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb800a000
mmap2(NULL, 1509672, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x90b000
mmap2(0xa76000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3,
0x16b) = 0xa76000
mmap2(0xa79000, 10536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS,
-1, 0) = 0xa79000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb8009000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb80096c0, limit:1048575,
seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0,
useable:1}) = 0
mprotect(0xa76000, 8192, PROT_READ)     = 0
mprotect(0xb78000, 4096, PROT_READ)     = 0
munmap(0xb800b000, 122927)              = 0
rt_sigaction(SIGSEGV, {0x804c9c0, [ILL BUS], SA_RESETHAND|SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGILL, {0x804c9c0, [BUS SEGV], SA_RESETHAND|SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGBUS, {0x804c9c0, [ILL SEGV], SA_RESETHAND|SA_SIGINFO}, NULL, 8) = 0
brk(0)                                  = 0x81ce000
brk(0x81ef000)                          = 0x81ef000
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=84748720, ...}) = 0
mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7e09000
close(3)                                = 0
open("/dev/sdc", O_RDONLY|O_NONBLOCK)   = 3
ioctl(3, SCSI_IOCTL_GET_BUS_NUMBER, 0xbf9d4570) = 0
ioctl(3, SG_IO, {'S', SG_DXFER_FROM_DEV, cmd[6]=[12, 00, 00, 00, 24, 00],
mx_sb_len=0, iovec_count=0, dxfer_len=36, timeout=3000, flags=0,
data[36]=["\0\0\5\2[\0\0\0ATA     Maxtor 7H500F0  H"...], status=00,
masked_status=00, sb[0]=[], host_status=0, driver_status=0, resid=0, duration=0,
info=0}) = 0
ioctl(3, SG_IO, {'S', SG_DXFER_FROM_DEV, cmd[16]=[85, 08, 2e, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, ec, 00], mx_sb_len=32, iovec_count=0, dxfer_len=512,
timeout=3000, flags=0,
data[512]=["@\0\377?7\310\20\0\0\0\0\0?\0\0\0\0\0\0\0008HA18XHT     "...],
status=02, masked_status=01, sb[22]=[72, 00, 00, 00, 00, 00, 00, 0e, 09, 0c, 00, 00,
00, ff, 00, 00, 00, 00, 00, 00, 00, 50], host_status=0, driver_status=0x8, resid=0,
duration=1, info=0x1}) = 0
ioctl(3, SG_IO, {'S', SG_DXFER_FROM_DEV, cmd[16]=[85, 08, 2e, 00, 00, 00, 00, 00,
00, 00, 00, 00, 00, 00, ec, 00], mx_sb_len=32, iovec_count=0, dxfer_len=512,
timeout=3000, flags=0,
data[512]=["@\0\377?7\310\20\0\0\0\0\0?\0\0\0\0\0\0\0008HA18XHT     "...],
status=02, masked_status=01, sb[22]=[72, 00, 00, 00, 00, 00, 00, 0e, 09, 0c, 00, 00,
00, ff, 00, 00, 00, 00, 00, 00, 00, 50], host_status=0, driver_status=0x8, resid=0,
duration=21, info=0x1}) = 0
open("/usr/share/misc/hddtemp.db", O_RDONLY) = 4
read(4, "#\n# Insert a regular expression f"..., 1024) = 1024
read(4, "0A 19.9GB\n# SEAGATE ST330610A 29."..., 1007) = 1007
read(4, "################################\n"..., 1016) = 1016
read(4, "2100AT\" \n\"FUJITSU MHV2100BH\"\t\t194"..., 984) = 984
read(4, "194  C\t\"Hitachi DK23FA series\"\n\"H"..., 998) = 998
read(4, "s, 7200RPM, 8MB, PATA\"\n\"HDT722516"..., 963) = 963
read(4, "8080M9AT00\"\t\t194  C\t\"Hitachi Trav"..., 1018) = 1018
read(4, "-35.*\"\t\t\t231  C\t\"IBM Deskstar 37G"..., 1015) = 1015
read(4, "H2\"\n#\"Maxtor 4D080H4\"\t\t\t\t\t12   C\t"..., 982) = 982
read(4, "Max Plus 9\" \n\"Maxtor 7L300[RS]0\"\t"..., 962) = 962
read(4, " 10 300GB 16MB SATA\"\n\"Maxtor 6L08"..., 977) = 977
read(4, "\"\n\"Maxtor 6V080E0\"\t\t\t\t\t194  C  \"M"..., 953) = 953
read(4, " the SP8004H which reports a temp"..., 990) = 990
read(4, "12|0802|1203|1604|0812|1213|1614)"..., 1010) = 1010
read(4, "   C\t\"Seagate ST31276A\"\n\"ST3412A\""..., 983) = 983
read(4, "0630A\"\n\"ST340014A\"\t\t\t\t194  C\t\"Sea"..., 979) = 979
read(4, "\t\t\t194  C\t\"Seagate Barracuda 7200"..., 1011) = 1011
read(4, "eagate Barracuda 7200.9 250GB SAT"..., 997) = 997
read(4, "omentus 5400.2 60GB\"\n\"ST96812AS\"\t"..., 992) = 992
read(4, "4032GAX\" \n\n\"TOSHIBA MK6021GAS\"\t\t\t"..., 984) = 984
read(4, "BB-60DGA0\"\t\t\t\t\t\t  0 C \"Western Di"..., 1013) = 1013
read(4, "book HDD\"\n\"WDC WD400VE-75HDT1\"\t\t\t"..., 966) = 966
read(4, " 800BB-55JKA0\" \n\"WDC WD800BB-75FR"..., 976) = 976
read(4, "120 GB\"\n\"WDC WD1600BB-00DWA0\"\t\t\t\t"..., 947) = 947
read(4, "B\"\n\"WDC WD2500PD-00FZB1\"\t\t\t\t\t\t194"..., 943) = 943
read(4, "#################################"..., 951) = 951
read(4, "#################################"..., 968) = 968
read(4, "AS\"                           194"..., 1014) = 1014
read(4, "  C  \"Seagate Barracuda 7200.10 S"..., 979) = 979
read(4, "WDC WD1600JS-00NCB1\"\t\t\t\t\t\t194 C \""..., 1023) = 961
read(4, ""..., 1024)                    = 0
close(4)                                = 0
open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = 4
fstat64(4, {st_mode=S_IFREG|0644, st_size=26048, ...}) = 0
mmap2(NULL, 26048, PROT_READ, MAP_SHARED, 4, 0) = 0xb8023000
close(4)                                = 0
brk(0x8210000)                          = 0x8210000
brk(0x8231000)                          = 0x8231000
brk(0x8252000)                          = 0x8252000
brk(0x8273000)                          = 0x8273000
brk(0x8294000)                          = 0x8294000
brk(0x82b5000)                          = 0x82b5000
brk(0x82d6000)                          = 0x82d6000
brk(0x82f7000)                          = 0x82f7000
brk(0x8318000)                          = 0x8318000
ioctl(3, 0x31f, 0xbf9d44f8)             = 0
open("/usr/share/locale/locale.alias", O_RDONLY) = 4
fstat64(4, {st_mode=S_IFREG|0644, st_size=2512, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb8022000
read(4, "# Locale name alias data base.\n# "..., 4096) = 2512
read(4, ""..., 4096)                    = 0
close(4)                                = 0
munmap(0xb8022000, 4096)                = 0
open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/hddtemp.mo", O_RDONLY) = -1 ENOENT
(No such file or directory)
open("/usr/share/locale/en_US.utf8/LC_MESSAGES/hddtemp.mo", O_RDONLY) = -1 ENOENT
(No such file or directory)
open("/usr/share/locale/en_US/LC_MESSAGES/hddtemp.mo", O_RDONLY) = -1 ENOENT (No
such file or directory)
open("/usr/share/locale/en.UTF-8/LC_MESSAGES/hddtemp.mo", O_RDONLY) = -1 ENOENT (No
such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/hddtemp.mo", O_RDONLY) = -1 ENOENT (No
such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/hddtemp.mo", O_RDONLY) = -1 ENOENT (No such
file or directory)
write(2, "/dev/sdc: Maxtor 7H500F0: drive i"..., 44/dev/sdc: Maxtor 7H500F0: drive
is sleeping
) = 44
exit_group(0)                           =
Comment 24 Libin 2009-10-21 20:31:34 EDT
I'd just like to report I am facing the exact same issue. This is definitely not a hardware problem.

Upgraded from Fedora 9 to 11. Before upgrading everything worked fine. Hard drives will spin down after idling for a while. But now. They don't do that any more.

I have 3 hard drives, 2 of which are for backup purpose, one ATA, one SATA. If I issue a "hdparm -y" command. Both drives would spin down, no problem. then after a while I could hear them suddenly start spinning up again. do a "hadparm -C", both are active now.

This happens every half an hour.

If I kill devkit-disks-daemon, the issue will be gone. Both drives would spin down as expected.
Comment 25 akaihola 2009-10-22 03:49:12 EDT
Ubuntu's Launchpad is tracking this bug as well:
https://bugs.launchpad.net/ubuntu/+source/libatasmart/+bug/435190

The issue exists on Ubuntu 9.10 Karmic Alpha 6 using libatasmart 0.16.

I've traced the reason for the spin-up to the disk_smart_read_thresholds() call at the end of sk_disk_open() in atasmart.c.

Apparently the SMART "Read Thresholds" command causes at least some disks to spin up. I wonder why libatasmart4 always executes that call already when opening the disk device.

In the Launchpad bug comments, I also posted a dirty work-around involving a wrapper shell script.
Comment 26 David Zeuthen 2009-10-22 11:31:43 EDT
Here's the upstream bug report

 http://bugs.freedesktop.org/show_bug.cgi?id=24579

(libatasmart just gained a bugzilla product at bugs.fd.o)
Comment 27 Rich Rauenzahn 2009-10-22 12:21:50 EDT
I think many of us are using hddparm -S during boot to set the power down time.   I have smartd and hddtemp configured to poll at 2 hours, and I set -S to 1 hour.   Their polling frequencies need to be greater than the sleep timeout.   When smartd and hddtemp poll a sleeping drive, they notice the drive is asleep and ignore it.  They do not wake it up.

What is the polling frequency of devkit-disks?  Once this other issue is fixed, is it still going to poll so frequently that the drive never sleeps?   Is it configurable?  I haven't found anything in google yet.
Comment 28 Lennart Poettering 2009-10-23 17:20:17 EDT
*** Bug 526025 has been marked as a duplicate of this bug. ***
Comment 29 Lennart Poettering 2009-10-23 17:46:58 EDT
There's now a patch for this:

http://git.0pointer.de/?p=libatasmart.git;a=commit;h=a223a4f6277a9f006b722b13671d5292dc6339bb

And I could use someone to test this before I roll a new release tarball for
this. Anyone up for this?
Comment 30 Lennart Poettering 2009-10-26 22:44:43 EDT
Fixed package is now in koji. Will request tag as soon as it finished to build.
Comment 31 Tim Waugh 2009-10-31 08:56:44 EDT
Works fine here.  Thanks!
Comment 32 Libin 2009-11-02 18:08:52 EST
I am sorry, I don't have much experience with these things, but is there a upgrade through yum?
I tried to do:
yum update libatasmart.x86_64
But the system says I am up to date:

>yum update libatasmart.x86_64
Loaded plugins: refresh-packagekit
Setting up Update Process
No Packages marked for Update

Was I updating the wrong package?
Comment 33 Rich Rauenzahn 2009-11-03 10:32:30 EST
Libin,

Are you testing on FC11 or 12?  My understanding is this fix will be on 12 only.

Meanwhile (until I upgrade), I've added this to my cron:

@hourly /usr/bin/killall  devkit-disks-daemon > /dev/null 2>&1
Comment 34 Lennart Poettering 2009-11-03 14:16:51 EST
Yes, this is fixed in F12 only. We change ABI/API since F11 and I have no plans to update this in that release.
Comment 35 Libin 2009-11-03 17:09:19 EST
Oh, No. I am on F11.

Why can't this be fixed on F11? I just upgraded from F9 one month ago. Lots of problems after upgrading. Don't want to repeat the same pain again.

Is there a way to config it to check the disk less frequently? Say once a day rather than every half an hour?

What's the impact if I just kill it like Rich said? Am I going to miss any functions?
Comment 36 Pasi Sainio 2010-03-02 02:50:34 EST
Oh come on, fix this in F11 too!
Upgrade as itself is a pain but for me FC12 freezes randomly on install, I have no way out from FC11.  Or paste the change here and I'll but it into FC11 code myself.
Even a proper workaround would be enough.
Comment 37 Pasi Sainio 2010-03-06 13:27:24 EST
Hi

I have applied the change to libatasmart-0.12-3.fc11.x86_64.rpm and at least I my x86_64 system things seems to run OK.  If anybody is interested in to try this lib out, I can provide the patch to you, or even x86_64 lib if needed.

  - Pasi -

Note You need to log in before you can comment on or make changes to this bug.