From owner-freebsd-ports-bugs@FreeBSD.ORG Thu Aug 18 14:20:08 2011 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 206AD1065673 for ; Thu, 18 Aug 2011 14:20:08 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id F18FC8FC15 for ; Thu, 18 Aug 2011 14:20:07 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id p7IEK7e0097776 for ; Thu, 18 Aug 2011 14:20:07 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id p7IEK7K4097775; Thu, 18 Aug 2011 14:20:07 GMT (envelope-from gnats) Resent-Date: Thu, 18 Aug 2011 14:20:07 GMT Resent-Message-Id: <201108181420.p7IEK7K4097775@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Test Rat Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5128D106566C for ; Thu, 18 Aug 2011 14:18:57 +0000 (UTC) (envelope-from ttsestt@gmail.com) Received: from mail-bw0-f54.google.com (mail-bw0-f54.google.com [209.85.214.54]) by mx1.freebsd.org (Postfix) with ESMTP id D7BAD8FC08 for ; Thu, 18 Aug 2011 14:18:56 +0000 (UTC) Received: by bkat8 with SMTP id t8so2000730bka.13 for ; Thu, 18 Aug 2011 07:18:55 -0700 (PDT) Received: by 10.205.65.140 with SMTP id xm12mr371555bkb.78.1313677135520; Thu, 18 Aug 2011 07:18:55 -0700 (PDT) Received: from localhost ([212.74.233.42]) by mx.google.com with ESMTPS id h26sm749831bkt.19.2011.08.18.07.18.52 (version=SSLv3 cipher=OTHER); Thu, 18 Aug 2011 07:18:53 -0700 (PDT) Message-Id: <86zkj69519.fsf@gmail.com> Date: Thu, 18 Aug 2011 18:18:42 +0400 From: Test Rat To: FreeBSD-gnats-submit@FreeBSD.org Cc: Subject: ports/159874: [patch] sysutils/zfs-snapshot-mgmt: respect local timezone in offsets X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Aug 2011 14:20:08 -0000 >Number: 159874 >Category: ports >Synopsis: [patch] sysutils/zfs-snapshot-mgmt: respect local timezone in offsets >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: Thu Aug 18 14:20:07 UTC 2011 >Closed-Date: >Last-Modified: >Originator: Test Rat >Release: FreeBSD 9.0-CURRENT amd64 >Organization: >Environment: >Description: POSIX time is stored in seconds since the Epoch the Epoch (00:00:00 UTC, January 1, 1970) without timezone difference. As now_minutes (Time.now.to_i) are in UTC so is `offset'. This is not intuitive as snapshot timestamps tank@auto-2011-08-17_16.00 are encoded in local time, not in UTC. So, apply local timezone difference to offsets when deciding what to preserve. from http://forums.freebsd.org/showthread.php?t=25717 >How-To-Repeat: $ TZ=UTC ruby19 -e 'print Time.now.to_i' 1313564400 $ TZ=Japan/Tokyo ruby19 -e 'print Time.now.to_i' 1313564400 $ TZ=UTC ruby19 -e 'print Time.mktime(2011,8,17,16,0).to_i / 60' 21893280 $ TZ=Asia/Tokyo ruby19 -e 'print Time.mktime(2011,8,17,16,0).to_i / 60' 21892740 >Fix: --- a.diff begins here --- Index: sysutils/zfs-snapshot-mgmt/files/patch-zfs-snapshot-mgmt =================================================================== RCS file: /a/.csup/ports/sysutils/zfs-snapshot-mgmt/files/patch-zfs-snapshot-mgmt,v retrieving revision 1.1 diff -u -p -r1.1 patch-zfs-snapshot-mgmt --- sysutils/zfs-snapshot-mgmt/files/patch-zfs-snapshot-mgmt 11 Jan 2010 03:42:14 -0000 1.1 +++ sysutils/zfs-snapshot-mgmt/files/patch-zfs-snapshot-mgmt 17 Aug 2011 18:13:47 -0000 @@ -1,5 +1,14 @@ ---- zfs-snapshot-mgmt~ -+++ zfs-snapshot-mgmt +--- zfs-snapshot-mgmt.orig 2011-08-17 00:15:42.801630764 +0400 ++++ zfs-snapshot-mgmt 2011-08-17 00:20:17.751629671 +0400 +@@ -44,7 +44,7 @@ class Rule + def initialize(args = {}) + args = { 'offset' => 0 }.merge(args) + @at_multiple = args['at_multiple'].to_i +- @offset = args['offset'].to_i ++ @offset = args['offset'].to_i - $utc_offset + end + + def condition_met?(time_minutes) @@ -154,7 +154,11 @@ class FSInfo end @@ -12,3 +21,11 @@ end private +@@ -194,6 +198,7 @@ class Config + + end + ++$utc_offset = Time.now.utc_offset / 60 + config_yaml = File.open(CONFIG_FILE_NAME).read(CONFIG_SIZE_MAX) + die "Config file too long" if config_yaml.nil? + config = Config.new(YAML::load(config_yaml)) --- a.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted: