Mike, can you have a look into this? The CUPS currently in Ubuntu 13.10 (Saucy, CUPS 1.7rc1) does not show this problem, but the CUPS in 12.04 LTS (Precise, CUPS 1.5.3) has this problem of an subscription renewal constantly waking up the system. Can you tell us which change fixed this, so that we can backport this change? Thanks.
-- You received this bug notification because you are a member of Desktop Packages, which is subscribed to cups in Ubuntu. https://bugs.launchpad.net/bugs/1244205 Title: cupsd wakes up the hard disk every 14 minutes Status in The Ubuntu Power Consumption Project: New Status in “cups” package in Ubuntu: New Bug description: cupsd calls fsync() on /etc/subscriptions.conf.N every 14~15 minutes. This causes the hard disk to wake up soon after it spins down. Subscription renewal is from indicator-printers every 15 minutes. I think we don't need cupsdRemoveFile() to always overwrite data and do a fsync() for this file. Currently only Precise is confirmed to be affected. Saucy seems not having the same issue according to (http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/saucy/cups/saucy/view/head:/scheduler/file.c#L149) ---- block_dump from the kernel ---- <7>[19935.646436] cupsd(1066): dirtied inode 15336755 (subscriptions.conf.N) on sda3 <7>[19935.646673] cupsd(1066): WRITE block 352753016 on sda3 (8 sectors) <7>[19935.646755] cupsd(1066): dirtied inode 15335603 (?) on sda3 <7>[19935.646763] cupsd(1066): dirtied inode 15335603 (?) on sda3 <7>[19935.646776] cupsd(1066): WRITE block 352701128 on sda3 (8 sectors) <7>[20774.607856] cupsd(1066): dirtied inode 15335603 (subscriptions.conf.N) on sda3 <7>[20774.608034] cupsd(1066): WRITE block 352862776 on sda3 (8 sectors) <7>[20774.608113] cupsd(1066): dirtied inode 15335607 (?) on sda3 <7>[20774.608120] cupsd(1066): dirtied inode 15335607 (?) on sda3 <7>[20774.608133] cupsd(1066): WRITE block 352753008 on sda3 (8 sectors) <7>[21613.569033] cupsd(1066): dirtied inode 15335607 (subscriptions.conf.N) on sda3 <7>[21613.569257] cupsd(1066): WRITE block 352753024 on sda3 (8 sectors) <7>[21613.569345] cupsd(1066): dirtied inode 15336755 (?) on sda3 <7>[21613.569353] cupsd(1066): dirtied inode 15336755 (?) on sda3 <7>[21613.569367] cupsd(1066): WRITE block 352753016 on sda3 (8 sectors) ---- cups: scheduler/file.c ---- int /* O - 0 on success, -1 on error */ cupsdCloseCreatedConfFile( cups_file_t *fp, /* I - File to close */ const char *filename) /* I - Filename */ { ... snprintf(newfile, sizeof(newfile), "%s.N", filename); snprintf(oldfile, sizeof(oldfile), "%s.O", filename); if ((cupsdRemoveFile(oldfile) && errno != ENOENT) || (rename(filename, oldfile) && errno != ENOENT) || rename(newfile, filename)) { cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to finalize \"%s\": %s", filename, strerror(errno)); return (-1); } return (0); } int /* O - 0 on success, -1 on error */ cupsdRemoveFile(const char *filename) /* I - File to remove */ { ... /* * Overwrite the file 7 times with 0xF6, 0x00, 0xFF, random, 0x00, 0xFF, * and more random data. */ memset(buffer, 0xF6, sizeof(buffer)); if (overwrite_data(fd, buffer, sizeof(buffer), (int)info.st_size)) { close(fd); return (-1); } ... } static int /* O - 0 on success, -1 on error */ overwrite_data(int fd, /* I - File descriptor */ const char *buffer, /* I - Buffer to write */ int bufsize, /* I - Size of buffer */ int filesize) /* I - Size of file */ { int bytes; /* Bytes to write/written */ /* * Start at the beginning of the file... */ if (lseek(fd, 0, SEEK_SET) < 0) return (-1); /* * Fill the file with the provided data... */ while (filesize > 0) { if (filesize > bufsize) bytes = bufsize; else bytes = filesize; if ((bytes = write(fd, buffer, bytes)) < 0) return (-1); filesize -= bytes; } /* * Force the changes to disk... */ return (fsync(fd)); } ---- indicator-printers-service.c ---- #define NOTIFY_LEASE_DURATION (15 * 60) int main (int argc, char *argv[]) { ... g_timeout_add_seconds (NOTIFY_LEASE_DURATION - 60, renew_subscription_timeout, &subscription_id); ... } To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu-power-consumption/+bug/1244205/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : [email protected] Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp

