From owner-freebsd-geom@freebsd.org Mon Apr 17 04:52:14 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D8090D40649 for ; Mon, 17 Apr 2017 04:52:14 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C1B1B6C6 for ; Mon, 17 Apr 2017 04:52:14 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id v3H4qEBE071633 for ; Mon, 17 Apr 2017 04:52:14 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-geom@FreeBSD.org Subject: [Bug 218679] [geli] add a verify command Date: Mon, 17 Apr 2017 04:52:15 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: bin X-Bugzilla-Version: CURRENT X-Bugzilla-Keywords: patch X-Bugzilla-Severity: Affects Some People X-Bugzilla-Who: linimon@FreeBSD.org X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-geom@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: keywords Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2017 04:52:14 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D218679 Mark Linimon changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch --=20 You are receiving this mail because: You are the assignee for the bug.= From owner-freebsd-geom@freebsd.org Tue Apr 18 15:51:02 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 88B39D448DC for ; Tue, 18 Apr 2017 15:51:02 +0000 (UTC) (envelope-from kathy.wiley@digitalmicroinfo.com) Received: from IND01-BO1-obe.outbound.protection.outlook.com (mail-bo1ind01hn0221.outbound.protection.outlook.com [104.47.101.221]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "Microsoft IT SSL SHA2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E19E392 for ; Tue, 18 Apr 2017 15:51:01 +0000 (UTC) (envelope-from kathy.wiley@digitalmicroinfo.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NETORGFT2129243.onmicrosoft.com; s=selector1-digitalmicroinfo-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Egp8gr0QHOEjeiKrixAUGMCJeN/geHERFjoFLrmKmXA=; b=RjJFBnQV+DkMJYZgbUovr7/KNcTZm6cOpjqDN3pZenOGXEgma10zh+iHhv4emFvzNL39qGc/oeZInTd8N9bahvuNga4EtGDJRS8qhE7xxp8XABxzudTGO9WppbVqrDrJSnz0ycPMR6OFOhIK6NsTfBI8YGVjfIQcAi3N2wG+cqI= Received: from BM1PR01MB0050.INDPRD01.PROD.OUTLOOK.COM (10.164.128.146) by BM1PR01MB0052.INDPRD01.PROD.OUTLOOK.COM (10.164.128.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1034.10; Tue, 18 Apr 2017 15:50:57 +0000 Received: from BM1PR01MB0050.INDPRD01.PROD.OUTLOOK.COM ([10.164.128.146]) by BM1PR01MB0050.INDPRD01.PROD.OUTLOOK.COM ([10.164.128.146]) with mapi id 15.01.1034.013; Tue, 18 Apr 2017 15:50:57 +0000 From: Kathy Wiley To: "freebsd-geom@freebsd.org" Subject: SonicWall Users Thread-Topic: SonicWall Users Thread-Index: AdK4V8rAoTT9KcpqSzemh77dmmq0cA== Date: Tue, 18 Apr 2017 15:23:55 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: freebsd.org; dkim=none (message not signed) header.d=none;freebsd.org; dmarc=none action=none header.from=digitalmicroinfo.com; x-originating-ip: [49.207.50.179] x-microsoft-exchange-diagnostics: 1; BM1PR01MB0052; 7:byl02LnFHDzmtx4TtD1zgAUsn5ZIvHuuYC2Xcu+AEnj67kNx5q+Ti/EpoEdrBXJ08xDTS7enmir/sHN5tvbQiUYkClE9S0zNFPZdW3G7pAebBKF20pdRpqw8qPhRcPnVZqClwHGRAt4flWLGR4fSdvBBd6RASc3FUy3beehA/qvzP978sPKc1H+sty6/Sg6inRh1V4ZUtXes18qWwAB0N4oeMFLBSnw4C6uAtNbKPMt9IrzHvg+GEi1CqjvUSL+9RJNY9hiKkMvkVBGKO6Sx6tTqnA2qiXfgtMt8ix7jacwdeKyA5N069ngamgrDiEYpuRPQbXBurqaSxji5Pdu43g== x-ms-office365-filtering-correlation-id: d6eecb72-747c-433d-f231-08d48672b400 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201702085553020)(201702085551020)(201702085555020)(201702085554020); SRVR:BM1PR01MB0052; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(21748063052155); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040450)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(10201501046)(6041248)(201703131423075)(201702281528075)(201703061421075)(20161123555025)(20161123560025)(20161123564025)(20161123562025)(2016111802025)(6043046)(6072148); SRVR:BM1PR01MB0052; BCL:0; PCL:0; RULEID:; SRVR:BM1PR01MB0052; x-forefront-prvs: 028166BF91 x-forefront-antispam-report: SFV:SPM; SFS:(10009020)(6009001)(39840400002)(39850400002)(39410400002)(39400400002)(39450400003)(81166006)(7696004)(50986999)(6116002)(54356999)(2906002)(106356001)(3480700004)(790700001)(9406002)(102836003)(5660300001)(7116003)(33656002)(3846002)(6916009)(8936002)(25786009)(3280700002)(2351001)(122556002)(9326002)(9476002)(8676002)(5630700001)(6306002)(189998001)(7736002)(5640700003)(2900100001)(38730400002)(2501003)(54896002)(74316002)(7520500002)(3660700001)(55016002)(77096006)(6436002)(9686003)(66066001)(86362001)(53936002)(110136004)(6506006)(48640200003); DIR:OUT; SFP:1501; SCL:5; SRVR:BM1PR01MB0052; H:BM1PR01MB0050.INDPRD01.PROD.OUTLOOK.COM; FPR:; SPF:None; MLV:ovrspm; PTR:InfoNoRecords; LANG:en; spamdiagnosticoutput: 1:22 MIME-Version: 1.0 X-OriginatorOrg: digitalmicroinfo.com X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Apr 2017 15:23:55.5158 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 28a97400-0b4f-4ade-82f0-76a35ec0649a X-MS-Exchange-Transport-CrossTenantHeadersStamped: BM1PR01MB0052 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 15:51:02 -0000 Hello, Would you be interested in SonicWall Users Contact List for your marketing = campaigns? Information Fields: Name, Title, Email, Phone, Company Name, Physical Addre= ss, City, State, Zip Code, Country, Web Address, Employee Size, Revenue Siz= e and Industry. Let me know if you are interested and I will get back to you with the count= s, sample and pricing. Regards, Kathy Wiley Data Consultant To opt out, please reply with Leave Out in the Subject Line. From owner-freebsd-geom@freebsd.org Tue Apr 18 22:17:06 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5CA09D44FAA for ; Tue, 18 Apr 2017 22:17:06 +0000 (UTC) (envelope-from sobomax@sippysoft.com) Received: from mail-it0-x22f.google.com (mail-it0-x22f.google.com [IPv6:2607:f8b0:4001:c0b::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2FA25F22 for ; Tue, 18 Apr 2017 22:17:06 +0000 (UTC) (envelope-from sobomax@sippysoft.com) Received: by mail-it0-x22f.google.com with SMTP id 70so18883053ita.0 for ; Tue, 18 Apr 2017 15:17:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sippysoft-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:from:date:message-id:subject:to; bh=rcG7qpTNVmNFivsPsRtvfYRwJqzNWB02EqPzhxs5GAU=; b=eMreGF1CQEqmGuig1mEFK4+nGUBMDbsEQh8j8wsRzwmj0C5JD69xZ4eWWExlLTTt5C GFU2I40A38k4SUqPWYrTYXh1Ygem8NtvMeENnkGtDOLix33SbRYsKlEG2A36koN/6TMu 0OEiw0nQAfoMbwvvrGmB4E2Fj1WTnvg3XZRn23umSgSdPJctiNHiUewl9qnHbNLo3+3c t8PWaElp9jaZ5rBXchmCCdyKsCR+yGiyuI+3fa6Cc38UaH9l4tUNj8BmSAzHtkLrMiVV fjFI8qlNUtdYKunlTDXc/UnGdUkZRLDJKKK6ATlLGt7DKx6GOYrj4pEfYSjXmr/OvtMq BHNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:from:date:message-id:subject :to; bh=rcG7qpTNVmNFivsPsRtvfYRwJqzNWB02EqPzhxs5GAU=; b=aHNrXxFu/KCS8RigrpahDs3t0APhiArKGcKG5cpLIbZVg9kwIobbiS2Ig3hQ/Hxzxz ryw//+ISOhw0mxj/dQsp/mkCYO8acK5T3II8FROTZYBcUjxOUITHccMzYHxkC1I5fbwR /VQt/8XcsLxtKni9F8byjClDhRQYy/cnAjOv5QHkZYDYHPkwabWOmkGzHth15Do/cdid X/p4OJKj3FTU33nyAqFddw07YO6Am5NwhoqVIaOFizYPGllBLYobHe0MwVvKv/LD/K8Q sYpOOYZwpTXkmbDNEyJk1RM6XSB5zvLsbbKGn8rpf6uN/m9fyQ4C/4RoFcshi6uGA7QH kLeQ== X-Gm-Message-State: AN3rC/77sbKiurMSS/T6Wuza9BdlwitA13FD6jxRtZjQ/x8OLF69C31L KcxozRkSpD4P9xRVmOycK24VEJ7CCev9 X-Received: by 10.36.85.148 with SMTP id e142mr17545391itb.106.1492553825413; Tue, 18 Apr 2017 15:17:05 -0700 (PDT) MIME-Version: 1.0 Sender: sobomax@sippysoft.com Received: by 10.36.102.193 with HTTP; Tue, 18 Apr 2017 15:17:04 -0700 (PDT) From: Maxim Sobolev Date: Tue, 18 Apr 2017 15:17:04 -0700 X-Google-Sender-Auth: Vhtki5Idxd2OhwBuHtG5JbDzUbo Message-ID: Subject: The geom_raid(8) is not load-balancing reads across all available subdisks To: freebsd-geom@freebsd.org, Alexander Motin , "M. Warner Losh" Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Apr 2017 22:17:06 -0000 Hi, I've got curious as to why running the build on my machine on top of the RAID1 volume seems to prefer loading one of the drives for reading. Digging into the code I found this: prio += (G_RAID_SUBDISK_S_ACTIVE - sd->sd_state) << 16; /* If disk head is precisely in position - highly prefer it. */ if (G_RAID_SUBDISK_POS(sd) == bp->bio_offset) prio -= 2 * G_RAID_SUBDISK_LOAD_SCALE; else /* If disk head is close to position - prefer it. */ if (ABS(G_RAID_SUBDISK_POS(sd) - bp->bio_offset) < G_RAID_SUBDISK_TRACK_SIZE) prio -= 1 * G_RAID_SUBDISK_LOAD_SCALE; if (prio < bestprio) { best = sd; bestprio = prio; } Both my drives in RAID are SSDs, so I am wondering if this might be the cause. On one hand SSDs can still have some internal buffer to cache the nearby data blocks, on the other hand it's really difficult to define how far that buffer might extend now and few years from now. On top of that, single SATA link is likely to be bottleneck in today's systems (esp with Intel XPoint) to get the data into the RAM, so perhaps ripping off this optimization for good and just round robin requests between all available subdsks would be a better strategy going forward? -Max From owner-freebsd-geom@freebsd.org Wed Apr 19 03:47:13 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 54E3BD448A4 for ; Wed, 19 Apr 2017 03:47:13 +0000 (UTC) (envelope-from steven@multiplay.co.uk) Received: from mail-oi0-x235.google.com (mail-oi0-x235.google.com [IPv6:2607:f8b0:4003:c06::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 21DC3C6B for ; Wed, 19 Apr 2017 03:47:12 +0000 (UTC) (envelope-from steven@multiplay.co.uk) Received: by mail-oi0-x235.google.com with SMTP id r203so13958144oib.3 for ; Tue, 18 Apr 2017 20:47:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=multiplay-co-uk.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=pFsR746tgOG5R6GUpsFQ851qapRi11vOyvR+Crr7d8w=; b=WvZ+Z3oZOOFSz5G14Xpn6/OM44/1Ov0RTjrzWtjQ4bIveghZmdALpditqQJTb2Wbjh 4EQ7ciwmM2kBLk56eGWQupOsO0G7jhrVhzSRNTDUnfwsn4pV43/Tkd9vYJpOiVuagd+a Prm+RB0ooBzbKixEC1xFL029ZwNfNy5L8OkNL77A1aVOXrBG35CFsUTJc/8sy9wY+lEo /5c478U9Acm1djNCnUwK/bzfl1jsHjUq0iVvlmJnd6VoQbD/rmro2uYizmFfqqiAwbNa qVOfqrIRG6CSstX8y7OFyQLjwAf5KfwSXE5QPpUkZP9dg+Wo2lk6eyqQlyJk0IubDoty pa8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=pFsR746tgOG5R6GUpsFQ851qapRi11vOyvR+Crr7d8w=; b=aJJq4fhqp0N4f/gVS32pAQ2jmayE80/KBxuYzAaz1O2fFvS0n2l0dqbhJmHdAByXuk NrMATy/4Rv3M1qgkFAowkwyvQW52wxl2GEOqGTIYo8mQxKREA1mdJoFviOhwnk2TeOCj DS38X5ZR/HEt+G5ZbLH2uUNYjS6FxDBe1QK7MSBqbSsQSDZou07oGAkumrkfIb5wTPjT JZzZ2PHU7lp8UR+h3S2xcLzcKQvKNJwqGE5t/RSylH7vhZNCL1e7ZJpoEgAbBURXz6gB a9emgwLgpLhMcjXP9MVEGYc5GUNV4JgncmibQ7QHCWhGdD1w6z67qd08yIRFDXHubRiz 9FpQ== X-Gm-Message-State: AN3rC/4+3U3mJRhqiRayRG1JzhAtV50LT8RLSykgpM0HvndwmZDDqlud 5RfEUSfFNC5tPjzfwUO2ZC1GzwTPlScu X-Received: by 10.157.5.106 with SMTP id 97mr371057otw.227.1492573632056; Tue, 18 Apr 2017 20:47:12 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Steven Hartland Date: Wed, 19 Apr 2017 03:47:01 +0000 Message-ID: Subject: Re: The geom_raid(8) is not load-balancing reads across all available subdisks To: Alexander Motin , "M. Warner Losh" , Maxim Sobolev , freebsd-geom@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 03:47:13 -0000 In ZFS we look at the rotational property of the disk as well when calculating which device to read from, which grave a significant performance increase. See: https://svnweb.freebsd.org/base?view=revision&revision=256956 On Tue, 18 Apr 2017 at 23:17, Maxim Sobolev wrote: > Hi, I've got curious as to why running the build on my machine on top of > the RAID1 volume seems to prefer loading one of the drives for reading. > Digging into the code I found this: > > prio += (G_RAID_SUBDISK_S_ACTIVE - sd->sd_state) << 16; > /* If disk head is precisely in position - highly prefer > it. */ > if (G_RAID_SUBDISK_POS(sd) == bp->bio_offset) > prio -= 2 * G_RAID_SUBDISK_LOAD_SCALE; > else > /* If disk head is close to position - prefer it. */ > if (ABS(G_RAID_SUBDISK_POS(sd) - bp->bio_offset) < > G_RAID_SUBDISK_TRACK_SIZE) > prio -= 1 * G_RAID_SUBDISK_LOAD_SCALE; > if (prio < bestprio) { > best = sd; > bestprio = prio; > } > > Both my drives in RAID are SSDs, so I am wondering if this might be the > cause. On one hand SSDs can still have some internal buffer to cache the > nearby data blocks, on the other hand it's really difficult to define how > far that buffer might extend now and few years from now. On top of that, > single SATA link is likely to be bottleneck in today's systems (esp with > Intel XPoint) to get the data into the RAM, so perhaps ripping off this > optimization for good and just round robin requests between all available > subdsks would be a better strategy going forward? > > -Max > _______________________________________________ > freebsd-geom@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-geom > To unsubscribe, send any mail to "freebsd-geom-unsubscribe@freebsd.org" > From owner-freebsd-geom@freebsd.org Wed Apr 19 14:58:28 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 330C0D455AD for ; Wed, 19 Apr 2017 14:58:28 +0000 (UTC) (envelope-from plissonneau@allianz-caraibe.fr) Received: from luna.resot.net (luna.resot.net [217.175.160.19]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (Client CN "*.resot.net", Issuer "*.resot.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 22F0B111B for ; Wed, 19 Apr 2017 14:58:26 +0000 (UTC) (envelope-from plissonneau@allianz-caraibe.fr) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2F+RACyefdY/xlAPm1cGwEBARUBAQEEAQEBBoNBgUcFhAeLCBiQN0sBhHKSVAcBih9EFAECAQEBAQEBAQNoKIU/GhlfDxICBA0qMIk8ZgIBAZlekAiCJotND4QghEaBOIZOAoI4LoIxBYk0hxKMaQFrgxyCEYF5il2BdQEXhTGJW0CUDwI2Il8CARIRZ4RogmyJcAEBAQ X-IPAS-Result: A2F+RACyefdY/xlAPm1cGwEBARUBAQEEAQEBBoNBgUcFhAeLCBiQN0sBhHKSVAcBih9EFAECAQEBAQEBAQNoKIU/GhlfDxICBA0qMIk8ZgIBAZlekAiCJotND4QghEaBOIZOAoI4LoIxBYk0hxKMaQFrgxyCEYF5il2BdQEXhTGJW0CUDwI2Il8CARIRZ4RogmyJcAEBAQ Received: from 109-62-64-25.th2.infra.outremer-telecom.fr (HELO th2-zimbraproxyent-01.mail.omt.local) ([109.62.64.25]) by luna.resot.net with ESMTP; 19 Apr 2017 14:57:15 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by th2-zimbraproxyent-01.mail.omt.local (Postfix) with ESMTP id E89E1607CA for ; Wed, 19 Apr 2017 14:57:14 +0000 (UTC) Received: from th2-zimbraproxyent-01.mail.omt.local ([127.0.0.1]) by localhost (th2-zimbraproxyent-01.mail.omt.local [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id ZST2PG0qSDGG for ; Wed, 19 Apr 2017 14:57:14 +0000 (UTC) Received: from localhost (localhost.localdomain [127.0.0.1]) by th2-zimbraproxyent-01.mail.omt.local (Postfix) with ESMTP id 9542E6033D for ; Wed, 19 Apr 2017 14:56:13 +0000 (UTC) X-Virus-Scanned: amavisd-new at th2-zimbraproxyent-01.mail.omt.local Received: from th2-zimbraproxyent-01.mail.omt.local ([127.0.0.1]) by localhost (th2-zimbraproxyent-01.mail.omt.local [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 1R2IDhno1Bok for ; Wed, 19 Apr 2017 14:56:13 +0000 (UTC) Received: from pc24 (r186-49-70-89.dialup.adsl.anteldata.net.uy [186.49.70.89]) by th2-zimbraproxyent-01.mail.omt.local (Postfix) with ESMTPSA id 5B0B960386 for ; Wed, 19 Apr 2017 14:55:27 +0000 (UTC) From: "=?ISO-8859-1?Q?Fletcher=2C_Jolene_F.?=" To: freebsd-geom@freebsd.org Subject: =?UTF-8?Q?Fletcher=2C_Jolene_F.?= Date: Wed, 19 Apr 2017 11:55:26 -0300 MIME-Version: 1.0 X-mailer: Netscape Messenger 233. Content-type: Multipart/mixed; boundary="------------231374279161240623636287" Content-Description: Multipart message Message-Id: <20170419145527.5B0B960386@th2-zimbraproxyent-01.mail.omt.local> X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 14:58:28 -0000 --------------231374279161240623636287 Content-type: text/plain; charset=UTF-8 Content-Disposition: inline Content-Description: Message text Content-Transfer-Encoding: quoted-printable Good morning Here is the invoice.=20 Password is Tg54RGrxM You have to type it to access the attached file. Please inform me the answer soon Fletcher, Jolene F. --------------231374279161240623636287 Content-type: application/octet-stream; name="i-88gs08az12f.docx" Content-Transfer-Encoding: Base64 Content-Disposition: attachment; FileName="i-88gs08az12f.docx" Content-Description: Attached file: i-88gs08az12f.docx 0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAAEAAAAAQAAAAAA AAAAEAAAAgAAAAEAAAD+////AAAAAAAAAAAHAAAACAAAAAkAAAD///////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// ///////////////////////////////////9////BAAAAP7///8GAAAABQAAAGsAAABpAAAA /f////3////9////CwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUA AAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAA IwAAACQAAAAlAAAAJgAAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAALwAAADAA AAAxAAAAMgAAADMAAAA0AAAANQAAADYAAAA3AAAAOAAAADkAAAA6AAAAOwAAADwAAAA9AAAA PgAAAD8AAABAAAAAQQAAAEIAAABDAAAARAAAAEUAAABGAAAARwAAAEgAAABJAAAASgAAAEsA AABMAAAATQAAAE4AAABPAAAAUAAAAFEAAABSAAAAUwAAAFQAAABVAAAAVgAAAFcAAABYAAAA WQAAAFoAAABbAAAAXAAAAF0AAABeAAAAXwAAAGAAAABhAAAAYgAAAGMAAABkAAAAZQAAAGYA AABnAAAAaAAAAP7///9qAAAAbAAAAP7////+//////////////////////////////////// /////////////////////////////////////////////////////////////////////1IA bwBvAHQAIABFAG4AdAByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAWAAUA//////////8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBX l/afuNIBAwAAAAAJAAAAAAAARQBuAGMAcgB5AHAAdABlAGQAUABhAGMAawBhAGcAZQAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIAAgD///////////////8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAyL0AAAAAAAAGAEQAYQB0AGEAUwBwAGEA YwBlAHMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAABAf// ////////BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwM569p+40gGwGH32n7jSAQAAAAAAAAAA AAAAAFYAZQByAHMAaQBvAG4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAQAAIB////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAAAQAAAP7///8DAAAA/v////7///8GAAAABwAAAAgA AAD+////CgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAA FgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAD+////HwAAACIAAAAhAAAAIwAAAP7/ ///+//////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////88AAAA TQBpAGMAcgBvAHMAbwBmAHQALgBDAG8AbgB0AGEAaQBuAGUAcgAuAEQAYQB0AGEAUwBwAGEA YwBlAHMAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAgAAAABAAAAaAAAAAEAAAAAAAAAIAAAAEUAbgBjAHIAeQBwAHQA ZQBkAFAAYQBjAGsAYQBnAGUAMgAAAFMAdAByAG8AbgBnAEUAbgBjAHIAeQBwAHQAaQBvAG4A RABhAHQAYQBTAHAAYQBjAGUAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAEAAAAyAAAAUwB0AHIA bwBuAGcARQBuAGMAcgB5AHAAdABpAG8AbgBUAHIAYQBuAHMAZgBvAHIAbQAAAFgAAAABAAAA TAAAAHsARgBGADkAQQAzAEYAMAAzAC0ANQA2AEUARgAtADQANgAxADMALQBCAEQARAA1AC0A NQBBADQAMQBDADEARAAwADcAMgA0ADYAfQBOAAAATQBpAGMAcgBvAHMAbwBmAHQALgBDAG8A bgB0AGEAaQBuAGUAcgAuAEUAbgBjAHIAeQBwAHQAaQBvAG4AVAByAGEAbgBzAGYAbwByAG0A AAABAAAAAQAAAAEAAAAAAAAAAAAAAEQAYQB0AGEAUwBwAGEAYwBlAE0AYQBwAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAIBAwAAAAUAAAD/////AAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAHAAAAAAAAAARABhAHQAYQBTAHAA YQBjAGUASQBuAGYAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwA AQH/////BwAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDOevafuNIBsBh99p+40gEAAAAA AAAAAAAAAABTAHQAcgBvAG4AZwBFAG4AYwByAHkAcAB0AGkAbwBuAEQAYQB0AGEAUwBwAGEA YwBlAAAAAAAAAAAAAAAAAAAANAACAf///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAQAAABAAAAAAAAAAFQAcgBhAG4AcwBmAG8AcgBtAEkAbgBmAG8A AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAEA//////////8IAAAA AAAAAAAAAAAAAAAAAAAAAAAAAACwGH32n7jSAbAYffafuNIBAAAAAAAAAAAAAAAAUwB0AHIA bwBuAGcARQBuAGMAcgB5AHAAdABpAG8AbgBUAHIAYQBuAHMAZgBvAHIAbQAAAAAAAAAAAAAA AAAAADQAAQH//////////wkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAYffafuNIBsBh99p+4 0gEAAAAAAAAAAAAAAAAGAFAAcgBpAG0AYQByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgACAf///////////////wAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAADIAAAAAAAAAEUAbgBjAHIAeQBwAHQAaQBvAG4A SQBuAGYAbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAIBAgAAAAsA AAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAkFAAAAAAAA BQBTAHUAbQBtAGEAcgB5AEkAbgBmAG8AcgBtAGEAdABpAG8AbgAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAACgAAgEBAAAADAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAeAAAApAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAEAAAAA8P3htbCB2ZXJzaW9uPSIx LjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+DQo8ZW5jcnlwdGlvbiB4 bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAwNi9lbmNyeXB0 aW9uIiB4bWxuczpwPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA2 L2tleUVuY3J5cHRvci9wYXNzd29yZCIgeG1sbnM6Yz0iaHR0cDovL3NjaGVtYXMubWljcm9z b2Z0LmNvbS9vZmZpY2UvMjAwNi9rZXlFbmNyeXB0b3IvY2VydGlmaWNhdGUiPjxrZXlEYXRh IHNhbHRTaXplPSIxNiIgYmxvY2tTaXplPSIxNiIga2V5Qml0cz0iMjU2IiBoYXNoU2l6ZT0i NjQiIGNpcGhlckFsZ29yaXRobT0iQUVTIiBjaXBoZXJDaGFpbmluZz0iQ2hhaW5pbmdNb2Rl Q0JDIiBoYXNoQWxnb3JpdGhtPSJTSEE1MTIiIHNhbHRWYWx1ZT0iUVRjZnowMP////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// /////////////////////7m9AAAAAAAA1apNzAfZHi43KgkQera3RoVDw2Or7J7BB41Aeei1 TJ6DO6/Tg1qLeZEnOMOm58/kuWDPIh1hJv0QCLWq/KgWfeD7EnVeRTyDVh0MpSs4nVX6icpA ru8Hjnt90+1lptau5Gyh/pKoCU8sozWiTEBBujv9XEjNrL4yns2WiA+5l5w3Efb/so8yBu9f nKiAh2rcE7R0Ym+V41SavT2Scrk1bqsocyI8jw7yc6Hx84dlv87e2SyiIc2isd4/FCr7egYJ gEP9wP883XEW3hUGL5IFNIpKj3Ui4o2yYzTFS5sRK5JMah66kWVjnUFs6gsh3x/XIylNheu3 i49VyFuO9rD2QIFFhwfu4PpHusQO42LbZlZh6xXLMeGt9TIaLwVlxyaJytGCJAeCOGeJKn3/ xJU//1SzPuZV8ba3kIWpk92PWrqVWZHn1/6weWF7gpr43PKZOvXZOnL0Xp2eK6ErkqM7B79O tPjZ52joDQEhjSuREdlZMA7qrNn/a5ajhz3G7oDBvGdWSPzeCIoLWiqgSmjoQB/eezMcIUl7 2T6ePsGfV6E8mV0XHvQE+7Owc1IKZe2CrnXnA9+bbPmGBzEQhC9MALn/R8R9vt9JbOkMyxNK Bb4wLQsF8bgcyrVA7Zr3F1rCn4U4dwPTa/0jpY9/NNIuJO1BNoE3pHGiHh8iqMX3ne1/vCcO tvgO8MlBZ4KYCmJLN8lJPF9Z77y9ntf3XnkwEG8XjpbiAG59DpbaMWGL319CQhb+s6CV0F4o sQ3mCG81IbLl9ngaEcFMgadAYhEx4iK6UtKKBMXg1GvmVxVsDAUwIhzK/OP1gNTlniNuR9uO hHCzmqRWvQsU+KeeYUZNSqvC8xfdIXO1arlKgwu+F9W0R7t7PvaDOmzbMxVl7lZz7SE7dVKv CZl58sdQpbtUWPetO4vm/we5Ps4qulxkEGzE75KZ0zS+5fMTq2Gc36PIYPH6+KgyBAR+Ch1Z 7Ov1RYc3+xWksJiua+4fQMM4GjKlTwSpV+7/8mO/9BgLppUfvMrnCQsR57CNE+O4WpOGeLmX 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 NCIvvvEFUtxKqZb1nYfKb6nkqmLCfBzxmyjeAnwCIcGrCL6X8csqAEzNhmDnrIlPYC5MpsuT UL8Cw4nk2MPlXAQqnMiNumiq1nQ2LnFlWyVdFwp5UQNS432Yl1ePTjN8Dnbq3UGR+jYFPuDT sExuZFB6YXlUT2k1SkVjV2c9PSIvPjxkYXRhSW50ZWdyaXR5IGVuY3J5cHRlZEhtYWNLZXk9 IkFoaHRFMmZkcjZTODZHakZ4TzgwMXZENjJzcnFjQ054NVJzMk9oVGJmTktrVzNhZzNBcHBo TXYvMDZ6QVBaK0pWaHovaGhISURDK2RpRGYvSUN1L0t3PT0iIGVuY3J5cHRlZEhtYWNWYWx1 ZT0iYTUvR29USmVUOFNRbERaNDFIWkthazlHeXhWN2JVNW01ZXFtT0JVZmFvSEJoVnNXcXpi SmYyRzZFallvT2oydlEvYjJjZmJ2L2U4NzM3WnpxTHJNUVE9PSIvPjxrZXlFbmNyeXB0b3Jz PjxrZXlFbmNyeXB0b3IgdXJpPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmlj ZS8yMDA2L2tleUVuY3J5cHRvci9wYXNzd29yZCI+PHA6ZW5jcnlwdGVkS2V5IHNwaW5Db3Vu dD0iMTAwMDAwIiBzYWx0U2l6ZT0iMTYiIGJsb2NrU2l6ZT0iMTYiIGtleUJpdHM9IjI1NiIg aGFzaFNpemU9IjY0IiBjaXBoZXJBbGdvcml0aG09IkFFUyIgY2lwaGVyQ2hhaW5pbmc9IkNo YWluaW5nTW9kZUNCQyIgaGFzaEFsZ29yaXRobT0iU0hBNTEyIiBzYWx0VmFsdWU9IkZta0Nq ZzZWRitsaVUybEt4d0JRSGc9PSIgZW5jcnlwdGVkVmVyaWZpZXJIYXNoSW5wdXQ9Ino0b0tr M0pMb1RyOXVjdmpFQmZOenc9PSIgZW5jcnlwdGVkVmVyaWZpZXJIYXNoVmFsdWU9IkdvTlJj NTBsU3FiTHZzbldLWTYrTlRzbkk1L0JXS3ZjVDAxeDU0ZnhYejZwTnVURFJpSndXTUFLWXRM aTY4MnBIMERGRXBmdGNNUnV6ak5PdnRJRlJnPT0iIGVuY3J5cHRlZEtleVZhbHVlPSJUMkFz TUJwKzZJN2lLaVhZUUVLQzA0dmhqTmhXNzNuVU9kYUp4WFk2M3pZPSIvPjwva2V5RW5jcnlw dG9yPjwva2V5RW5jcnlwdG9ycz48L2VuY3J5cHRpb24+AAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7/AAAGAQIAAAAAAAAAAAAAAAAA AAAAAAEAAADghZ/y+U9oEKuRCAArJ7PZMAAAAHQAAAAEAAAAAQAAACgAAAAAAACAMAAAAAgA AAA4AAAABAAAAFgAAAACAAAAsAQAABMAAAAJBAAAHwAAAAwAAABvAHUAdABuAHUAbQBiAGUA BQBEAG8AYwB1AG0AZQBuAHQAUwB1AG0AbQBhAHIAeQBJAG4AZgBvAHIAbQBhAHQAaQBvAG4A AAAAAAAAAAAAADgAAgD///////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAgAAAAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////////wAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/wAABgECAAAAAAAAAAAAAAAAAAAAAAABAAAA AtXN1ZwuGxCTlwgAKyz5rjAAAABYAAAAAwAAAAEAAAAoAAAAAAAAgDAAAAAPAAAAOAAAAAAA AAAAAAAAAgAAALAEAAATAAAACQQAAB8AAAALAAAAdAByAHUAbgBkAGwAaQBuAHIAcwAgAAAA HwAAAAoAAABwAHIAbwBtAG8AdABlAGQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AABnACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== --------------231374279161240623636287-- From owner-freebsd-geom@freebsd.org Thu Apr 20 09:48:47 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CEC84D4782F for ; Thu, 20 Apr 2017 09:48:47 +0000 (UTC) (envelope-from sobomax@sippysoft.com) Received: from mail-io0-x231.google.com (mail-io0-x231.google.com [IPv6:2607:f8b0:4001:c06::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9A736177 for ; Thu, 20 Apr 2017 09:48:47 +0000 (UTC) (envelope-from sobomax@sippysoft.com) Received: by mail-io0-x231.google.com with SMTP id k87so63200348ioi.0 for ; Thu, 20 Apr 2017 02:48:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sippysoft-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=sw5ttKX0EIYZzuz0Mo5g3qhsklNWHv2P5CMDHQSPYGg=; b=Usi0OFVzOefW4OswRv6HFLgWtxc839/w0WF0PkdDoZy2KBPE5OZv0A843kvfInnbke WlEg66kR49knhB/NFEYCGab6tWFtu8rq4dNsMfwVJboAn2ozNduHBVpkAM8VdfZVwgaK bkc4VroVzY+eaCkYfo28Vvzb4AAKfMRvbz5Vh9rVFQHx/qfRpnyNm5i3UaT2yhZzZfCI AuOE2V8GazsD6TZf/iHUubirzsTqd2ZvcP2Xb5MNXIp0svPGjNI+gWrr+vwG3ZgMZVsT iGlYeQOyGYugjaK0ZNgeGOILOR0z/SFH2Wye6sfXR2rXP5Kd1tfNYCx++PI8yes2BRIO GHPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=sw5ttKX0EIYZzuz0Mo5g3qhsklNWHv2P5CMDHQSPYGg=; b=uZpweOlshCirlEIQGej9OAeejfWU55qWBpqP3Afm/uK2cqyR4tMGgGd7ZY/z2cqxdO mlm9OdgvVllKwaOGXExzxJ0wrFmVNRKeO2hrdOBNIPLq3GMEOr9rmpk7hrC2vw/orxlk ePgyK+Jj3vJXSTrRptUfFaUryVkikcSqeaPkTN8qYYej8MRoMQdijeY/6AOOZBJfxs3a YXkxD+lXUh0DySQG38UHNgq66xmlBCqxh1fKts+5MKIc2qeuHgvJ6aDZhYIsAeGs6oIj mg2vH+JOjGLUcXjfiMSL3CUIkaTVcjx6QBrOvQLvKXpDNF7hUN8mE2WQF7oUDh7VzNY+ TwaA== X-Gm-Message-State: AN3rC/5ojFKaow2QtrwNB22WGfwn9C/LyLa3Yo9SU4WsNSCqXMKyVV+a 7Opr3GC33652WYsPIG5jnwIAHzj/WJqOPRQ= X-Received: by 10.107.138.7 with SMTP id m7mr7848889iod.133.1492681726005; Thu, 20 Apr 2017 02:48:46 -0700 (PDT) MIME-Version: 1.0 Sender: sobomax@sippysoft.com Received: by 10.36.102.193 with HTTP; Thu, 20 Apr 2017 02:48:45 -0700 (PDT) In-Reply-To: References: From: Maxim Sobolev Date: Thu, 20 Apr 2017 02:48:45 -0700 X-Google-Sender-Auth: xWulj8sKC6dOW3WnkM89W9ild5Y Message-ID: Subject: Re: The geom_raid(8) is not load-balancing reads across all available subdisks To: Steven Hartland Cc: Alexander Motin , "M. Warner Losh" , freebsd-geom@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2017 09:48:47 -0000 Steven, thanks for the link but unless I missed something, that benchmark actually talks about spinning disks (2 x HD's and 1 x SSD). My whole point was that in the era when spinning disks are quickly approaching technical obsolescence all those optimizations might easily turn into pessimizations at least for some users and the share of those users is only going to get bigger, not smaller with time. -Max On Tue, Apr 18, 2017 at 8:47 PM, Steven Hartland wrote: > In ZFS we look at the rotational property of the disk as well when > calculating which device to read from, which grave a significant > performance increase. > > See: https://svnweb.freebsd.org/base?view=revision&revision=256956 > > > On Tue, 18 Apr 2017 at 23:17, Maxim Sobolev wrote: > >> Hi, I've got curious as to why running the build on my machine on top of >> the RAID1 volume seems to prefer loading one of the drives for reading. >> Digging into the code I found this: >> >> prio += (G_RAID_SUBDISK_S_ACTIVE - sd->sd_state) << 16; >> /* If disk head is precisely in position - highly prefer >> it. */ >> if (G_RAID_SUBDISK_POS(sd) == bp->bio_offset) >> prio -= 2 * G_RAID_SUBDISK_LOAD_SCALE; >> else >> /* If disk head is close to position - prefer it. */ >> if (ABS(G_RAID_SUBDISK_POS(sd) - bp->bio_offset) < >> G_RAID_SUBDISK_TRACK_SIZE) >> prio -= 1 * G_RAID_SUBDISK_LOAD_SCALE; >> if (prio < bestprio) { >> best = sd; >> bestprio = prio; >> } >> >> Both my drives in RAID are SSDs, so I am wondering if this might be the >> cause. On one hand SSDs can still have some internal buffer to cache the >> nearby data blocks, on the other hand it's really difficult to define how >> far that buffer might extend now and few years from now. On top of that, >> single SATA link is likely to be bottleneck in today's systems (esp with >> Intel XPoint) to get the data into the RAM, so perhaps ripping off this >> optimization for good and just round robin requests between all available >> subdsks would be a better strategy going forward? >> >> -Max >> _______________________________________________ >> freebsd-geom@freebsd.org mailing list >> https://lists.freebsd.org/mailman/listinfo/freebsd-geom >> To unsubscribe, send any mail to "freebsd-geom-unsubscribe@freebsd.org" >> > From owner-freebsd-geom@freebsd.org Fri Apr 21 07:17:05 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B56C6D490DD for ; Fri, 21 Apr 2017 07:17:05 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A4F0E12F3 for ; Fri, 21 Apr 2017 07:17:05 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id v3L7H5M1055675 for ; Fri, 21 Apr 2017 07:17:05 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-geom@FreeBSD.org Subject: [Bug 218512] Geli arbitrarily prevents setting passphrases Date: Fri, 21 Apr 2017 07:17:05 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Many People X-Bugzilla-Who: commit-hook@freebsd.org X-Bugzilla-Status: In Progress X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-geom@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 07:17:05 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D218512 --- Comment #6 from commit-hook@freebsd.org --- A commit references this bug: Author: mav Date: Fri Apr 21 07:16:08 UTC 2017 New revision: 317246 URL: https://svnweb.freebsd.org/changeset/base/317246 Log: Always allow setting number of iterations for the first time. Before this change it was impossible to set number of PKCS#5v2 iterations, required to set passphrase, if it has two keys and never had any passphra= se. Due to present metadata format limitations there are still cases when num= ber of iterations can not be changed, but now it works in cases when it can. PR: 218512 MFC after: 2 weeks Sponsored by: iXsystems, Inc. Differential Revision: https://reviews.freebsd.org/D10338 Changes: head/sbin/geom/class/eli/geom_eli.c head/sys/geom/eli/g_eli_ctl.c --=20 You are receiving this mail because: You are the assignee for the bug.= From owner-freebsd-geom@freebsd.org Fri Apr 21 07:21:33 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 01C20D4918A for ; Fri, 21 Apr 2017 07:21:33 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E5E2815E5 for ; Fri, 21 Apr 2017 07:21:32 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id v3L7LWVB063605 for ; Fri, 21 Apr 2017 07:21:32 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-geom@FreeBSD.org Subject: [Bug 218512] Geli arbitrarily prevents setting passphrases Date: Fri, 21 Apr 2017 07:21:33 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Many People X-Bugzilla-Who: mav@FreeBSD.org X-Bugzilla-Status: In Progress X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-geom@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 07:21:33 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D218512 --- Comment #7 from Alexander Motin --- With the lack of feedback I decided to commit my change as much more simple= and sufficient for most cases. If there is still wish to improve metadata form= at to make ELI more functional -- welcome, but that is a separate and IMO less critical task now. --=20 You are receiving this mail because: You are the assignee for the bug.= From owner-freebsd-geom@freebsd.org Fri Apr 21 07:44:50 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7DB0BD49A85 for ; Fri, 21 Apr 2017 07:44:50 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6D81AD42 for ; Fri, 21 Apr 2017 07:44:50 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id v3L7ioZZ020482 for ; Fri, 21 Apr 2017 07:44:50 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-geom@FreeBSD.org Subject: [Bug 196834] geli setkey -P doesn't reset md_iterations Date: Fri, 21 Apr 2017 07:44:50 +0000 X-Bugzilla-Reason: AssignedTo CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: bin X-Bugzilla-Version: 10.1-RELEASE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: commit-hook@freebsd.org X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-geom@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 07:44:50 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D196834 --- Comment #2 from commit-hook@freebsd.org --- A commit references this bug: Author: mav Date: Fri Apr 21 07:43:44 UTC 2017 New revision: 317247 URL: https://svnweb.freebsd.org/changeset/base/317247 Log: Dump md_iterations as signed, which it really is. PR: 208305 PR: 196834 MFC after: 2 weeks Changes: head/sys/geom/eli/g_eli.h --=20 You are receiving this mail because: You are the assignee for the bug. You are on the CC list for the bug.= From owner-freebsd-geom@freebsd.org Fri Apr 21 07:44:48 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BCD21D49A76 for ; Fri, 21 Apr 2017 07:44:48 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AC7DDD3C for ; Fri, 21 Apr 2017 07:44:48 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id v3L7im93020417 for ; Fri, 21 Apr 2017 07:44:48 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-geom@FreeBSD.org Subject: [Bug 208305] [patch] geli(8): Negative iterations values dumped incorrectly Date: Fri, 21 Apr 2017 07:44:48 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: bin X-Bugzilla-Version: CURRENT X-Bugzilla-Keywords: patch X-Bugzilla-Severity: Affects Some People X-Bugzilla-Who: commit-hook@freebsd.org X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-bugs@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 07:44:48 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D208305 --- Comment #2 from commit-hook@freebsd.org --- A commit references this bug: Author: mav Date: Fri Apr 21 07:43:44 UTC 2017 New revision: 317247 URL: https://svnweb.freebsd.org/changeset/base/317247 Log: Dump md_iterations as signed, which it really is. PR: 208305 PR: 196834 MFC after: 2 weeks Changes: head/sys/geom/eli/g_eli.h --=20 You are receiving this mail because: You are on the CC list for the bug.= From owner-freebsd-geom@freebsd.org Fri Apr 21 07:55:20 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6CC97D49E37 for ; Fri, 21 Apr 2017 07:55:20 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5C3E114DE for ; Fri, 21 Apr 2017 07:55:20 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id v3L7tKgc042137 for ; Fri, 21 Apr 2017 07:55:20 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-geom@FreeBSD.org Subject: [Bug 208305] [patch] geli(8): Negative iterations values dumped incorrectly Date: Fri, 21 Apr 2017 07:55:20 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: bin X-Bugzilla-Version: CURRENT X-Bugzilla-Keywords: patch X-Bugzilla-Severity: Affects Some People X-Bugzilla-Who: mav@FreeBSD.org X-Bugzilla-Status: Closed X-Bugzilla-Resolution: FIXED X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-bugs@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_status resolution cc Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 07:55:20 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D208305 Alexander Motin changed: What |Removed |Added ---------------------------------------------------------------------------- Status|New |Closed Resolution|--- |FIXED CC| |mav@FreeBSD.org --=20 You are receiving this mail because: You are on the CC list for the bug.= From owner-freebsd-geom@freebsd.org Fri Apr 21 18:34:43 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CEF70D49782 for ; Fri, 21 Apr 2017 18:34:43 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BE5371F4C for ; Fri, 21 Apr 2017 18:34:43 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LIYhCp087991 for ; Fri, 21 Apr 2017 18:34:43 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-geom@FreeBSD.org Subject: [Bug 218512] Geli arbitrarily prevents setting passphrases Date: Fri, 21 Apr 2017 18:34:44 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Many People X-Bugzilla-Who: fhriley@gmail.com X-Bugzilla-Status: In Progress X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-geom@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 18:34:43 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D218512 --- Comment #8 from Frank --- (In reply to Alexander Motin from comment #7) Note that the committed solution can lead to non-deterministic failures sin= ce when -i is not given by the user, geli will compute the iterations. The computed iterations will depend on the state of the system (busy, not busy, etc.) --=20 You are receiving this mail because: You are the assignee for the bug.= From owner-freebsd-geom@freebsd.org Fri Apr 21 18:57:28 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5258BD49E30 for ; Fri, 21 Apr 2017 18:57:28 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4227BE77 for ; Fri, 21 Apr 2017 18:57:28 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LIvSGx035213 for ; Fri, 21 Apr 2017 18:57:28 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-geom@FreeBSD.org Subject: [Bug 218512] Geli arbitrarily prevents setting passphrases Date: Fri, 21 Apr 2017 18:57:28 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Many People X-Bugzilla-Who: mav@FreeBSD.org X-Bugzilla-Status: In Progress X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-geom@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 18:57:28 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D218512 --- Comment #9 from Alexander Motin --- The committed solution has nothing to do with "non-deterministic failures".= It just fixes the present code as it supposed to work. For those "paranoic" w= ho need full determinism, last moment modification I made should allow specify= ing -i value which is already set, and it won't be an error. Just choose your = ove favourite value and specify it every time, if you wish. --=20 You are receiving this mail because: You are the assignee for the bug.= From owner-freebsd-geom@freebsd.org Fri Apr 21 19:45:04 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E1CC9D49F5A for ; Fri, 21 Apr 2017 19:45:04 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D1A243F1 for ; Fri, 21 Apr 2017 19:45:04 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LJj4gY061275 for ; Fri, 21 Apr 2017 19:45:04 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-geom@FreeBSD.org Subject: [Bug 218512] Geli arbitrarily prevents setting passphrases Date: Fri, 21 Apr 2017 19:45:04 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Many People X-Bugzilla-Who: fhriley@gmail.com X-Bugzilla-Status: In Progress X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-geom@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 19:45:05 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D218512 --- Comment #10 from Frank --- (In reply to Alexander Motin from comment #9) It's not paranoia at all. If you don't specify -i, the iterations are not s= et to -1, they are computed and passed in. When setting passphrases on a set of disks, freenas serializes that process, but what if I wanted to parallelize= it? geli is happily computing iterations on the cpus when another task happens = to come in. One or more of the iterations end up getting computed differently = that what it is currently set to and subsequently causing one or more passphrase changes to fail. This is but one of many scenarios of how this could really happen. Of course, I thought of all this when I made my changes, and I added tests = to test those changes. But I suppose it's the state of software these days to = make the easy fix for the specific use case I care about. This will be my last comment on this as I am not a committer to freebsd, but if I were, I would label the commit as incomplete. --=20 You are receiving this mail because: You are the assignee for the bug.= From owner-freebsd-geom@freebsd.org Fri Apr 21 20:06:43 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D2660D49671 for ; Fri, 21 Apr 2017 20:06:43 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B635D617 for ; Fri, 21 Apr 2017 20:06:43 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LK6h7D025768 for ; Fri, 21 Apr 2017 20:06:43 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-geom@FreeBSD.org Subject: [Bug 218512] Geli arbitrarily prevents setting passphrases Date: Fri, 21 Apr 2017 20:06:43 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Many People X-Bugzilla-Who: allanjude@FreeBSD.org X-Bugzilla-Status: In Progress X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-geom@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 20:06:43 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D218512 --- Comment #11 from Allan Jude --- (In reply to Frank from comment #10) We will be working on extended the GELI metadata to be able to support hold= ing two different numbers of iterations, to properly solve this problem going forward. I am not sure what to do in the mean time, if that means blocking a set key operation with an explicit -i, as there may be an existing key using the already stored number of iterations, and changing the value in the metadata will make the existing key unusable. Or if we allow the new key to be set, = and do not store the number of iterations, they key is unusable. --=20 You are receiving this mail because: You are the assignee for the bug.= From owner-freebsd-geom@freebsd.org Fri Apr 21 20:13:22 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 61112D49963 for ; Fri, 21 Apr 2017 20:13:22 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 463A3D8F for ; Fri, 21 Apr 2017 20:13:22 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LKDMJN043357 for ; Fri, 21 Apr 2017 20:13:22 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-geom@FreeBSD.org Subject: [Bug 218512] Geli arbitrarily prevents setting passphrases Date: Fri, 21 Apr 2017 20:13:22 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Many People X-Bugzilla-Who: fhriley@gmail.com X-Bugzilla-Status: In Progress X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-geom@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 20:13:22 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D218512 --- Comment #12 from Frank --- (In reply to Allan Jude from comment #11) In my pull request here https://github.com/freebsd/freebsd/pull/109, I fixed all of the problems. The only things left that it prevents the user from do= ing are changing the iterations if both keys have passphrases or setting a seco= nd passphrase with different iterations than the first passphrase. Everything = else works. I definitely agree that a redesign of the metadata with iterations p= er slot is the correct solution, but in the meantime my goal was to make it as usable as possible with the existing metadata until that redesign happens. --=20 You are receiving this mail because: You are the assignee for the bug.= From owner-freebsd-geom@freebsd.org Fri Apr 21 20:26:56 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1948BD49DC7 for ; Fri, 21 Apr 2017 20:26:56 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 08E181519 for ; Fri, 21 Apr 2017 20:26:56 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LKQt1e068173 for ; Fri, 21 Apr 2017 20:26:55 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-geom@FreeBSD.org Subject: [Bug 218512] Geli arbitrarily prevents setting passphrases Date: Fri, 21 Apr 2017 20:26:56 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Many People X-Bugzilla-Who: mav@FreeBSD.org X-Bugzilla-Status: In Progress X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-geom@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 20:26:56 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D218512 --- Comment #13 from Alexander Motin --- (In reply to Frank from comment #10) "One or more of the iterations end up getting computed differently that wha= t it is currently set to and subsequently causing one or more passphrase changes= to fail." -- Sorry, I don't see logic in this statement. You several times mentioned this scenario as source of problems, but I don't see any. Multip= le processes running same time indeed likely cause different number of iterati= ons to be set on different disks. And so what? The only thing number of iterations affect is a strength of password protection against brute force attack. And it should in no way cause any errors reported, since number of iterations is generated only once and then used forever, unless forced later with -i key, which IMO you should not do without very good reason. --=20 You are receiving this mail because: You are the assignee for the bug.= From owner-freebsd-geom@freebsd.org Fri Apr 21 20:38:19 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 64874D49317 for ; Fri, 21 Apr 2017 20:38:19 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 544961B30 for ; Fri, 21 Apr 2017 20:38:19 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id v3LKcIxO098290 for ; Fri, 21 Apr 2017 20:38:19 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-geom@FreeBSD.org Subject: [Bug 218512] Geli arbitrarily prevents setting passphrases Date: Fri, 21 Apr 2017 20:38:19 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Many People X-Bugzilla-Who: fhriley@gmail.com X-Bugzilla-Status: In Progress X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-geom@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Apr 2017 20:38:19 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D218512 --- Comment #14 from Frank --- (In reply to Alexander Motin from comment #13) "Multiple processes running same time indeed likely cause different number = of iterations to be set on different disks." If you recognize that, you should see the problem. Say we have three disks,= you set passphrases on them and they end up with the following iterations: 1: 10 2: 11 3: 10 Now you come along and want to change the passphrase (without using -i), and this time it computes the iterations as so: 1: 11 2: 10 3: 10 With the current code and your commit, disks 1 & 2 will fail because it sees you trying to change the iterations. Here is your if statement: if (*valp !=3D -1 && md.md_iterations =3D=3D -1) { md.md_iterations =3D *valp; } else if (*valp !=3D -1 && *valp !=3D md.md_iterations) { /* fail */ } For disk 1 above in setting the passphrase the second time: *valp =3D=3D 11 md_md_iterations =3D=3D 10 This is fixed in my pull request. --=20 You are receiving this mail because: You are the assignee for the bug.= From owner-freebsd-geom@freebsd.org Sat Apr 22 01:26:42 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6B262D46832 for ; Sat, 22 Apr 2017 01:26:42 +0000 (UTC) (envelope-from leeb@ratnaling.org) Received: from mail-vk0-x22d.google.com (mail-vk0-x22d.google.com [IPv6:2607:f8b0:400c:c05::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 30E07CF1 for ; Sat, 22 Apr 2017 01:26:42 +0000 (UTC) (envelope-from leeb@ratnaling.org) Received: by mail-vk0-x22d.google.com with SMTP id q78so18668834vke.3 for ; Fri, 21 Apr 2017 18:26:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ratnaling-org.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=soluhab+YyP498H/ykNq5XSS4Cnk1cJxbQp+xy36nXc=; b=BcsffKZzz5JF7WGn9zP9nrstLWw5JnySOtt8rVX65XnqVq+/NJEnOLXYTMKPBdFgW8 VocxfaFKQ+uxNL6cr9uQ/nCxR4eEZVMaXbnkD1JPUgFdoMdsOXlsmCfmhGhBG/wHpoJD K1Gi3Ps8MubvK7VbSRGS5c7OpQ1Csozc70hyfSdO1SO5tm3Xg6RsECfcC0/hBLhwhOTr iQ/D0HswMLAJ3mH0P/3apw7rXEOnbesHgdztgeNAYZN5DPvlR2yDQe/tKEHNC7mq7ksy DAeIQVk4tnaCo0iaCf4sO4doULJRLPdxyFrt1ZHOKgECZ+tVi5a1Wz6PQKymV8ti4IMe P83w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=soluhab+YyP498H/ykNq5XSS4Cnk1cJxbQp+xy36nXc=; b=BFluPFiHnZDKoOyZwouaQyNrE4sR4v4ARgGNzdbDzC4IYpojou8In15BAhLChTQyG5 OPM0c/9p5MHSi4sZSCFhc6aqx5ckCr1sr1Z0XXgE2pO1KEKZhbHUrrFxwtscBnM7JlGO t+qkydLapUf+gY7TTpnPzlIFgfGYtc8+GK6kvgbqcKEzYfbsbWqgSU16Cs8zdl3d9zMd tj81aK0FakdzMJ7QybAbrR7KNw5rDEzSSW5pc4GqSCWXtURMXZdTz7wlEd5AFB/tu1Oc 3lTvgUPVkeBlUTsohTx9maBQ+hRACfxJqOwV1ObjrapoeQLazvXrFK0u9wbtXdeuXAPg tSqQ== X-Gm-Message-State: AN3rC/6PZJG5Rx5a4ilvQY4tDMCcQjjJTBp4gkSFz2BKPWn/yJS01ntj vOEC6AgdCDrZXg+ZwL1+XllvDcyYciZu X-Received: by 10.31.221.135 with SMTP id u129mr6116791vkg.67.1492824400761; Fri, 21 Apr 2017 18:26:40 -0700 (PDT) MIME-Version: 1.0 Received: by 10.176.92.133 with HTTP; Fri, 21 Apr 2017 18:26:40 -0700 (PDT) From: Lee Brown Date: Fri, 21 Apr 2017 18:26:40 -0700 Message-ID: Subject: glabel problem To: freebsd-geom@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 01:26:42 -0000 I just got a no-name 1TB usb stick. Under FreeBSD11.0, I can see the device: root@apron:~ # geom disk list da2 Geom name: da2 Providers: 1. Name: da2 Mediasize: 1073741824000 (1.0T) Sectorsize: 512 Mode: r0w0e0 descr: (null) ident: (null) rotationrate: unknown fwsectors: 63 fwheads: 255 root@apron:~ # glabel label -v TEST da2 Metadata value stored on da2. Done. but root@apron:~ # glabel status da2 root@apron:~ # I zero'd the first and last 1MB and re-tried the label operation, but all the sectors were still zero. I tried to use the usbdump utility and I can see *something* is written. gpart appears to do the right thing. newfs on the raw device appears to do the right thing. geli init complains it can't find the metadata. Can anybody clue me into how I can get this to work correctly? I need to glabel it so I can devd an event, it needs to be geli encrypted/checksummed within the label. Thanks for any help -- lee From owner-freebsd-geom@freebsd.org Sat Apr 22 02:09:03 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D36C9D49EB4 for ; Sat, 22 Apr 2017 02:09:03 +0000 (UTC) (envelope-from 000.fbsd@quip.cz) Received: from elsa.codelab.cz (elsa.codelab.cz [94.124.105.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9B73D6D4 for ; Sat, 22 Apr 2017 02:09:03 +0000 (UTC) (envelope-from 000.fbsd@quip.cz) Received: from elsa.codelab.cz (localhost [127.0.0.1]) by elsa.codelab.cz (Postfix) with ESMTP id 65E5228412; Sat, 22 Apr 2017 04:08:59 +0200 (CEST) Received: from illbsd.quip.test (ip-86-49-16-209.net.upcbroadband.cz [86.49.16.209]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by elsa.codelab.cz (Postfix) with ESMTPSA id 70BE328431; Sat, 22 Apr 2017 04:08:58 +0200 (CEST) Subject: Re: glabel problem To: Lee Brown , freebsd-geom@freebsd.org References: From: Miroslav Lachman <000.fbsd@quip.cz> Message-ID: <58FABB3A.6040704@quip.cz> Date: Sat, 22 Apr 2017 04:08:58 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:42.0) Gecko/20100101 Firefox/42.0 SeaMonkey/2.39 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 02:09:03 -0000 Lee Brown wrote on 2017/04/22 03:26: [..] > root@apron:~ # glabel label -v TEST da2 > Metadata value stored on da2. > Done. > > but > root@apron:~ # glabel status da2 > root@apron:~ # Did you tried to disconnect and reconnect after "glabel label". Sometimes label is not visible until retaste of the device (true > /dev/da2) > I zero'd the first and last 1MB and re-tried the label operation, but all > the sectors were still zero. > I tried to use the usbdump utility and I can see *something* is written. > > gpart appears to do the right thing. > newfs on the raw device appears to do the right thing. > geli init complains it can't find the metadata. What about partitioning by gpart GPT with gpt partition label and then use this label for geli instead of whole device? Miroslav Lachman From owner-freebsd-geom@freebsd.org Sat Apr 22 06:10:18 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 98850D4A893 for ; Sat, 22 Apr 2017 06:10:18 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 885846E5 for ; Sat, 22 Apr 2017 06:10:18 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id v3M6AIcT007253 for ; Sat, 22 Apr 2017 06:10:18 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-geom@FreeBSD.org Subject: [Bug 218512] Geli arbitrarily prevents setting passphrases Date: Sat, 22 Apr 2017 06:10:18 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Many People X-Bugzilla-Who: mav@FreeBSD.org X-Bugzilla-Status: In Progress X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-geom@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 06:10:18 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D218512 --- Comment #15 from Alexander Motin --- Changing passphrase without -i should not change number of iterations, so t= here should be no problem: /* * Field md_iterations equal to -1 means "choose some sane * value for me". */ if (md->md_iterations =3D=3D -1) { assert(new); if (verbose) printf("Calculating number of iterations...\n"); md->md_iterations =3D pkcs5v2_calculate(2000000); assert(md->md_iterations > 0); if (verbose) { printf("Done, using %d iterations.\n", md->md_iterations); } } If md_iterations was ever set, the same value should be used for that disk forever. --=20 You are receiving this mail because: You are the assignee for the bug.= From owner-freebsd-geom@freebsd.org Sat Apr 22 19:02:56 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D74F9D4BCF5 for ; Sat, 22 Apr 2017 19:02:56 +0000 (UTC) (envelope-from leeb@ratnaling.org) Received: from mail-vk0-x22a.google.com (mail-vk0-x22a.google.com [IPv6:2607:f8b0:400c:c05::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9A4943B3 for ; Sat, 22 Apr 2017 19:02:56 +0000 (UTC) (envelope-from leeb@ratnaling.org) Received: by mail-vk0-x22a.google.com with SMTP id j127so23994657vkh.0 for ; Sat, 22 Apr 2017 12:02:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ratnaling-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=BQYvEsLFje2HvCjnlHXJ0J8y+OBCD8l5D6RedY55i5Q=; b=2OOQ0xZGs+8Z9/tJ9i5nW9j1MBbJoP6/8gu/q3jKXIZv+6IMAhiXM4QIg1DVwhUDM7 Qj67K+1u0NXvwooowdqE/xPQPGnk1rCCO2uDTqPLKH5jqCusaBLr68l/4213TC7QFgCh IX6b9Ws49cEygCX0SrMHlfryFftQMvEtLJdL/6Smljdbz8uryCfGu7iJrhge4KWufr8n 2qKUUTjBRXBdtOAsbc+7dNSbhP+1KQIcUHuPk07RYvP37jYxUFlBgw5wB5qqloBzRIGe savcjqBU6zlxCYapLDscE9yniaeONumIFCUSuMmn4Nl3l0Gj1vnTQWPHeeVVmXDWAkeE vTxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=BQYvEsLFje2HvCjnlHXJ0J8y+OBCD8l5D6RedY55i5Q=; b=g+D73ybWEmuJWstb8iElNawgD7ipCprKYTEvZ97mLr8SoCss8xWshVdDDpIt3Emn2l olTZr972S+pxd0mWC8JlvKqliXXkIbZapdfm7q2eUJk8s42aAdpu33aiy/2ztZuYHzQl lXRxuTT9ic7W1tIVWVJOsqkJm+VutDLeGwArA4tmJHkUOvaFeDufa6rcq14Ix81YcLlH lbuwNSHH5rrxQo5sxThI5AR8hey6KcYcmEc0TW2BaxMfa/hZLjQOsknMufrx82XKWX8i DNopu/hbnJtXAEImDWji3LEYFLBLYET74WIn/MjhVTncDDiU5BhZwPMzKgyUqVGZYUQI Z4iQ== X-Gm-Message-State: AN3rC/4Khkjm+7wXw7yqmvNGCdgfaFDLlL9muZhFoQXYVHROFEgYUA/r JW9ZOQBHfryztr/t0MlSQpUAe6jgRate X-Received: by 10.31.254.206 with SMTP id l197mr1267552vki.106.1492887775327; Sat, 22 Apr 2017 12:02:55 -0700 (PDT) MIME-Version: 1.0 Received: by 10.176.92.133 with HTTP; Sat, 22 Apr 2017 12:02:54 -0700 (PDT) In-Reply-To: <58FABB3A.6040704@quip.cz> References: <58FABB3A.6040704@quip.cz> From: Lee Brown Date: Sat, 22 Apr 2017 12:02:54 -0700 Message-ID: Subject: Re: glabel problem To: Miroslav Lachman <000.fbsd@quip.cz> Cc: freebsd-geom@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 19:02:56 -0000 On Fri, Apr 21, 2017 at 7:08 PM, Miroslav Lachman <000.fbsd@quip.cz> wrote: > Lee Brown wrote on 2017/04/22 03:26: > > [..] > > root@apron:~ # glabel label -v TEST da2 >> Metadata value stored on da2. >> Done. >> >> but >> root@apron:~ # glabel status da2 >> root@apron:~ # >> > > Did you tried to disconnect and reconnect after "glabel label". Sometimes > label is not visible until retaste of the device (true > /dev/da2) > Yes, I also tried a usb power-off/on cycle. > > I zero'd the first and last 1MB and re-tried the label operation, but all >> the sectors were still zero. >> I tried to use the usbdump utility and I can see *something* is written. >> >> gpart appears to do the right thing. >> newfs on the raw device appears to do the right thing. >> geli init complains it can't find the metadata. >> > > What about partitioning by gpart GPT with gpt partition label and then use > this label for geli instead of whole device? > geli complains in the same way, this is what I tried: root@apron:~ # dd if=/dev/zero of=/dev/da2 bs=1m count=1 1+0 records in 1+0 records out 1048576 bytes transferred in 0.124755 secs (8405050 bytes/sec) root@apron:~ # dd if=/dev/zero of=/dev/da2 bs=1m oseek=1023999 dd: /dev/da2: end of device 2+0 records in 1+0 records out 1048576 bytes transferred in 0.039043 secs (26856688 bytes/sec) root@apron:~ # gpart create -s GPT da2 da2 created root@apron:~ # gpart add -t freebsd-ufs -a 4k -l test da2 da2p1 added root@apron:~ # glabel status Name Status Components gpt/test N/A da2p1 gptid/292e8661-2789-11e7-af35-001ec944dcb4 N/A da2p1 root@apron:~ # geli init -a HMAC/SHA256 -J /root/empty-password -K /root/geli.CANI-RL.key -s 4096 gpt/test geli: Unable to read metadata from gpt/test: Invalid argument. I tried with and without /dev prefix, with and without -s 4096 and even da2p1 which all gave me the same message. Other info: ugen3.2: at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (100mA) Now: root@apron:~ # gpart show da2 => 40 2097151920 da2 GPT (1.0T) 40 2097151912 1 freebsd-ufs (1.0T) 2097151952 8 - free - (4.0K) root@apron:~ # usbconfig -d 3.2 power_off root@apron:~ # usbconfig -d 3.2 power_on root@apron:~ # gpart show da2 => 40 2097151920 da2 GPT (1.0T) [CORRUPT] 40 2097151912 1 freebsd-ufs (1.0T) 2097151952 8 - free - (4.0K) root@apron:~ # dd if=/dev/da2 iseek=1023999 bs=1m | od -ha 0000000 0000 0000 0000 0000 0000 0000 0000 0000 nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul * 4000000 1+0 records in 1+0 records out 1048576 bytes transferred in 0.049774 secs (21066694 bytes/sec) Could the device simply be faulty? It's quite slow, it'll take 28hrs to wipe it, so I filled the last 2mb and 1gb with random root@apron:~ # dd if=/dev/random of=/dev/da2 bs=1m oseek=1023998 dd: /dev/da2: end of device 3+0 records in 2+0 records out 2097152 bytes transferred in 0.111204 secs (18858633 bytes/sec) root@apron:~ # dd if=/dev/da2 iseek=1023998 bs=1m | od -ha 0000000 0000 0000 0000 0000 0000 0000 0000 0000 nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul * 10000000 2+0 records in 2+0 records out 2097152 bytes transferred in 0.098105 secs (21376560 bytes/sec) root@apron:~ # dd if=/dev/random of=/dev/da2 bs=1m oseek=1023000 dd: /dev/da2: end of device 1001+0 records in 1000+0 records out 1048576000 bytes transferred in 51.457299 secs (20377595 bytes/sec) root@apron:~ # dd if=/dev/da2 iseek=1023000 bs=1m | od -ha 0000000 0000 0000 0000 0000 0000 0000 0000 0000 nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul * 1000+0 records in 1000+0 records out 1048576000 bytes transferred in 49.336478 secs (21253564 bytes/sec) 7640000000 It looks like it's just not writing beyond a certain point. Thanks for helping, this is really strange. > > Miroslav Lachman > > > From owner-freebsd-geom@freebsd.org Sat Apr 22 19:11:46 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DC75BD4BD8C for ; Sat, 22 Apr 2017 19:11:46 +0000 (UTC) (envelope-from 000.fbsd@quip.cz) Received: from elsa.codelab.cz (elsa.codelab.cz [94.124.105.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 857E48FD for ; Sat, 22 Apr 2017 19:11:45 +0000 (UTC) (envelope-from 000.fbsd@quip.cz) Received: from elsa.codelab.cz (localhost [127.0.0.1]) by elsa.codelab.cz (Postfix) with ESMTP id 4EC4A28488; Sat, 22 Apr 2017 21:11:37 +0200 (CEST) Received: from illbsd.quip.test (ip-86-49-16-209.net.upcbroadband.cz [86.49.16.209]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by elsa.codelab.cz (Postfix) with ESMTPSA id 1949B28480; Sat, 22 Apr 2017 21:11:36 +0200 (CEST) Subject: Re: glabel problem To: Lee Brown Cc: freebsd-geom@freebsd.org References: <58FABB3A.6040704@quip.cz> From: Miroslav Lachman <000.fbsd@quip.cz> Message-ID: <58FBAAE7.9090508@quip.cz> Date: Sat, 22 Apr 2017 21:11:35 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:42.0) Gecko/20100101 Firefox/42.0 SeaMonkey/2.39 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 19:11:47 -0000 Lee Brown wrote on 2017/04/22 21:02: > > > On Fri, Apr 21, 2017 at 7:08 PM, Miroslav Lachman <000.fbsd@quip.cz > > wrote: > > Lee Brown wrote on 2017/04/22 03:26: > > [..] > > root@apron:~ # glabel label -v TEST da2 > Metadata value stored on da2. > Done. > > but > root@apron:~ # glabel status da2 > root@apron:~ # > > > Did you tried to disconnect and reconnect after "glabel label". > Sometimes label is not visible until retaste of the device (true > > /dev/da2) > > Yes, I also tried a usb power-off/on cycle. > > > I zero'd the first and last 1MB and re-tried the label > operation, but all > the sectors were still zero. > I tried to use the usbdump utility and I can see *something* is > written. > > gpart appears to do the right thing. > newfs on the raw device appears to do the right thing. > geli init complains it can't find the metadata. > > > What about partitioning by gpart GPT with gpt partition label and > then use this label for geli instead of whole device? > > geli complains in the same way, this is what I tried: > root@apron:~ # dd if=/dev/zero of=/dev/da2 bs=1m count=1 > 1+0 records in > 1+0 records out > 1048576 bytes transferred in 0.124755 secs (8405050 bytes/sec) > > root@apron:~ # dd if=/dev/zero of=/dev/da2 bs=1m oseek=1023999 > dd: /dev/da2: end of device > 2+0 records in > 1+0 records out > 1048576 bytes transferred in 0.039043 secs (26856688 bytes/sec) > > root@apron:~ # gpart create -s GPT da2 > da2 created > root@apron:~ # gpart add -t freebsd-ufs -a 4k -l test da2 > da2p1 added > > root@apron:~ # glabel status > Name Status Components > gpt/test N/A da2p1 > gptid/292e8661-2789-11e7-af35-001ec944dcb4 N/A da2p1 > > root@apron:~ # geli init -a HMAC/SHA256 -J /root/empty-password -K > /root/geli.CANI-RL.key -s 4096 gpt/test > geli: Unable to read metadata from gpt/test: Invalid argument. > > I tried with and without /dev prefix, with and without -s 4096 and even > da2p1 which all gave me the same message. > > Other info: > ugen3.2: at usbus3, cfg=0 md=HOST > spd=HIGH (480Mbps) pwr=ON (100mA) > > Now: > root@apron:~ # gpart show da2 > => 40 2097151920 da2 GPT (1.0T) > 40 2097151912 1 freebsd-ufs (1.0T) > 2097151952 8 - free - (4.0K) > root@apron:~ # usbconfig -d 3.2 power_off > root@apron:~ # usbconfig -d 3.2 power_on > > root@apron:~ # gpart show da2 > => 40 2097151920 da2 GPT (1.0T) [CORRUPT] > 40 2097151912 1 freebsd-ufs (1.0T) > 2097151952 8 - free - (4.0K) > > root@apron:~ # dd if=/dev/da2 iseek=1023999 bs=1m | od -ha > 0000000 0000 0000 0000 0000 0000 0000 0000 0000 > nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul > * > 4000000 > 1+0 records in > 1+0 records out > 1048576 bytes transferred in 0.049774 secs (21066694 bytes/sec) > > Could the device simply be faulty? It's quite slow, it'll take 28hrs to > wipe it, so I filled the last 2mb and 1gb with random > > root@apron:~ # dd if=/dev/random of=/dev/da2 bs=1m oseek=1023998 > dd: /dev/da2: end of device > 3+0 records in > 2+0 records out > 2097152 bytes transferred in 0.111204 secs (18858633 bytes/sec) > root@apron:~ # dd if=/dev/da2 iseek=1023998 bs=1m | od -ha > 0000000 0000 0000 0000 0000 0000 0000 0000 0000 > nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul > * > 10000000 > 2+0 records in > 2+0 records out > 2097152 bytes transferred in 0.098105 secs (21376560 bytes/sec) > > root@apron:~ # dd if=/dev/random of=/dev/da2 bs=1m oseek=1023000 > dd: /dev/da2: end of device > 1001+0 records in > 1000+0 records out > 1048576000 bytes transferred in 51.457299 secs (20377595 bytes/sec) > root@apron:~ # dd if=/dev/da2 iseek=1023000 bs=1m | od -ha > 0000000 0000 0000 0000 0000 0000 0000 0000 0000 > nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul > * > 1000+0 records in > 1000+0 records out > 1048576000 bytes transferred in 49.336478 secs (21253564 bytes/sec) > 7640000000 > > It looks like it's just not writing beyond a certain point. > > Thanks for helping, this is really strange. This is really strange. It seems faulty to me. There are other things you can try: 1) try to create gpt partition of a small size - about 4GB a test geli on it. If it works then try to destroy this partition and create it again but big, about 10MB smaller than the device size (maybe there is some problem at the end of the device) 2) if it is not working with geli, try it with simple gpart GPT + newfs UFS or with ZFS. Once you have ZFS on it, you can put some files on it and then run zfs scrub - if device is faulty there should be some checksum errors in zpool status output. Miroslav Lachman From owner-freebsd-geom@freebsd.org Sat Apr 22 19:38:20 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F2D3FD4B8BE for ; Sat, 22 Apr 2017 19:38:20 +0000 (UTC) (envelope-from leeb@ratnaling.org) Received: from mail-vk0-x22b.google.com (mail-vk0-x22b.google.com [IPv6:2607:f8b0:400c:c05::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AB9548B4 for ; Sat, 22 Apr 2017 19:38:20 +0000 (UTC) (envelope-from leeb@ratnaling.org) Received: by mail-vk0-x22b.google.com with SMTP id 198so3041117vkk.2 for ; Sat, 22 Apr 2017 12:38:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ratnaling-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=pLVNRh4K2LDpNOwrVKN4ZSDykp21aAwiYjYBjVldOx4=; b=luNV/sNwqqtBqVXuzuuXLE2CHcpKQYPTMY6esY+Eb1VI5NgOm+D64iQhP386GB0CFC UBGQ55F/BMsZhQMhtNN0IMB9UstWi4rVuswJR/u73I++9KuOnbuSvzp0jfG+PrkJijux uUKv+ICjmZ62Z4s8Sr6R0b+EqD8XFra/UNq/uF5FF+DZCPLbw5WAb+PozBr5TZonOuW3 B0iXCbUuCNxO9OpX9BSq+6JBgJ0MJU+g+ZoTrUH/XK3mfn14LqAqkeBrQg4stnz8YgEe DNaJV01tEZ0zYEdjkkCLl7rn7QD0RBaURzvgseqHkjs5f2tMkHker884ouJASDzamxrj t2UA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=pLVNRh4K2LDpNOwrVKN4ZSDykp21aAwiYjYBjVldOx4=; b=MrPod9ZKS1Axj3u36HbgmKuyBVCF7igTscy84/6rkAud/74la5pqLwe3JLSir1ipKA iL+w+Law9vZx0yF0O+DbmdM53EqrM7pVjsD34n0oOdbIPBfC9InQCD/unJLG3xjpE7gN q7vlSMwqNvI0bpN6Jl8Mq72wsvIkHC4Xv8FnihxEd04V1K/ryBPvB7yI6etEtM/ROqN+ YWtXro+B+xMdPH0489jPc6oqLB+N4Vx3qe3RDW+5emcoLhjvFNgoh2ecY832x7LStxOw N2/9iWG7IFBKPjQS+QLQ5qo8i+l4Pfra1M31tTC9mP9pI7/vBjpEfiXljraLm8C5F3pW d7aQ== X-Gm-Message-State: AN3rC/5e0aV3Du9cxQVrZk2THajzv8AXOubFbq+i6FFX95U7mIh8PyEA sRdPz1gcKpdl/GAOkLIx2dGBeD75aQ== X-Received: by 10.31.60.65 with SMTP id j62mr1033744vka.25.1492889899597; Sat, 22 Apr 2017 12:38:19 -0700 (PDT) MIME-Version: 1.0 Received: by 10.176.92.133 with HTTP; Sat, 22 Apr 2017 12:38:19 -0700 (PDT) In-Reply-To: <58FBAAE7.9090508@quip.cz> References: <58FABB3A.6040704@quip.cz> <58FBAAE7.9090508@quip.cz> From: Lee Brown Date: Sat, 22 Apr 2017 12:38:19 -0700 Message-ID: Subject: Re: glabel problem To: Miroslav Lachman <000.fbsd@quip.cz> Cc: freebsd-geom@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 19:38:21 -0000 On Sat, Apr 22, 2017 at 12:11 PM, Miroslav Lachman <000.fbsd@quip.cz> wrote: > Lee Brown wrote on 2017/04/22 21:02: > >> >> >> On Fri, Apr 21, 2017 at 7:08 PM, Miroslav Lachman <000.fbsd@quip.cz >> > wrote: >> >> Lee Brown wrote on 2017/04/22 03:26: >> >> [..] >> >> root@apron:~ # glabel label -v TEST da2 >> Metadata value stored on da2. >> Done. >> >> but >> root@apron:~ # glabel status da2 >> root@apron:~ # >> >> >> Did you tried to disconnect and reconnect after "glabel label". >> Sometimes label is not visible until retaste of the device (true > >> /dev/da2) >> >> Yes, I also tried a usb power-off/on cycle. >> >> >> I zero'd the first and last 1MB and re-tried the label >> operation, but all >> the sectors were still zero. >> I tried to use the usbdump utility and I can see *something* is >> written. >> >> gpart appears to do the right thing. >> newfs on the raw device appears to do the right thing. >> geli init complains it can't find the metadata. >> >> >> What about partitioning by gpart GPT with gpt partition label and >> then use this label for geli instead of whole device? >> >> geli complains in the same way, this is what I tried: >> root@apron:~ # dd if=/dev/zero of=/dev/da2 bs=1m count=1 >> 1+0 records in >> 1+0 records out >> 1048576 bytes transferred in 0.124755 secs (8405050 bytes/sec) >> >> root@apron:~ # dd if=/dev/zero of=/dev/da2 bs=1m oseek=1023999 >> dd: /dev/da2: end of device >> 2+0 records in >> 1+0 records out >> 1048576 bytes transferred in 0.039043 secs (26856688 bytes/sec) >> >> root@apron:~ # gpart create -s GPT da2 >> da2 created >> root@apron:~ # gpart add -t freebsd-ufs -a 4k -l test da2 >> da2p1 added >> >> root@apron:~ # glabel status >> Name Status Components >> gpt/test N/A da2p1 >> gptid/292e8661-2789-11e7-af35-001ec944dcb4 N/A da2p1 >> >> root@apron:~ # geli init -a HMAC/SHA256 -J /root/empty-password -K >> /root/geli.CANI-RL.key -s 4096 gpt/test >> geli: Unable to read metadata from gpt/test: Invalid argument. >> >> I tried with and without /dev prefix, with and without -s 4096 and even >> da2p1 which all gave me the same message. >> >> Other info: >> ugen3.2: at usbus3, cfg=0 md=HOST >> spd=HIGH (480Mbps) pwr=ON (100mA) >> >> Now: >> root@apron:~ # gpart show da2 >> => 40 2097151920 da2 GPT (1.0T) >> 40 2097151912 1 freebsd-ufs (1.0T) >> 2097151952 8 - free - (4.0K) >> root@apron:~ # usbconfig -d 3.2 power_off >> root@apron:~ # usbconfig -d 3.2 power_on >> >> root@apron:~ # gpart show da2 >> => 40 2097151920 da2 GPT (1.0T) [CORRUPT] >> 40 2097151912 1 freebsd-ufs (1.0T) >> 2097151952 8 - free - (4.0K) >> >> root@apron:~ # dd if=/dev/da2 iseek=1023999 bs=1m | od -ha >> 0000000 0000 0000 0000 0000 0000 0000 0000 0000 >> nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul >> * >> 4000000 >> 1+0 records in >> 1+0 records out >> 1048576 bytes transferred in 0.049774 secs (21066694 bytes/sec) >> >> Could the device simply be faulty? It's quite slow, it'll take 28hrs to >> wipe it, so I filled the last 2mb and 1gb with random >> >> root@apron:~ # dd if=/dev/random of=/dev/da2 bs=1m oseek=1023998 >> dd: /dev/da2: end of device >> 3+0 records in >> 2+0 records out >> 2097152 bytes transferred in 0.111204 secs (18858633 bytes/sec) >> root@apron:~ # dd if=/dev/da2 iseek=1023998 bs=1m | od -ha >> 0000000 0000 0000 0000 0000 0000 0000 0000 0000 >> nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul >> * >> 10000000 >> 2+0 records in >> 2+0 records out >> 2097152 bytes transferred in 0.098105 secs (21376560 bytes/sec) >> >> root@apron:~ # dd if=/dev/random of=/dev/da2 bs=1m oseek=1023000 >> dd: /dev/da2: end of device >> 1001+0 records in >> 1000+0 records out >> 1048576000 bytes transferred in 51.457299 secs (20377595 bytes/sec) >> root@apron:~ # dd if=/dev/da2 iseek=1023000 bs=1m | od -ha >> 0000000 0000 0000 0000 0000 0000 0000 0000 0000 >> nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul >> * >> 1000+0 records in >> 1000+0 records out >> 1048576000 bytes transferred in 49.336478 secs (21253564 bytes/sec) >> 7640000000 >> >> It looks like it's just not writing beyond a certain point. >> >> Thanks for helping, this is really strange. >> > > This is really strange. It seems faulty to me. > > There are other things you can try: > 1) try to create gpt partition of a small size - about 4GB a test geli on > it. If it works then try to destroy this partition and create it again but > big, about 10MB smaller than the device size (maybe there is some problem > at the end of the device) > > 2) if it is not working with geli, try it with simple gpart GPT + newfs > UFS or with ZFS. Once you have ZFS on it, you can put some files on it and > then run zfs scrub - if device is faulty there should be some checksum > errors in zpool status output. > > Miroslav Lachman > Thanks for that tip. 4GB worked and after some chopping I found over 8GB failed. Therefore I believe I've purchased an 8GB flash disk that's been engineered to report 1TB. I very much appreciate your help Miroslav -- lee From owner-freebsd-geom@freebsd.org Sat Apr 22 19:44:22 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4A687D4BB99 for ; Sat, 22 Apr 2017 19:44:22 +0000 (UTC) (envelope-from 000.fbsd@quip.cz) Received: from elsa.codelab.cz (elsa.codelab.cz [94.124.105.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0F932CC1 for ; Sat, 22 Apr 2017 19:44:21 +0000 (UTC) (envelope-from 000.fbsd@quip.cz) Received: from elsa.codelab.cz (localhost [127.0.0.1]) by elsa.codelab.cz (Postfix) with ESMTP id 8E1AC2848A; Sat, 22 Apr 2017 21:44:19 +0200 (CEST) Received: from illbsd.quip.test (ip-86-49-16-209.net.upcbroadband.cz [86.49.16.209]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by elsa.codelab.cz (Postfix) with ESMTPSA id BD8A628480; Sat, 22 Apr 2017 21:44:18 +0200 (CEST) Subject: Re: glabel problem To: Lee Brown Cc: freebsd-geom@freebsd.org References: <58FABB3A.6040704@quip.cz> <58FBAAE7.9090508@quip.cz> From: Miroslav Lachman <000.fbsd@quip.cz> Message-ID: <58FBB292.4090308@quip.cz> Date: Sat, 22 Apr 2017 21:44:18 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:42.0) Gecko/20100101 Firefox/42.0 SeaMonkey/2.39 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 19:44:22 -0000 Lee Brown wrote on 2017/04/22 21:38: > On Sat, Apr 22, 2017 at 12:11 PM, Miroslav Lachman <000.fbsd@quip.cz> wrote: >> This is really strange. It seems faulty to me. >> >> There are other things you can try: >> 1) try to create gpt partition of a small size - about 4GB a test geli on >> it. If it works then try to destroy this partition and create it again but >> big, about 10MB smaller than the device size (maybe there is some problem >> at the end of the device) >> >> 2) if it is not working with geli, try it with simple gpart GPT + newfs >> UFS or with ZFS. Once you have ZFS on it, you can put some files on it and >> then run zfs scrub - if device is faulty there should be some checksum >> errors in zpool status output. >> > > Thanks for that tip. 4GB worked and after some chopping I found over 8GB > failed. > Therefore I believe I've purchased an 8GB flash disk that's been engineered > to report 1TB. > I very much appreciate your help Miroslav -- lee It's sad. I hope you can return it to the seller and get your money back! From owner-freebsd-geom@freebsd.org Sat Apr 22 21:39:57 2017 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 711EDD4BA14 for ; Sat, 22 Apr 2017 21:39:57 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4C7FEEBD for ; Sat, 22 Apr 2017 21:39:57 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id v3MLduEE091457 for ; Sat, 22 Apr 2017 21:39:57 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-geom@FreeBSD.org Subject: [Bug 218512] Geli arbitrarily prevents setting passphrases Date: Sat, 22 Apr 2017 21:39:57 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Many People X-Bugzilla-Who: fhriley@gmail.com X-Bugzilla-Status: In Progress X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-geom@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Apr 2017 21:39:57 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D218512 --- Comment #16 from Frank --- (In reply to Alexander Motin from comment #15) I stand corrected, you are correct. For some reason I was thinking it would= be -1 there. I am ok with closing this bug as mostly fixed. It should be sufficient until the metadata redesign fixes the remaining cases. --=20 You are receiving this mail because: You are the assignee for the bug.=