From patchwork Thu Dec 17 00:35:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Haynes X-Patchwork-Id: 11978803 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4E39AC0018C for ; Thu, 17 Dec 2020 00:36:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 14ACD23741 for ; Thu, 17 Dec 2020 00:36:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727024AbgLQAgZ (ORCPT ); Wed, 16 Dec 2020 19:36:25 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49356 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726155AbgLQAgZ (ORCPT ); Wed, 16 Dec 2020 19:36:25 -0500 Received: from mail-pf1-x42d.google.com (mail-pf1-x42d.google.com [IPv6:2607:f8b0:4864:20::42d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 24F51C06179C for ; Wed, 16 Dec 2020 16:35:45 -0800 (PST) Received: by mail-pf1-x42d.google.com with SMTP id v2so284199pfm.9 for ; Wed, 16 Dec 2020 16:35:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6gl/ZxmudKiOInkEX2YpRjeY8LLZyAFpvcd5s9PBVm8=; b=Z3ft5EdgKgvd1icRjwrqGWXSsp1CFapSInqH8geMsnG0YYrvXniOL4NcvZt7n/8Z3A agc1aCIbfDQRD9+I2X8WFiTu9TD8Fcx1/FL+4TBmJCui0aGqpeVSDEcQhHl3aVfGYmxq F4uaTt/pHlZVGj8jnYmSL11YhuVn9nRtCD4cVJCbyTbwCST8wogXMJwUdcvP3QVWAhDd JDTfeFc7/8XjXp25/RXXEkV6+ekKiRNdIDzpWv2eSZ5UEtyhBb72ZxABdPOBJqgujBgf PDvyh+6Umu8Y5hBg3G1kuSdGH/+n4Taedg3UEkgs/nGDh/xsctIQLaShNrW3VyrbaaFP iUGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6gl/ZxmudKiOInkEX2YpRjeY8LLZyAFpvcd5s9PBVm8=; b=Q3Xztwl+O6J2ef7QPFHRFSFBw9A8X3zWmFqSeiHsiy7AiXSt8wAt4tWAV6rv9eKe+e KEKdqWUJtQP5/5aLNip5H3sesHGwW+p4UcHDy2cGQq19orIlP1AGCf7j5wAr6tG4LQ5s NXMYguhcFog9Jt22fP0i8guZKM2nkmMyvJj8EMhDqcAaGeacFz4oXRe+pSs2x+s/ytV9 e/HdU8736eTIoi9RZNkVbpFi7CdbFHJPqE8vU6cdwc+C4c6bw4HDRjXF4AFFRVcY6eVH 4KsekR+eIVyIkrjU/N9RNMbk28NYYKBR27dMfa1UBwWn6K/fTbPWHEZodCPsyRRV6697 R7yA== X-Gm-Message-State: AOAM5318sO8jZERz2KAI3FGNmQq7rLBDQ1kdSw1XRm901dnhh7lnYrMQ /U4fTGXXua9n+LSgxTcXmqGULs1shrXzIw== X-Google-Smtp-Source: ABdhPJzUp1Tb66bMDBs9SroMT0Y2PID/1t0rgG+YrK0lHKVKC+ufuyhxtv4XVgmAvKcoQw/SA8HvvA== X-Received: by 2002:a63:cd12:: with SMTP id i18mr35009164pgg.173.1608165344670; Wed, 16 Dec 2020 16:35:44 -0800 (PST) Received: from garbo.localdomain (c-69-181-67-218.hsd1.ca.comcast.net. [69.181.67.218]) by smtp.gmail.com with ESMTPSA id v24sm4011243pgi.61.2020.12.16.16.35.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 16:35:44 -0800 (PST) From: Tom Haynes X-Google-Original-From: Tom Haynes To: Bruce Fields Cc: Linux NFS Mailing list Subject: [pynfs 01/10] st_flex.py - Added tests for LAYOUTRETURN with errors Date: Wed, 16 Dec 2020 16:35:07 -0800 Message-Id: <20201217003516.75438-2-loghyr@hammerspace.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20201217003516.75438-1-loghyr@hammerspace.com> References: <20201217003516.75438-1-loghyr@hammerspace.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Jean Spector --- nfs4.1/server41tests/st_flex.py | 417 ++++++++++++++++++++++++++++++++ 1 file changed, 417 insertions(+) diff --git a/nfs4.1/server41tests/st_flex.py b/nfs4.1/server41tests/st_flex.py index f4ac739..a1d1f8c 100644 --- a/nfs4.1/server41tests/st_flex.py +++ b/nfs4.1/server41tests/st_flex.py @@ -592,3 +592,420 @@ def testFlexLayoutStatsOverflow(t, env): [15, 392027464946, 0, 0, 0, 0, 0, 0, 0, 10852364288, 0, 10853937152, 90820, 90564, 391147321463, 1129113173731145], [15, 407034683097, 0, 0, 0, 0, 0, 0, 0, 10864914432, 0, 10866487296, 93884, 93628, 406154554429, 1131023767183211]] _LayoutStats(t, env, ls) + +def layoutget_return(sess, fh, open_stateid, layout_iomode=LAYOUTIOMODE4_RW, + layout_error=None, layout_error_op=OP_WRITE): + """ + Perform LAYOUTGET and LAYOUTRETURN + """ + + # Get layout + ops = [op.putfh(fh), + op.layoutget(False, LAYOUT4_FLEX_FILES, layout_iomode, + 0, NFS4_UINT64_MAX, 4196, open_stateid, 0xffff)] + res = sess.compound(ops) + check(res) + layout_stateid = res.resarray[-1].logr_stateid + + # Return layout + if not layout_error: # Return regular layout + ops = [op.putfh(fh), + op.layoutreturn(False, LAYOUT4_FLEX_FILES, LAYOUTIOMODE4_ANY, + layoutreturn4(LAYOUTRETURN4_FILE, + layoutreturn_file4(0, NFS4_UINT64_MAX, + layout_stateid, "")))] + else: # Return layout with error + # Get device id + locb = res.resarray[-1].logr_layout[0].lo_content.loc_body + p = FlexUnpacker(locb) + layout = p.unpack_ff_layout4() + p.done() + + deviceid = layout.ffl_mirrors[0].ffm_data_servers[0].ffds_deviceid + deverr = device_error4(deviceid, layout_error, layout_error_op) + ffioerr = ff_ioerr4(0, NFS4_UINT64_MAX, layout_stateid, [deverr]) + fflr = ff_layoutreturn4([ffioerr], []) + + p = FlexPacker() + p.pack_ff_layoutreturn4(fflr) + + ops = [op.putfh(fh), + op.layoutreturn(False, LAYOUT4_FLEX_FILES, LAYOUTIOMODE4_ANY, + layoutreturn4(LAYOUTRETURN4_FILE, + layoutreturn_file4(0, NFS4_UINT64_MAX, + layout_stateid, + p.get_buffer())))] + + res2 = sess.compound(ops) + check(res2) + return [res, res2] + +def get_layout_cred(logr): + """ + :summary: Returns credentials contained in LAYOUTGET reply + :param logr: LAYOUTGET reply result + :return: List with uid and gid + """ + locb = logr.logr_layout[0].lo_content.loc_body + p = FlexUnpacker(locb) + layout = p.unpack_ff_layout4() + p.done() + uid = layout.ffl_mirrors[0].ffm_data_servers[0].ffds_user + gid = layout.ffl_mirrors[0].ffm_data_servers[0].ffds_group + return [uid, gid] + +def testFlexLayoutReturnNxioRead(t, env): + """ + Send LAYOUTRETURN with NFS4ERR_NXIO for READ + + FLAGS: flex layoutreturn + CODE: FFLORNXIOREAD + """ + name = env.testname(t) + sess = env.c1.new_pnfs_client_session(env.testname(t)) + + # Create the file + res = create_file(sess, name) + check(res) + fh = res.resarray[-1].object + open_stateid = res.resarray[-2].stateid + + # Return layout with error + layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_READ, NFS4ERR_NXIO, OP_READ) + + # Obtain another layout + layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_READ) + + # Close file + res = close_file(sess, fh, stateid=open_stateid) + check(res) + +def testFlexLayoutReturnNxioWrite(t, env): + """ + Send LAYOUTRETURN with NFS4ERR_NXIO for WRITE + + FLAGS: flex layoutreturn + CODE: FFLORNXIOWRITE + """ + name = env.testname(t) + sess = env.c1.new_pnfs_client_session(env.testname(t)) + + # Create the file + res = create_file(sess, name) + check(res) + fh = res.resarray[-1].object + open_stateid = res.resarray[-2].stateid + + # Return layout with error + layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_RW, NFS4ERR_NXIO, OP_WRITE) + + # Obtain another layout + layoutget_return(sess, fh, open_stateid) + + # Close file + res = close_file(sess, fh, stateid=open_stateid) + check(res) + +def testFlexLayoutReturnStaleRead(t, env): + """ + Send LAYOUTRETURN with NFS4ERR_STALE for READ + + FLAGS: flex layoutreturn + CODE: FFLORSTALEREAD + """ + name = env.testname(t) + sess = env.c1.new_pnfs_client_session(env.testname(t)) + + # Create the file + res = create_file(sess, name) + check(res) + fh = res.resarray[-1].object + open_stateid = res.resarray[-2].stateid + + # Return layout with error + layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_READ, NFS4ERR_STALE, OP_READ) + + # Close file + res = close_file(sess, fh, stateid=open_stateid) + check(res) + +def testFlexLayoutReturnStaleWrite(t, env): + """ + Send LAYOUTRETURN with NFS4ERR_STALE for WRITE + + FLAGS: flex layoutreturn + CODE: FFLORSTALEWRITE + """ + name = env.testname(t) + sess = env.c1.new_pnfs_client_session(env.testname(t)) + + # Create the file + res = create_file(sess, name) + check(res) + fh = res.resarray[-1].object + open_stateid = res.resarray[-2].stateid + + # Return layout with error + layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_RW, NFS4ERR_STALE, OP_WRITE) + + # Close file + res = close_file(sess, fh, stateid=open_stateid) + check(res) + +def testFlexLayoutReturnIoRead(t, env): + """ + Send LAYOUTRETURN with NFS4ERR_IO for READ + + FLAGS: flex layoutreturn + CODE: FFLORIOREAD + """ + name = env.testname(t) + sess = env.c1.new_pnfs_client_session(env.testname(t)) + + # Create the file + res = create_file(sess, name) + check(res) + fh = res.resarray[-1].object + open_stateid = res.resarray[-2].stateid + + # Return layout with error + layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_READ, NFS4ERR_IO, OP_READ) + + # Close file + res = close_file(sess, fh, stateid=open_stateid) + check(res) + +def testFlexLayoutReturnIoWrite(t, env): + """ + Send LAYOUTRETURN with NFS4ERR_IO for WRITE + + FLAGS: flex layoutreturn + CODE: FFLORIOWRITE + """ + name = env.testname(t) + sess = env.c1.new_pnfs_client_session(env.testname(t)) + + # Create the file + res = create_file(sess, name) + check(res) + fh = res.resarray[-1].object + open_stateid = res.resarray[-2].stateid + + # Return layout with error + layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_RW, NFS4ERR_IO, OP_WRITE) + + # Close file + res = close_file(sess, fh, stateid=open_stateid) + check(res) + +def testFlexLayoutReturnServerFaultRead(t, env): + """ + Send LAYOUTRETURN with NFS4ERR_SERVERFAULT on READ + + FLAGS: flex layoutreturn + CODE: FFLORSERVERFAULTREAD + """ + name = env.testname(t) + sess = env.c1.new_pnfs_client_session(env.testname(t)) + + # Create the file + res = create_file(sess, name) + check(res) + fh = res.resarray[-1].object + open_stateid = res.resarray[-2].stateid + + # Return layout with error + layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_READ, NFS4ERR_SERVERFAULT, OP_READ) + + # Close file + res = close_file(sess, fh, stateid=open_stateid) + check(res) + +def testFlexLayoutReturnServerFaultWrite(t, env): + """ + Send LAYOUTRETURN with NFS4ERR_SERVERFAULT on WRITE + + FLAGS: flex layoutreturn + CODE: FFLORSERVERFAULTWRITE + """ + name = env.testname(t) + sess = env.c1.new_pnfs_client_session(env.testname(t)) + + # Create the file + res = create_file(sess, name) + check(res) + fh = res.resarray[-1].object + open_stateid = res.resarray[-2].stateid + + # Return layout with error + layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_RW, NFS4ERR_SERVERFAULT, OP_WRITE) + + # Close file + res = close_file(sess, fh, stateid=open_stateid) + check(res) + +def testFlexLayoutReturnNospc(t, env): + """ + Send LAYOUTRETURN with NFS4ERR_NOSPC + + FLAGS: flex layoutreturn + CODE: FFLORNOSPC + """ + name = env.testname(t) + sess = env.c1.new_pnfs_client_session(env.testname(t)) + + # Create the file + res = create_file(sess, name) + check(res) + fh = res.resarray[-1].object + open_stateid = res.resarray[-2].stateid + + # Return layout with error + layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_RW, NFS4ERR_NOSPC, OP_WRITE) + + # Close file + res = close_file(sess, fh, stateid=open_stateid) + check(res) + +def testFlexLayoutReturnFbig(t, env): + """ + Send LAYOUTRETURN with NFS4ERR_FBIG + + FLAGS: flex layoutreturn + CODE: FFLORFBIG + """ + name = env.testname(t) + sess = env.c1.new_pnfs_client_session(env.testname(t)) + + # Create the file + res = create_file(sess, name) + check(res) + fh = res.resarray[-1].object + open_stateid = res.resarray[-2].stateid + + # Return layout with error + layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_RW, NFS4ERR_FBIG, OP_WRITE) + + # Close file + res = close_file(sess, fh, stateid=open_stateid) + check(res) + +def testFlexLayoutReturnAccessRead(t, env): + """ + Send LAYOUTRETURN with NFS4ERR_ACCESS on READ + + FLAGS: flex layoutreturn + CODE: FFLORACCESSREAD + """ + name = env.testname(t) + sess = env.c1.new_pnfs_client_session(env.testname(t)) + + # Create the file + res = create_file(sess, name) + check(res) + fh = res.resarray[-1].object + open_stateid = res.resarray[-2].stateid + + # Return layout with error + layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_READ, + NFS4ERR_ACCESS, OP_READ) + + # Close file + res = close_file(sess, fh, stateid=open_stateid) + check(res) + +def testFlexLayoutReturnAccessWrite(t, env): + """ + Send LAYOUTRETURN with NFS4ERR_ACCESS on WRITE + + FLAGS: flex layoutreturn + CODE: FFLORACCESSWRITE + """ + name = env.testname(t) + sess = env.c1.new_pnfs_client_session(env.testname(t)) + + # Create the file + res = create_file(sess, name) + check(res) + fh = res.resarray[-1].object + open_stateid = res.resarray[-2].stateid + + # Return layout with error + layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_RW, + NFS4ERR_ACCESS, OP_WRITE) + + # Close file + res = close_file(sess, fh, stateid=open_stateid) + check(res) + +def testFlexLayoutReturnDelayRead(t, env): + """ + Send LAYOUTRETURN with NFS4ERR_DELAY on READ + + FLAGS: flex layoutreturn + CODE: FFLORDELAYREAD + """ + name = env.testname(t) + sess = env.c1.new_pnfs_client_session(env.testname(t)) + + # Create the file + res = create_file(sess, name) + check(res) + fh = res.resarray[-1].object + open_stateid = res.resarray[-2].stateid + + # Return layout with error + layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_READ, NFS4ERR_DELAY, OP_READ) + + # Close file + res = close_file(sess, fh, stateid=open_stateid) + check(res) + +def testFlexLayoutReturnDelayWrite(t, env): + """ + Send LAYOUTRETURN with NFS4ERR_DELAY on WRITE + + FLAGS: flex layoutreturn + CODE: FFLORDELAYWRITE + """ + name = env.testname(t) + sess = env.c1.new_pnfs_client_session(env.testname(t)) + + # Create the file + res = create_file(sess, name) + check(res) + fh = res.resarray[-1].object + open_stateid = res.resarray[-2].stateid + + # Return layout with error + layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_RW, NFS4ERR_DELAY, OP_WRITE) + + # Close file + res = close_file(sess, fh, stateid=open_stateid) + check(res) + +def testFlexLayoutReturn1K(t, env): + """ + Perform LAYOUTGET and LAYOUTRETURN 1K times with error being returned periodically + + FLAGS: flex layoutreturn + CODE: FFLOR1K + """ + name = env.testname(t) + sess = env.c1.new_pnfs_client_session(env.testname(t)) + count = 1000 # Repeat LAYOUTGET/LAYOUTRETURN count times + layout_error_ratio = 10 # Send an error every layout_error_ratio layout returns + + # Create the file + res = create_file(sess, name) + check(res) + fh = res.resarray[-1].object + open_stateid = res.resarray[-2].stateid + + for i in xrange(count): + layout_error = None if i % layout_error_ratio else NFS4ERR_ACCESS + layoutget_return(sess, fh, open_stateid, layout_error=layout_error) + + # Close file + res = close_file(sess, fh, stateid=open_stateid) + check(res) From patchwork Thu Dec 17 00:35:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Haynes X-Patchwork-Id: 11978807 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6CE69C2BB9A for ; Thu, 17 Dec 2020 00:36:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 386922376E for ; Thu, 17 Dec 2020 00:36:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727171AbgLQAg0 (ORCPT ); Wed, 16 Dec 2020 19:36:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49362 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726155AbgLQAg0 (ORCPT ); Wed, 16 Dec 2020 19:36:26 -0500 Received: from mail-pj1-x1031.google.com (mail-pj1-x1031.google.com [IPv6:2607:f8b0:4864:20::1031]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3CE03C0617A6 for ; Wed, 16 Dec 2020 16:35:46 -0800 (PST) Received: by mail-pj1-x1031.google.com with SMTP id hk16so2895506pjb.4 for ; Wed, 16 Dec 2020 16:35:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=h8YrcZrKeSFFqATQtiyrRFHewQ4YVS0MdlJV09OWEoc=; b=A+3CptrABWP45Y007gHeWnXYAu/pXWwYcFuyRTUHLPwRNbbN1NiDnSnPFLVf2CbI6M 9s5UkMFu3LK5kRI5bUF7KDjVzZRBaB9zw/Eph2BsCdJWG61aw6FJ3ouhmb/QOY+9nnnt qazMUaBS0b0PbAugQJMpPOoVFobuEE7tZeIdAonqLyrlIdEG8epRwZx5NUTQ5p7PcVoC m5gb854rI+LCbxWkBJrpYJppqw/DKCSj01Q9zDpEBCE7dzrs1LIpL9AGaV9XJ2cpOEe6 JWWlv2Vq8M2BXbbKE0fPHVQjAzYu8i8fr/q6e7WSCh4061Mn8N0EbusuIM5sDpcdZHuo pzIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=h8YrcZrKeSFFqATQtiyrRFHewQ4YVS0MdlJV09OWEoc=; b=aAyZAvUOWtFjEvnMwT4spFRALMw9pjynKjRp8+aUWMX5w+JtbcSRzOvcwGf75DG7Yy m2zDEhvFhdynfDyTp1609P9jPhNhQrs3I00oCaJM1Ly/Sy6bhH1SkjOlvrFjUIgroH6x n8Tt7xQKx9GmuiRLygF8lmLh2djfAzyoI5A0neCzwBDozKJAJ5l5smW4xO/mGj3+yaA6 zVXXGz9YNUeuljOhHhgxQppKnDG3Edo90bh7A/CTjABAH5FlP9K7z8vEk56SZ6HAtpYn LzcfNt9YP28h5p+uJUSVd9TajeRZ2TzrfmCbQzTq0oQAhg10/Mx/dzqEFYwuMLFeop6g T5xg== X-Gm-Message-State: AOAM530aq6nVrgnvxwYgGEIKhZA8UDd+BIf/XDKPlkx6rkTOjuRAiym0 3mmDMiREVTcSNt2XC+AEwOI= X-Google-Smtp-Source: ABdhPJzSAuQvCZctE8tyVMliAg0biM1X11HzlSGKkCDo4/dVYn03xSzy6bZ73qbZUv5nl3HAO8BVDA== X-Received: by 2002:a17:90a:31cb:: with SMTP id j11mr5456758pjf.6.1608165345854; Wed, 16 Dec 2020 16:35:45 -0800 (PST) Received: from garbo.localdomain (c-69-181-67-218.hsd1.ca.comcast.net. [69.181.67.218]) by smtp.gmail.com with ESMTPSA id v24sm4011243pgi.61.2020.12.16.16.35.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 16:35:45 -0800 (PST) From: Tom Haynes X-Google-Original-From: Tom Haynes To: Bruce Fields Cc: Linux NFS Mailing list Subject: [pynfs 02/10] st_flex.py - Fixed flag names Date: Wed, 16 Dec 2020 16:35:08 -0800 Message-Id: <20201217003516.75438-3-loghyr@hammerspace.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20201217003516.75438-1-loghyr@hammerspace.com> References: <20201217003516.75438-1-loghyr@hammerspace.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Jean Spector --- nfs4.1/server41tests/st_flex.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nfs4.1/server41tests/st_flex.py b/nfs4.1/server41tests/st_flex.py index a1d1f8c..cbc1166 100644 --- a/nfs4.1/server41tests/st_flex.py +++ b/nfs4.1/server41tests/st_flex.py @@ -502,7 +502,7 @@ def testFlexLayoutStatsReset(t, env): """These layoutstats are from when the client effectively resets them by having one field be less than the cumulative ancestor - FLAGS: flex layoustats + FLAGS: flex layoutstats CODE: FFLS2 """ @@ -533,7 +533,7 @@ def testFlexLayoutStatsStraight(t, env): to keep the server from detecting the reset. I.e., the client has not lost it all! - FLAGS: flex layoustats + FLAGS: flex layoutstats CODE: FFLS3 """ @@ -562,7 +562,7 @@ def testFlexLayoutStatsOverflow(t, env): """These layoutstats are a write intensive work load in which eventually one stat takes twice longer than the collection period. - FLAGS: flex layoustats + FLAGS: flex layoutstats CODE: FFLS4 """ From patchwork Thu Dec 17 00:35:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Haynes X-Patchwork-Id: 11978805 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 76F8AC1B0D8 for ; Thu, 17 Dec 2020 00:36:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4E46123719 for ; Thu, 17 Dec 2020 00:36:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727227AbgLQAg1 (ORCPT ); Wed, 16 Dec 2020 19:36:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49366 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726155AbgLQAg1 (ORCPT ); Wed, 16 Dec 2020 19:36:27 -0500 Received: from mail-pg1-x529.google.com (mail-pg1-x529.google.com [IPv6:2607:f8b0:4864:20::529]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 72197C0617A7 for ; Wed, 16 Dec 2020 16:35:47 -0800 (PST) Received: by mail-pg1-x529.google.com with SMTP id n7so19015365pgg.2 for ; Wed, 16 Dec 2020 16:35:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=CB2U6/mY/SGaoO98CwmNd1Z7m9MDE5jUgBWgxTJAuY0=; b=ms8Pz2XgCVZuC7n3cOpRWPi3LA6Pc+SnZd2MJtHDQi2J+i+v2gECfDnawKor37BulT QCZ5Y4jBe95/Amdg27LMLqfW2R6Z696P3Yd9PrjP41Pei76MgBTS7TBFH3wzYlI5q7L8 tTN+6IXovqNuNUHkLpk/a8SVwVS1TXRRD+Mnj79nH73qwvnhsCW++7XBkCSAF2zM5dNA yN5mdP7zkfItgOOmO20ELBBEXw7K0NwxQNiH/M+idrxNBR9TAmUkTxTh0qGoN0v077r7 wJUhNBxVdrpf6AhC+0k0uhUfX2QeM8sC0QLHWy1OT2iPHq2P+f9R3pxow/tDL5JQShit tBng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=CB2U6/mY/SGaoO98CwmNd1Z7m9MDE5jUgBWgxTJAuY0=; b=dUscvdWU/vjVHDuATeVggXweg5hcgp7xuva+mlbE673y0OrThDT5Xv713CoJvY1f8Z ve91MrErctLHBRCWTgu1Rf2zU/G3GYLKI1T9CbpEAm+5nkKqYa+BTHCU3UlAr9rjDxKm AEis+vhKrCZ8TE10K52jExhA7Po9ZgNkZBFmcM7Kh9PZm9nNmXcbUsi55zLPJnuWdE9R rqsoxsuXw/VMsGBT3eG43XhZxXLiYdcMTM+zt4wINqkDTTy0zbtnDsSOaoaQ+KczO6Vf 1KdKjs359AYBE0ZkhrGo3yr3tWJXMuT4bKUDwb3r0BI2jTNOAXhgxSE6kStzkPz0U3T1 eXOQ== X-Gm-Message-State: AOAM531HP+CAaXHUS/DZEq+SAAcmN9puzPXY1k75+t6hbDdS5LPq+6HO Z2FbNhbOaPRUuezqPLt+YCscdJVq9Cy2zQ== X-Google-Smtp-Source: ABdhPJwwslzoL8gUbJ0Li1LQHUC9SUjvaHrZJ9cor/dj/d80NDryt+paMGFUcZrUSBxGORE8Lte4Yw== X-Received: by 2002:a63:5856:: with SMTP id i22mr35262429pgm.349.1608165347094; Wed, 16 Dec 2020 16:35:47 -0800 (PST) Received: from garbo.localdomain (c-69-181-67-218.hsd1.ca.comcast.net. [69.181.67.218]) by smtp.gmail.com with ESMTPSA id v24sm4011243pgi.61.2020.12.16.16.35.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 16:35:46 -0800 (PST) From: Tom Haynes X-Google-Original-From: Tom Haynes To: Bruce Fields Cc: Linux NFS Mailing list Subject: [pynfs 03/10] Close the file for SEQ10b Date: Wed, 16 Dec 2020 16:35:09 -0800 Message-Id: <20201217003516.75438-4-loghyr@hammerspace.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20201217003516.75438-1-loghyr@hammerspace.com> References: <20201217003516.75438-1-loghyr@hammerspace.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Signed-off-by: Tom Haynes --- nfs4.1/server41tests/st_sequence.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nfs4.1/server41tests/st_sequence.py b/nfs4.1/server41tests/st_sequence.py index 9be1096..969deb8 100644 --- a/nfs4.1/server41tests/st_sequence.py +++ b/nfs4.1/server41tests/st_sequence.py @@ -225,6 +225,7 @@ def testReplayCache007(t, env): check(res) fh = res.resarray[-1].object stateid = res.resarray[-2].stateid + ops = env.home + [op.savefh(),\ op.rename(b"%s_1" % env.testname(t), b"%s_2" % env.testname(t))] res1 = sess1.compound(ops, cache_this=False) @@ -233,6 +234,10 @@ def testReplayCache007(t, env): check(res2, [NFS4_OK, NFS4ERR_RETRY_UNCACHED_REP]) close_file(sess1, fh, stateid=stateid) + # Cleanup + res = sess1.compound([op.putfh(fh), op.close(0, stateid)]) + check(res) + def testOpNotInSession(t, env): """Operations other than SEQUENCE, BIND_CONN_TO_SESSION, EXCHANGE_ID, CREATE_SESSION, and DESTROY_SESSION, MUST NOT appear as the From patchwork Thu Dec 17 00:35:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Haynes X-Patchwork-Id: 11978809 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 83BEDC2BBCD for ; Thu, 17 Dec 2020 00:36:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 64B1623741 for ; Thu, 17 Dec 2020 00:36:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727244AbgLQAg3 (ORCPT ); Wed, 16 Dec 2020 19:36:29 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49372 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726155AbgLQAg3 (ORCPT ); Wed, 16 Dec 2020 19:36:29 -0500 Received: from mail-pf1-x42c.google.com (mail-pf1-x42c.google.com [IPv6:2607:f8b0:4864:20::42c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EACF7C0617B0 for ; Wed, 16 Dec 2020 16:35:48 -0800 (PST) Received: by mail-pf1-x42c.google.com with SMTP id c12so17784088pfo.10 for ; Wed, 16 Dec 2020 16:35:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=S0L6TBHA63pE3eJy5qrtoD1MwTLuMiQthDlfl0U0o90=; b=CpVQ6rF/O8Y5s0zXiHU8cRvGhh/4yupdSqDGXCkNFbbjkOOpJ/qgIa/NWRb+hasA6M mregbRwSZiHzI9a8W6lcpQJ3W8B7qt0m0l/IEDTxjOAGvcus3MdCU2IuZwNWAO0MLdG7 rgsPnu7n1Oa9lop1MHUwotJAgACewIGVTCclx5TgR6kd2Fl0A4GpwiVosNwKGV+atxRC IctMxufZ3xvZFgkA1XAf5N7x+T7ffuJrlIzo1t46MFpky75G8WVtSa7JFit3SAf0hV9s 7OYd+FgahPzxaD7tXUl+i5fmuUeNOiCi/Gkolb8HMxD9PpiKIPgk2BLnUisww8myC4II 9eHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=S0L6TBHA63pE3eJy5qrtoD1MwTLuMiQthDlfl0U0o90=; b=Ogj/4y0EZm+LOc69u2y4wwn4kPYfP2UELR253Epu6o80XJe3ewPdezXnk8xjI0Fri8 X1Yp0VlEwthUhinFwg07JkZPKhSw9dMByLI1aU+S9HTKlH+CSO2qSFmWwLm4kHDj4LVf yxp5YBOpUptg7GsNIPVOlLyN4s1sNChuTqGlj9ttBF3en4i6cOHeu/ksDoNeJTL19ea6 +McYuv7Jfye0GAugRZfyqR0lyxA3VzEFcRq39OTMtxoFWPBBXsoTP17nSfA3nta3X0Tz W/Nh0ZU0QgWWCLIPPtzyxt3T+671WlqMMSS2XISvKGfrAKeNXGmq+9kt0neYLaBZ1lHN oiIg== X-Gm-Message-State: AOAM5320/Sxyc2EYAaHMNRnl+Sv25absQOTvA62qv1Gh65b26HC31hn5 x5KX+rvwFgsWNi7AiadxF4YpydZaglYsaQ== X-Google-Smtp-Source: ABdhPJwECamb5Yks8eExNEAP+sNCIjVv/yVRjXrOEUQMPm3jKVdLa7g47nyzIZdjZkHY3/B0t+uLvQ== X-Received: by 2002:a63:f02:: with SMTP id e2mr35114651pgl.148.1608165348386; Wed, 16 Dec 2020 16:35:48 -0800 (PST) Received: from garbo.localdomain (c-69-181-67-218.hsd1.ca.comcast.net. [69.181.67.218]) by smtp.gmail.com with ESMTPSA id v24sm4011243pgi.61.2020.12.16.16.35.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 16:35:47 -0800 (PST) From: Tom Haynes X-Google-Original-From: Tom Haynes To: Bruce Fields Cc: Linux NFS Mailing list Subject: [pynfs 04/10] flexfiles: Fix up the layout error handling to reflect the previous error Date: Wed, 16 Dec 2020 16:35:10 -0800 Message-Id: <20201217003516.75438-5-loghyr@hammerspace.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20201217003516.75438-1-loghyr@hammerspace.com> References: <20201217003516.75438-1-loghyr@hammerspace.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org When a client reports a layout error, the server has the choice on the next LAYOUTGET to: 1) Return NFS4_OK 2) Return NFS4ERR_DELAY as it tries to resolve the issue 3) Return the supplied error and let the client/application handle the issue Signed-off-by: Tom Haynes --- nfs4.1/server41tests/st_flex.py | 147 ++++++++++++++++++++++++++------ 1 file changed, 122 insertions(+), 25 deletions(-) diff --git a/nfs4.1/server41tests/st_flex.py b/nfs4.1/server41tests/st_flex.py index cbc1166..4defa81 100644 --- a/nfs4.1/server41tests/st_flex.py +++ b/nfs4.1/server41tests/st_flex.py @@ -593,8 +593,9 @@ def testFlexLayoutStatsOverflow(t, env): [15, 407034683097, 0, 0, 0, 0, 0, 0, 0, 10864914432, 0, 10866487296, 93884, 93628, 406154554429, 1131023767183211]] _LayoutStats(t, env, ls) -def layoutget_return(sess, fh, open_stateid, layout_iomode=LAYOUTIOMODE4_RW, - layout_error=None, layout_error_op=OP_WRITE): +def layoutget_return(sess, fh, open_stateid, allowed_errors=NFS4_OK, + layout_iomode=LAYOUTIOMODE4_RW, layout_error=None, + layout_error_op=OP_WRITE): """ Perform LAYOUTGET and LAYOUTRETURN """ @@ -604,7 +605,7 @@ def layoutget_return(sess, fh, open_stateid, layout_iomode=LAYOUTIOMODE4_RW, op.layoutget(False, LAYOUT4_FLEX_FILES, layout_iomode, 0, NFS4_UINT64_MAX, 4196, open_stateid, 0xffff)] res = sess.compound(ops) - check(res) + check(res, allowed_errors) layout_stateid = res.resarray[-1].logr_stateid # Return layout @@ -671,10 +672,10 @@ def testFlexLayoutReturnNxioRead(t, env): open_stateid = res.resarray[-2].stateid # Return layout with error - layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_READ, NFS4ERR_NXIO, OP_READ) + layoutget_return(sess, fh, open_stateid, NFS4_OK, LAYOUTIOMODE4_READ, NFS4ERR_NXIO, OP_READ) - # Obtain another layout - layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_READ) + # Verify error code propagation + layoutget_return(sess, fh, open_stateid, [NFS4_OK, NFS4ERR_DELAY, NFS4ERR_NXIO], LAYOUTIOMODE4_READ) # Close file res = close_file(sess, fh, stateid=open_stateid) @@ -697,10 +698,10 @@ def testFlexLayoutReturnNxioWrite(t, env): open_stateid = res.resarray[-2].stateid # Return layout with error - layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_RW, NFS4ERR_NXIO, OP_WRITE) + layoutget_return(sess, fh, open_stateid, NFS4_OK, LAYOUTIOMODE4_RW, NFS4ERR_NXIO, OP_WRITE) - # Obtain another layout - layoutget_return(sess, fh, open_stateid) + # Verify error code propagation + layoutget_return(sess, fh, open_stateid, [NFS4_OK, NFS4ERR_DELAY, NFS4ERR_NXIO]) # Close file res = close_file(sess, fh, stateid=open_stateid) @@ -723,7 +724,10 @@ def testFlexLayoutReturnStaleRead(t, env): open_stateid = res.resarray[-2].stateid # Return layout with error - layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_READ, NFS4ERR_STALE, OP_READ) + layoutget_return(sess, fh, open_stateid, NFS4_OK, LAYOUTIOMODE4_READ, NFS4ERR_STALE, OP_READ) + + # Verify error code propagation + layoutget_return(sess, fh, open_stateid, [NFS4_OK, NFS4ERR_DELAY, NFS4ERR_STALE]) # Close file res = close_file(sess, fh, stateid=open_stateid) @@ -746,7 +750,10 @@ def testFlexLayoutReturnStaleWrite(t, env): open_stateid = res.resarray[-2].stateid # Return layout with error - layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_RW, NFS4ERR_STALE, OP_WRITE) + layoutget_return(sess, fh, open_stateid, NFS4_OK, LAYOUTIOMODE4_RW, NFS4ERR_STALE, OP_WRITE) + + # Verify error code propagation + layoutget_return(sess, fh, open_stateid, [NFS4_OK, NFS4ERR_DELAY, NFS4ERR_STALE]) # Close file res = close_file(sess, fh, stateid=open_stateid) @@ -769,7 +776,10 @@ def testFlexLayoutReturnIoRead(t, env): open_stateid = res.resarray[-2].stateid # Return layout with error - layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_READ, NFS4ERR_IO, OP_READ) + layoutget_return(sess, fh, open_stateid, NFS4_OK, LAYOUTIOMODE4_READ, NFS4ERR_IO, OP_READ) + + # Verify error code propagation + layoutget_return(sess, fh, open_stateid, [NFS4_OK, NFS4ERR_DELAY, NFS4ERR_IO]) # Close file res = close_file(sess, fh, stateid=open_stateid) @@ -792,7 +802,10 @@ def testFlexLayoutReturnIoWrite(t, env): open_stateid = res.resarray[-2].stateid # Return layout with error - layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_RW, NFS4ERR_IO, OP_WRITE) + layoutget_return(sess, fh, open_stateid, NFS4_OK, LAYOUTIOMODE4_RW, NFS4ERR_IO, OP_WRITE) + + # Verify error code propagation + layoutget_return(sess, fh, open_stateid, [NFS4_OK, NFS4ERR_DELAY, NFS4ERR_IO]) # Close file res = close_file(sess, fh, stateid=open_stateid) @@ -815,7 +828,10 @@ def testFlexLayoutReturnServerFaultRead(t, env): open_stateid = res.resarray[-2].stateid # Return layout with error - layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_READ, NFS4ERR_SERVERFAULT, OP_READ) + layoutget_return(sess, fh, open_stateid, NFS4_OK, LAYOUTIOMODE4_READ, NFS4ERR_SERVERFAULT, OP_READ) + + # Verify error code propagation + layoutget_return(sess, fh, open_stateid, [NFS4_OK, NFS4ERR_DELAY, NFS4ERR_SERVERFAULT]) # Close file res = close_file(sess, fh, stateid=open_stateid) @@ -838,15 +854,45 @@ def testFlexLayoutReturnServerFaultWrite(t, env): open_stateid = res.resarray[-2].stateid # Return layout with error - layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_RW, NFS4ERR_SERVERFAULT, OP_WRITE) + layoutget_return(sess, fh, open_stateid, NFS4_OK, LAYOUTIOMODE4_RW, NFS4ERR_SERVERFAULT, OP_WRITE) + + # Verify error code propagation + layoutget_return(sess, fh, open_stateid, [NFS4_OK, NFS4ERR_DELAY, NFS4ERR_SERVERFAULT]) + + # Close file + res = close_file(sess, fh, stateid=open_stateid) + check(res) + +def testFlexLayoutReturnNospcRead(t, env): + """ + Send LAYOUTRETURN with NFS4ERR_NOSPC on READ + + FLAGS: flex layoutreturn + CODE: FFLORNOSPC + """ + name = env.testname(t) + sess = env.c1.new_pnfs_client_session(env.testname(t)) + + # Create the file + res = create_file(sess, name) + check(res) + fh = res.resarray[-1].object + open_stateid = res.resarray[-2].stateid + + # Return layout with error + layoutget_return(sess, fh, open_stateid, NFS4_OK, LAYOUTIOMODE4_RW, NFS4ERR_NOSPC, OP_WRITE) + + # Verify error code propagation + # Unlike with a WRITE, we should see no error + layoutget_return(sess, fh, open_stateid, NFS4_OK, LAYOUTIOMODE4_READ) # Close file res = close_file(sess, fh, stateid=open_stateid) check(res) -def testFlexLayoutReturnNospc(t, env): +def testFlexLayoutReturnNospcWrite(t, env): """ - Send LAYOUTRETURN with NFS4ERR_NOSPC + Send LAYOUTRETURN with NFS4ERR_NOSPC on WRITE FLAGS: flex layoutreturn CODE: FFLORNOSPC @@ -861,15 +907,45 @@ def testFlexLayoutReturnNospc(t, env): open_stateid = res.resarray[-2].stateid # Return layout with error - layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_RW, NFS4ERR_NOSPC, OP_WRITE) + layoutget_return(sess, fh, open_stateid, NFS4_OK, LAYOUTIOMODE4_RW, NFS4ERR_NOSPC, OP_WRITE) + + # Verify error code propagation + layoutget_return(sess, fh, open_stateid, [NFS4_OK, NFS4ERR_DELAY, NFS4ERR_NOSPC], LAYOUTIOMODE4_RW) + + # Close file + res = close_file(sess, fh, stateid=open_stateid) + check(res) + +def testFlexLayoutReturnFbigRead(t, env): + """ + Send LAYOUTRETURN with NFS4ERR_FBIG on READ + + FLAGS: flex layoutreturn + CODE: FFLORFBIG + """ + name = env.testname(t) + sess = env.c1.new_pnfs_client_session(env.testname(t)) + + # Create the file + res = create_file(sess, name) + check(res) + fh = res.resarray[-1].object + open_stateid = res.resarray[-2].stateid + + # Return layout with error + layoutget_return(sess, fh, open_stateid, NFS4_OK, LAYOUTIOMODE4_RW, NFS4ERR_FBIG, OP_WRITE) + + # Verify error code propagation + # Unlike with a WRITE, we should see no error + layoutget_return(sess, fh, open_stateid, NFS4_OK) # Close file res = close_file(sess, fh, stateid=open_stateid) check(res) -def testFlexLayoutReturnFbig(t, env): +def testFlexLayoutReturnFbigWrite(t, env): """ - Send LAYOUTRETURN with NFS4ERR_FBIG + Send LAYOUTRETURN with NFS4ERR_FBIG on WRITE FLAGS: flex layoutreturn CODE: FFLORFBIG @@ -884,7 +960,10 @@ def testFlexLayoutReturnFbig(t, env): open_stateid = res.resarray[-2].stateid # Return layout with error - layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_RW, NFS4ERR_FBIG, OP_WRITE) + layoutget_return(sess, fh, open_stateid, NFS4_OK, LAYOUTIOMODE4_RW, NFS4ERR_FBIG, OP_WRITE) + + # Verify error code propagation + layoutget_return(sess, fh, open_stateid, [NFS4_OK, NFS4ERR_DELAY, NFS4ERR_FBIG]) # Close file res = close_file(sess, fh, stateid=open_stateid) @@ -907,9 +986,12 @@ def testFlexLayoutReturnAccessRead(t, env): open_stateid = res.resarray[-2].stateid # Return layout with error - layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_READ, + layoutget_return(sess, fh, open_stateid, NFS4_OK, LAYOUTIOMODE4_READ, NFS4ERR_ACCESS, OP_READ) + # Verify error code propagation + layoutget_return(sess, fh, open_stateid, [NFS4_OK, NFS4ERR_DELAY, NFS4ERR_ACCESS]) + # Close file res = close_file(sess, fh, stateid=open_stateid) check(res) @@ -931,9 +1013,12 @@ def testFlexLayoutReturnAccessWrite(t, env): open_stateid = res.resarray[-2].stateid # Return layout with error - layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_RW, + layoutget_return(sess, fh, open_stateid, NFS4_OK, LAYOUTIOMODE4_RW, NFS4ERR_ACCESS, OP_WRITE) + # Verify error code propagation + layoutget_return(sess, fh, open_stateid, [NFS4_OK, NFS4ERR_DELAY, NFS4ERR_ACCESS]) + # Close file res = close_file(sess, fh, stateid=open_stateid) check(res) @@ -955,7 +1040,10 @@ def testFlexLayoutReturnDelayRead(t, env): open_stateid = res.resarray[-2].stateid # Return layout with error - layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_READ, NFS4ERR_DELAY, OP_READ) + layoutget_return(sess, fh, open_stateid, NFS4_OK, LAYOUTIOMODE4_READ, NFS4ERR_DELAY, OP_READ) + + # Verify error code propagation + layoutget_return(sess, fh, open_stateid, [NFS4_OK, NFS4ERR_DELAY]) # Close file res = close_file(sess, fh, stateid=open_stateid) @@ -978,7 +1066,10 @@ def testFlexLayoutReturnDelayWrite(t, env): open_stateid = res.resarray[-2].stateid # Return layout with error - layoutget_return(sess, fh, open_stateid, LAYOUTIOMODE4_RW, NFS4ERR_DELAY, OP_WRITE) + layoutget_return(sess, fh, open_stateid, NFS4_OK, LAYOUTIOMODE4_RW, NFS4ERR_DELAY, OP_WRITE) + + # Verify error code propagation + layoutget_return(sess, fh, open_stateid, [NFS4_OK, NFS4ERR_DELAY]) # Close file res = close_file(sess, fh, stateid=open_stateid) @@ -1006,6 +1097,12 @@ def testFlexLayoutReturn1K(t, env): layout_error = None if i % layout_error_ratio else NFS4ERR_ACCESS layoutget_return(sess, fh, open_stateid, layout_error=layout_error) + # Verify error code propagation + if layout_error: + layoutget_return(sess, fh, open_stateid, [NFS4_OK, NFS4ERR_DELAY, layout_error]) + else: + layoutget_return(sess, fh, open_stateid, NFS4_OK) + # Close file res = close_file(sess, fh, stateid=open_stateid) check(res) From patchwork Thu Dec 17 00:35:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Haynes X-Patchwork-Id: 11978811 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0CBE2C4361B for ; Thu, 17 Dec 2020 00:37:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id CD39723719 for ; Thu, 17 Dec 2020 00:37:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727278AbgLQAhE (ORCPT ); Wed, 16 Dec 2020 19:37:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49460 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726155AbgLQAhE (ORCPT ); Wed, 16 Dec 2020 19:37:04 -0500 Received: from mail-pf1-x42e.google.com (mail-pf1-x42e.google.com [IPv6:2607:f8b0:4864:20::42e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 05813C06138C for ; Wed, 16 Dec 2020 16:35:50 -0800 (PST) Received: by mail-pf1-x42e.google.com with SMTP id s21so17784234pfu.13 for ; Wed, 16 Dec 2020 16:35:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=MHO5bIYwnL47DhNEYdQnRuELP368fNy4h91T61VHS2c=; b=VFXpb1wNkgPKiy4+K1TmZ+e+jsic1lfllqLvuFmxDb0YCygM/ehYqvxXDobJSMuQs4 bjAjuelhNWNMV+RXKNAd2IcaUdbxajZHDefHCBf2SPnbvRzxMvYd3RPjcc2gdIuzMHYw PQav9EZ/GsASU6AUhqmWNahnukr0cTe/V9Yes9lmYc0KlWRv5lWA6lOFOUDHfuS8ZwPI HN55F/WEJ30PYdzDSxoX2RHYe57HJ8qXoU9pKPq914qQz+MmTDVuUSWs6LgKwiap5GJC EHSzHBjlZWTDS5Gw4ZQvy5gDWTvDg9bp2CEXYFQRHj8kx8f1JKdygSxGepeFhXC1Tk7Z ulnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=MHO5bIYwnL47DhNEYdQnRuELP368fNy4h91T61VHS2c=; b=SImTFNLrqn/2F9kAZVgO7hgdxII5J+C2PNIOEVPAFh2XBm2lQezWu8qNZ5a319cbsp DX+swuSs5zhw//HIQUd90YOI/g127Axrtgh4dt/OBDPnVHiCP37O8ejoiByr+D7evxcP AuLVRVai6N3RY8xA9w0k/IGL7bREU7E4lXMSh0jgr59jKWEBlqXVZzzGQR7imUISKTm2 rPNTrTsCLUt//EvSEHICC8fLHs1r++7FcSH3NpTfdAWFRNYwe+XouOgvq/6xJex1F0SG fMmwFeMQwrCaylZ7SoVzEIRjYBG7D5qv7e0i4J+4zByjnm9vKmu7Ohh/vl8hnWyGmuVL ixpw== X-Gm-Message-State: AOAM531SEd+NqLApx9panm/BvRpZJNT+m/69ImvEOrBKs2noGkeU99zv eZCZ8/Mi6XMux53Mtmn6DAY= X-Google-Smtp-Source: ABdhPJx+0buMrjsdr0Pwfm/4B8fIKx7+EFCAw2HVdzU7TTnGEOV77pg9jFkxJLZjhkXJq/rmIlOyGA== X-Received: by 2002:a63:f154:: with SMTP id o20mr34912766pgk.127.1608165349617; Wed, 16 Dec 2020 16:35:49 -0800 (PST) Received: from garbo.localdomain (c-69-181-67-218.hsd1.ca.comcast.net. [69.181.67.218]) by smtp.gmail.com with ESMTPSA id v24sm4011243pgi.61.2020.12.16.16.35.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 16:35:48 -0800 (PST) From: Tom Haynes X-Google-Original-From: Tom Haynes To: Bruce Fields Cc: Linux NFS Mailing list Subject: [pynfs 05/10] Fix testFlexLayoutOldSeqid Date: Wed, 16 Dec 2020 16:35:11 -0800 Message-Id: <20201217003516.75438-6-loghyr@hammerspace.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20201217003516.75438-1-loghyr@hammerspace.com> References: <20201217003516.75438-1-loghyr@hammerspace.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Trond Myklebust LAYOUTRETURN should return NFS4ERR_OLD_STATEID when presented with an older layout that wasn't recalled. Signed-off-by: Trond Myklebust --- nfs4.1/server41tests/st_flex.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nfs4.1/server41tests/st_flex.py b/nfs4.1/server41tests/st_flex.py index 4defa81..b46941e 100644 --- a/nfs4.1/server41tests/st_flex.py +++ b/nfs4.1/server41tests/st_flex.py @@ -169,7 +169,7 @@ def testFlexLayoutOldSeqid(t, env): layoutreturn4(LAYOUTRETURN4_FILE, layoutreturn_file4(0, 0xffffffffffffffff, lo_stateid, "")))] res = sess.compound(ops) - check(res) + check(res, NFS4ERR_OLD_STATEID, "LAYOUTRETURN with an old stateid") res = close_file(sess, fh, stateid=open_stateid) check(res) From patchwork Thu Dec 17 00:35:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Haynes X-Patchwork-Id: 11978813 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2BF23C1B0D8 for ; Thu, 17 Dec 2020 00:37:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id EBE4523741 for ; Thu, 17 Dec 2020 00:37:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726155AbgLQAhE (ORCPT ); Wed, 16 Dec 2020 19:37:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49462 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727025AbgLQAhE (ORCPT ); Wed, 16 Dec 2020 19:37:04 -0500 Received: from mail-pf1-x430.google.com (mail-pf1-x430.google.com [IPv6:2607:f8b0:4864:20::430]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 895F0C061282 for ; Wed, 16 Dec 2020 16:35:51 -0800 (PST) Received: by mail-pf1-x430.google.com with SMTP id s21so17784295pfu.13 for ; Wed, 16 Dec 2020 16:35:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=rPLUvtQ0jsxz24E5r8Nmczc/IhLKl01xsVkZg9zOxqA=; b=DziI0iqNqKde4yqVyjgl0IohhHHlvPswt6onfEL00Nji/oTVK0jQ7MIXc/FhsS+uKx 4ckWURnu1cp+8YIE4SWojJTPjXiYu/5mmJO0e5pfXq30KGZZbzzPYwN1J71x1ABH7kRx HIuyZ6ymsQhJvL/HOdqcgh3LiDtD8gLKoeI4dgbFKd4F8xc4LWgo9+QHUj8Q8AFhx3Bj fpcrDExgtyw75uWEB3NvLikPImGYthzDIz1CxccnUu0M+xcMTLdPt4MzUzs528N3vfTo 6P52k7UTborifLEwKvnbRs7OgXxnK74CScLOARj6sWgCplZFUlMilFdhsj/eKj2Y+iQ4 urRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=rPLUvtQ0jsxz24E5r8Nmczc/IhLKl01xsVkZg9zOxqA=; b=g/qJNGaaeofGuX7BJYU41V8J705/c8e6/znh90jmCEk4H5svS+XE42WEcVH+N4VoXG uAYeNBLF2WQ8WyFITSu6u5Fe3TlsOkDXiBhnmIK5a855SN6AO5XitdD7Lx+0n9ZnmqXG OZN4tcb8IPTjxmfII4a0/I4SR70y0AVKwXh+4a0QSprrK4VWhcNO0dUAC0a5bjDJ99bz D+l0ht4Kmb07EzgBuHgl/nieoXgrxRdhdJSsVs1mUXYw7YEeRPwGO2iBBEajKkRyQWN4 FKFRnYM+VDvxacUD8ArfcyJW5nq/n2JoouYv0TxEpkzpYWwZIovdzc7oNVjTat9Qmesb W7cQ== X-Gm-Message-State: AOAM531DwqmtzncECJpeSCqYyWqHMJLjRu0VMSOKQ1XioBmKQh4hxX2Q syO4JZYMEgsIhf3l+PRvTIY= X-Google-Smtp-Source: ABdhPJxy4P5ORmhuIXVRT5AE0FBwC9py9TkXqb3QU/EresPD+h16/8mKHwbcnCMcyjECUpaflMqBug== X-Received: by 2002:a63:751c:: with SMTP id q28mr33701967pgc.231.1608165350961; Wed, 16 Dec 2020 16:35:50 -0800 (PST) Received: from garbo.localdomain (c-69-181-67-218.hsd1.ca.comcast.net. [69.181.67.218]) by smtp.gmail.com with ESMTPSA id v24sm4011243pgi.61.2020.12.16.16.35.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 16:35:50 -0800 (PST) From: Tom Haynes X-Google-Original-From: Tom Haynes To: Bruce Fields Cc: Linux NFS Mailing list Subject: [pynfs 06/10] st_flex: Reduce the layoutstats period to make tests finish in a sane time Date: Wed, 16 Dec 2020 16:35:12 -0800 Message-Id: <20201217003516.75438-7-loghyr@hammerspace.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20201217003516.75438-1-loghyr@hammerspace.com> References: <20201217003516.75438-1-loghyr@hammerspace.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org With a 15s sleep period, the three layoutstat tests take a huge time to run. Reduce the sleep period (and corresponding time columns) to allow the test to still test the functionality, but also run in a more reasonable period. Signed-off-by: Tom Haynes --- nfs4.1/server41tests/st_flex.py | 127 ++++++++++++++++---------------- 1 file changed, 63 insertions(+), 64 deletions(-) diff --git a/nfs4.1/server41tests/st_flex.py b/nfs4.1/server41tests/st_flex.py index b46941e..9d09dbc 100644 --- a/nfs4.1/server41tests/st_flex.py +++ b/nfs4.1/server41tests/st_flex.py @@ -506,26 +506,25 @@ def testFlexLayoutStatsReset(t, env): CODE: FFLS2 """ - ls = [[15, 14997377109, 756789248, 0, 756834304, 184774, 184763, 14996867426, 135877046309, 252579840, 0, 252665856, 61686, 61665, 14997307909, 336986104593], - [15, 29997404625, 1527537664, 0, 1527566336, 372941, 372934, 29996142132, 275416132139, 508502016, 0, 508604416, 124171, 124146, 29997293567, 670368077434], - [15, 44999356031, 2331115520, 0, 2331136000, 569125, 569120, 44997516473, 414235887583, 775569408, 0, 775680000, 189375, 189348, 44999096896, 1004056428600], - [15, 60001513873, 3142483968, 0, 3142529024, 767219, 767208, 59999263507, 550956049466, 1044996096, 0, 1045082112, 255147, 255126, 60001232968, 1340163285214], - [15, 75001564615, 3969384448, 0, 3969413120, 969095, 969088, 74999204445, 687761120289, 1320456192, 0, 1320542208, 322398, 322377, 75001158793, 1676193906267], - [15, 90001651970, 4873195520, 0, 4873248768, 1189758, 1189745, 89999194540, 828644696229, 1620467712, 0, 1620545536, 395641, 395622, 90000994588, 2006906488984], - [15, 105001710572, 5816430592, 0, 5816467456, 1420036, 1420027, 104995782871, 979226777566, 1935175680, 0, 1935269888, 472478, 472455, 104999171073, 2326727992588], - [15, 14997245247, 1466019840, 0, 1466097664, 357934, 357915, 15001797989, 277140995467, 487624704, 0, 487677952, 119062, 119049, 14997939745, 179221181962], - [15, 29999503656, 2929393664, 0, 2929500160, 715210, 715184, 30001965158, 554484427501, 974204928, 0, 974229504, 237849, 237843, 29998797328, 359060066193], - [15, 45000138417, 4245204992, 0, 4245245952, 1036437, 1036427, 45005641995, 825579118923, 1411981312, 0, 1412071424, 344744, 344722, 44996637179, 547563519532], - [15, 60000125536, 5545734144, 0, 5545807872, 1353957, 1353939, 60009284822, 1097378466922, 1844367360, 0, 1844400128, 450293, 450285, 59996684404, 735124264647], - [15, 14999894874, 1278164992, 0, 1278226432, 312067, 312052, 15006094174, 270749903934, 425877504, 0, 425947136, 103991, 103974, 15000341906, 189401125380], - [15, 30000017314, 2586595328, 0, 2586648576, 631506, 631493, 30009142707, 540229533389, 860536832, 0, 860614656, 210111, 210092, 29999220098, 379353634204], - [15, 44999991304, 3859476480, 0, 3859574784, 942279, 942255, 45011969088, 808964878766, 1283543040, 0, 1283575808, 313373, 313365, 44999310875, 571777183394], - [15, 60000803942, 5141098496, 0, 5141168128, 1255168, 1255151, 60015665154, 1075012244233, 1709035520, 0, 1709096960, 417260, 417245, 60000142398, 766775808737], - [15, 75000722908, 6431453184, 0, 6431526912, 1570197, 1570179, 75018741381, 1344327593333, 2140831744, 0, 2140889088, 522678, 522664, 75000341374, 957762218131], - [15, 14990345451, 1310584832, 0, 1310654464, 319984, 319967, 14990338511, 276432361830, 436121600, 0, 436183040, 106490, 106475, 14991353202, 182231098560], - [15, 29990415908, 2630619136, 0, 2630701056, 642261, 642241, 29983066936, 554752250256, 875077632, 0, 875126784, 213654, 213642, 29982845793, 362758943732], - [15, 44992404751, 3910578176, 0, 3910664192, 954752, 954731, 44982785073, 827471490050, 1300946944, 0, 1300992000, 317625, 317614, 44985003324, 549721947944]] - + ls = [[1, 999825140, 756789248, 0, 756834304, 184774, 184763, 999791161, 9058469753, 252579840, 0, 252665856, 61686, 61665, 999820527, 22465740306], + [1, 1999826975, 1527537664, 0, 1527566336, 372941, 372934, 1999742808, 18361075475, 508502016, 0, 508604416, 124171, 124146, 1999819571, 44691205162], + [1, 2999957068, 2331115520, 0, 2331136000, 569125, 569120, 2999834431, 27615725838, 775569408, 0, 775680000, 189375, 189348, 2999939793, 66937095240], + [1, 4000100924, 3142483968, 0, 3142529024, 767219, 767208, 3999950900, 36730403297, 1044996096, 0, 1045082112, 255147, 255126, 4000082197, 89344219014], + [1, 5000104307, 3969384448, 0, 3969413120, 969095, 969088, 4999946963, 45850741352, 1320456192, 0, 1320542208, 322398, 322377, 5000077252, 111746260417], + [1, 6000110131, 4873195520, 0, 4873248768, 1189758, 1189745, 5999946302, 55242979748, 1620467712, 0, 1620545536, 395641, 395622, 6000066305, 133793765932], + [1, 7000114038, 5816430592, 0, 5816467456, 1420036, 1420027, 6999718858, 65281785171, 1935175680, 0, 1935269888, 472478, 472455, 6999944738, 155115199505], + [1, 999816349, 1466019840, 0, 1466097664, 357934, 357915, 1000119865, 18476066364, 487624704, 0, 487677952, 119062, 119049, 999862649, 11948078797], + [1, 1999966910, 2929393664, 0, 2929500160, 715210, 715184, 2000131010, 36965628500, 974204928, 0, 974229504, 237849, 237843, 1999919821, 23937337746], + [1, 3000009227, 4245204992, 0, 4245245952, 1036437, 1036427, 3000376133, 55038607928, 1411981312, 0, 1412071424, 344744, 344722, 2999775811, 36504234635], + [1, 4000008369, 5545734144, 0, 5545807872, 1353957, 1353939, 4000618988, 73158564461, 1844367360, 0, 1844400128, 450293, 450285, 3999778960, 49008284309], + [1, 999992991, 1278164992, 0, 1278226432, 312067, 312052, 1000406278, 18049993595, 425877504, 0, 425947136, 103991, 103974, 1000022793, 12626741692], + [1, 2000001154, 2586595328, 0, 2586648576, 631506, 631493, 2000609513, 36015302225, 860536832, 0, 860614656, 210111, 210092, 1999948006, 25290242280], + [1, 2999999420, 3859476480, 0, 3859574784, 942279, 942255, 3000797939, 53930991917, 1283543040, 0, 1283575808, 313373, 313365, 2999954058, 38118478892], + [1, 4000053596, 5141098496, 0, 5141168128, 1255168, 1255151, 4001044343, 71667482948, 1709035520, 0, 1709096960, 417260, 417245, 4000009493, 51118387249], + [1, 5000048193, 6431453184, 0, 6431526912, 1570197, 1570179, 5001249425, 89621839555, 2140831744, 0, 2140889088, 522678, 522664, 5000022758, 63850814542], + [1, 999356363, 1310584832, 0, 1310654464, 319984, 319967, 999355900, 18428824122, 436121600, 0, 436183040, 106490, 106475, 999423546, 12148739904], + [1, 1999361060, 2630619136, 0, 2630701056, 642261, 642241, 1998871129, 36983483350, 875077632, 0, 875126784, 213654, 213642, 1998856386, 24183929582], + [1, 2999493650, 3910578176, 0, 3910664192, 954752, 954731, 2998852338, 55164766003, 1300946944, 0, 1300992000, 317625, 317614, 2999000221, 36648129862]] _LayoutStats(t, env, ls) def testFlexLayoutStatsStraight(t, env): @@ -537,25 +536,25 @@ def testFlexLayoutStatsStraight(t, env): CODE: FFLS3 """ - ls = [[15, 14997377109, 756789248, 0, 756834304, 184774, 184763, 14996867426, 135877046309, 252579840, 0, 252665856, 61686, 61665, 14997307909, 336986104593], - [15, 29997404625, 1527537664, 0, 1527566336, 372941, 372934, 29996142132, 275416132139, 508502016, 0, 508604416, 124171, 124146, 29997293567, 670368077434], - [15, 44999356031, 2331115520, 0, 2331136000, 569125, 569120, 44997516473, 414235887583, 775569408, 0, 775680000, 189375, 189348, 44999096896, 1004056428600], - [15, 60001513873, 3142483968, 0, 3142529024, 767219, 767208, 59999263507, 550956049466, 1044996096, 0, 1045082112, 255147, 255126, 60001232968, 1340163285214], - [15, 75001564615, 3969384448, 0, 3969413120, 969095, 969088, 74999204445, 687761120289, 1320456192, 0, 1320542208, 322398, 322377, 75001158793, 1676193906267], - [15, 90001651970, 4873195520, 0, 4873248768, 1189758, 1189745, 89999194540, 828644696229, 1620467712, 0, 1620545536, 395641, 395622, 90000994588, 2006906488984], - [15, 105001710572, 5816430592, 0, 5816467456, 1420036, 1420027, 104995782871, 979226777566, 1935175680, 0, 1935269888, 472478, 472455, 104999171073, 2326727992588], - [15, 119998955819, 7282450432, 0, 7282565120, 1777970, 1777942, 119997580860, 1256367773033, 2422800384, 0, 2422947840, 591540, 591504, 119997110818, 2505949174550], - [15, 135001214228, 8745824256, 0, 8745967616, 2135246, 2135211, 134997748029, 1533711205067, 2909380608, 0, 2909499392, 710327, 710298, 134997968401, 2685788058781], - [15, 150001848989, 10061635584, 0, 10061713408, 2456473, 2456454, 150001424866, 1804805896489, 3347156992, 0, 3347341312, 817222, 817177, 149995808252, 2874291512120], - [15, 165001836108, 11362164736, 0, 11362275328, 2773993, 2773966, 165005067693, 2076605244488, 3779543040, 0, 3779670016, 922771, 922740, 164995855477, 3061852257235], - [15, 180001730982, 12640329728, 0, 12640501760, 3086060, 3086018, 180011161867, 2347355148422, 4205420544, 0, 4205617152, 1026762, 1026714, 179996197383, 3251253382615], - [15, 195001853422, 13948760064, 0, 13948923904, 3405499, 3405459, 195014210400, 2616834777877, 4640079872, 0, 4640284672, 1132882, 1132832, 194995075575, 3441205891439], - [15, 210001827412, 15221641216, 0, 15221850112, 3716272, 3716221, 210017036781, 2885570123254, 5063086080, 0, 5063245824, 1236144, 1236105, 209995166352, 3633629440629], - [15, 225002640050, 16503263232, 0, 16503443456, 4029161, 4029117, 225020732847, 3151617488721, 5488578560, 0, 5488766976, 1340031, 1339985, 224995997875, 3828628065972], - [15, 240002559016, 17793617920, 0, 17793802240, 4344190, 4344145, 240023809074, 3420932837821, 5920374784, 0, 5920559104, 1445449, 1445404, 239996196851, 4019614475366], - [15, 254992904467, 19104202752, 0, 19104456704, 4664174, 4664112, 255014147585, 3697365199651, 6356496384, 0, 6356742144, 1551939, 1551879, 254987550053, 4201845573926], - [15, 269992974924, 20424237056, 0, 20424503296, 4986451, 4986386, 270006876010, 3975685088077, 6795452416, 0, 6795685888, 1659103, 1659046, 269979042644, 4382373419098], - [15, 284994963767, 21704196096, 0, 21704466432, 5298942, 5298876, 285006594147, 4248404327871, 7221321728, 0, 7221551104, 1763074, 1763018, 284981200175, 4569336423310]] + ls = [[1, 999825140, 756789248, 0, 756834304, 184774, 184763, 999791161, 9058469753, 252579840, 0, 252665856, 61686, 61665, 999820527, 22465740306], + [1, 1999826975, 1527537664, 0, 1527566336, 372941, 372934, 1999742808, 18361075475, 508502016, 0, 508604416, 124171, 124146, 1999819571, 44691205162], + [1, 2999957068, 2331115520, 0, 2331136000, 569125, 569120, 2999834431, 27615725838, 775569408, 0, 775680000, 189375, 189348, 2999939793, 66937095240], + [1, 4000100924, 3142483968, 0, 3142529024, 767219, 767208, 3999950900, 36730403297, 1044996096, 0, 1045082112, 255147, 255126, 4000082197, 89344219014], + [1, 5000104307, 3969384448, 0, 3969413120, 969095, 969088, 4999946963, 45850741352, 1320456192, 0, 1320542208, 322398, 322377, 5000077252, 111746260417], + [1, 6000110131, 4873195520, 0, 4873248768, 1189758, 1189745, 5999946302, 55242979748, 1620467712, 0, 1620545536, 395641, 395622, 6000066305, 133793765932], + [1, 7000114038, 5816430592, 0, 5816467456, 1420036, 1420027, 6999718858, 65281785171, 1935175680, 0, 1935269888, 472478, 472455, 6999944738, 155115199505], + [1, 7999930387, 7282450432, 0, 7282565120, 1777970, 1777942, 7999838724, 83757851535, 2422800384, 0, 2422947840, 591540, 591504, 7999807387, 167063278303], + [1, 9000080948, 8745824256, 0, 8745967616, 2135246, 2135211, 8999849868, 102247413671, 2909380608, 0, 2909499392, 710327, 710298, 8999864560, 179052537252], + [1, 10000123265, 10061635584, 0, 10061713408, 2456473, 2456454, 10000094991, 120320393099, 3347156992, 0, 3347341312, 817222, 817177, 9999720550, 191619434141], + [1, 11000122407, 11362164736, 0, 11362275328, 2773993, 2773966, 11000337846, 138440349632, 3779543040, 0, 3779670016, 922771, 922740, 10999723698, 204123483815], + [1, 12000115398, 12640329728, 0, 12640501760, 3086060, 3086018, 12000744124, 156490343228, 4205420544, 0, 4205617152, 1026762, 1026714, 11999746492, 216750225507], + [1, 13000123561, 13948760064, 0, 13948923904, 3405499, 3405459, 13000947360, 174455651858, 4640079872, 0, 4640284672, 1132882, 1132832, 12999671705, 229413726095], + [1, 14000121827, 15221641216, 0, 15221850112, 3716272, 3716221, 14001135785, 192371341550, 5063086080, 0, 5063245824, 1236144, 1236105, 13999677756, 242241962708], + [1, 15000176003, 16503263232, 0, 16503443456, 4029161, 4029117, 15001382189, 210107832581, 5488578560, 0, 5488766976, 1340031, 1339985, 14999733191, 255241871064], + [1, 16000170601, 17793617920, 0, 17793802240, 4344190, 4344145, 16001587271, 228062189188, 5920374784, 0, 5920559104, 1445449, 1445404, 15999746456, 267974298357], + [1, 16999526964, 19104202752, 0, 19104456704, 4664174, 4664112, 17000943172, 246491013310, 6356496384, 0, 6356742144, 1551939, 1551879, 16999170003, 280123038261], + [1, 17999531661, 20424237056, 0, 20424503296, 4986451, 4986386, 18000458400, 265045672538, 6795452416, 0, 6795685888, 1659103, 1659046, 17998602842, 292158227939], + [1, 18999664251, 21704196096, 0, 21704466432, 5298942, 5298876, 19000439609, 283226955191, 7221321728, 0, 7221551104, 1763074, 1763018, 18998746678, 304622428220]] _LayoutStats(t, env, ls) def testFlexLayoutStatsOverflow(t, env): @@ -566,31 +565,31 @@ def testFlexLayoutStatsOverflow(t, env): CODE: FFLS4 """ - ls = [[27, 27614183359, 0, 0, 0, 0, 0, 0, 0, 41943040, 0, 96468992, 10292, 10240, 26609085208, 134047775590766], - [15, 42725368747, 0, 0, 0, 0, 0, 0, 0, 41943040, 0, 2402213888, 15847, 11881, 31458638093, 136367242297571], - [15, 57912190475, 0, 0, 0, 0, 0, 0, 0, 41943040, 0, 2406907904, 15924, 11881, 31458638093, 136367242297571], - [15, 72921814168, 0, 0, 0, 0, 0, 0, 0, 896532480, 0, 2946293760, 16847, 15969, 70391696445, 275087250172195], - [15, 87922239746, 0, 0, 0, 0, 0, 0, 0, 896532480, 0, 3196473344, 18335, 15969, 70391696445, 275087250172195], - [15, 102949476399, 0, 0, 0, 0, 0, 0, 0, 1808183296, 0, 4038545408, 20452, 19074, 92455324261, 310159328537298], - [15, 117951351182, 0, 0, 0, 0, 0, 0, 0, 2587693056, 0, 4486782976, 22613, 19935, 116950745229, 331739899803911], - [16, 133017224561, 0, 0, 0, 0, 0, 0, 0, 2587693056, 0, 4830961664, 23306, 22169, 118004988775, 353778424445917], - [15, 148031127154, 0, 0, 0, 0, 0, 0, 0, 4132970496, 0, 5960671232, 29861, 26094, 146128115965, 387064682636158], - [15, 163058556237, 0, 0, 0, 0, 0, 0, 0, 5614419968, 0, 7550558208, 40590, 39198, 159139080717, 453635077855389], - [15, 178067770476, 0, 0, 0, 0, 0, 0, 0, 5614419968, 0, 7838756864, 41554, 39198, 159139080717, 453635077855389], - [15, 193081456711, 0, 0, 0, 0, 0, 0, 0, 6428528640, 0, 8151494656, 43497, 42179, 189486399712, 517147615890054], - [15, 208082626131, 0, 0, 0, 0, 0, 0, 0, 7284596736, 0, 8656367616, 47929, 43079, 207082978313, 532741795045495], - [15, 223082643294, 0, 0, 0, 0, 0, 0, 0, 7944978432, 0, 9539055616, 58212, 53705, 222083467525, 636168303637199], - [15, 238083127306, 0, 0, 0, 0, 0, 0, 0, 7944978432, 0, 9763426304, 62673, 57863, 223491351125, 650450833313121], - [15, 253175262253, 0, 0, 0, 0, 0, 0, 0, 7944978432, 0, 9860571136, 65509, 57863, 223491351125, 650450833313121], - [15, 268185316876, 0, 0, 0, 0, 0, 0, 0, 8729772032, 0, 10523738112, 71014, 65222, 267165070170, 853839631006322], - [17, 285787666679, 0, 0, 0, 0, 0, 0, 0, 9522692096, 0, 10779361280, 72612, 66965, 284787142241, 896650223319399], - [33, 318568880195, 0, 0, 0, 0, 0, 0, 0, 9522692096, 0, 10779361280, 72613, 72611, 317562885639, 1120229814239633], - [15, 333747489171, 0, 0, 0, 0, 0, 0, 0, 10788278272, 0, 10788802560, 74918, 74790, 332233465692, 1121703181284495], - [15, 348749618256, 0, 0, 0, 0, 0, 0, 0, 10801360896, 0, 10801885184, 78112, 77984, 347235605251, 1123668237106158], - [14, 362014682745, 0, 0, 0, 0, 0, 0, 0, 10812923904, 0, 10814496768, 81191, 80935, 361134569864, 1125289046746198], - [15, 377016435231, 0, 0, 0, 0, 0, 0, 0, 10836291584, 0, 10837864448, 86896, 86640, 376136316640, 1127198465086932], - [15, 392027464946, 0, 0, 0, 0, 0, 0, 0, 10852364288, 0, 10853937152, 90820, 90564, 391147321463, 1129113173731145], - [15, 407034683097, 0, 0, 0, 0, 0, 0, 0, 10864914432, 0, 10866487296, 93884, 93628, 406154554429, 1131023767183211]] + ls = [[3, 3944883337, 0, 0, 0, 0, 0, 0, 0, 41943040, 0, 96468992, 10292, 10240, 3801297886, 19149682227252], + [2, 6103624106, 0, 0, 0, 0, 0, 0, 0, 41943040, 0, 2402213888, 15847, 11881, 4494091156, 19481034613938], + [2, 8273170067, 0, 0, 0, 0, 0, 0, 0, 41943040, 0, 2406907904, 15924, 11881, 4494091156, 19481034613938], + [2, 10417402024, 0, 0, 0, 0, 0, 0, 0, 896532480, 0, 2946293760, 16847, 15969, 10055956635, 39298178596027], + [2, 12560319963, 0, 0, 0, 0, 0, 0, 0, 896532480, 0, 3196473344, 18335, 15969, 10055956635, 39298178596027], + [2, 14707068057, 0, 0, 0, 0, 0, 0, 0, 1808183296, 0, 4038545408, 20452, 19074, 13207903465, 44308475505328], + [2, 16850193026, 0, 0, 0, 0, 0, 0, 0, 2587693056, 0, 4486782976, 22613, 19935, 16707249318, 47391414257701], + [2, 19002460651, 0, 0, 0, 0, 0, 0, 0, 2587693056, 0, 4830961664, 23306, 22169, 16857855539, 50539774920845], + [2, 21147303879, 0, 0, 0, 0, 0, 0, 0, 4132970496, 0, 5960671232, 29861, 26094, 20875445137, 55294954662308], + [2, 23294079462, 0, 0, 0, 0, 0, 0, 0, 5614419968, 0, 7550558208, 40590, 39198, 22734154388, 64805011122198], + [2, 25438252925, 0, 0, 0, 0, 0, 0, 0, 5614419968, 0, 7838756864, 41554, 39198, 22734154388, 64805011122198], + [2, 27583065244, 0, 0, 0, 0, 0, 0, 0, 6428528640, 0, 8151494656, 43497, 42179, 27069485673, 73878230841436], + [2, 29726089447, 0, 0, 0, 0, 0, 0, 0, 7284596736, 0, 8656367616, 47929, 43079, 29583282616, 76105970720785], + [2, 31868949042, 0, 0, 0, 0, 0, 0, 0, 7944978432, 0, 9539055616, 58212, 53705, 31726209646, 90881186233885], + [2, 34011875329, 0, 0, 0, 0, 0, 0, 0, 7944978432, 0, 9763426304, 62673, 57863, 31927335875, 92921547616160], + [2, 36167894607, 0, 0, 0, 0, 0, 0, 0, 7944978432, 0, 9860571136, 65509, 57863, 31927335875, 92921547616160], + [2, 38312188125, 0, 0, 0, 0, 0, 0, 0, 8729772032, 0, 10523738112, 71014, 65222, 38166438595, 121977090143760], + [2, 40826809525, 0, 0, 0, 0, 0, 0, 0, 9522692096, 0, 10779361280, 72612, 66965, 40683877463, 128092889045628], + [4, 45509840027, 0, 0, 0, 0, 0, 0, 0, 9522692096, 0, 10779361280, 72613, 72611, 45366126519, 160032830605661], + [2, 47678212738, 0, 0, 0, 0, 0, 0, 0, 10788278272, 0, 10788802560, 74918, 74790, 47461923670, 160243311612070], + [2, 49821374036, 0, 0, 0, 0, 0, 0, 0, 10801360896, 0, 10801885184, 78112, 77984, 49605086464, 160524033872308], + [1, 51716383249, 0, 0, 0, 0, 0, 0, 0, 10812923904, 0, 10814496768, 81191, 80935, 51590652837, 160755578106599], + [2, 53859490747, 0, 0, 0, 0, 0, 0, 0, 10836291584, 0, 10837864448, 86896, 86640, 53733759520, 161028352155276], + [2, 56003923563, 0, 0, 0, 0, 0, 0, 0, 10852364288, 0, 10853937152, 90820, 90564, 55878188780, 161301881961592], + [2, 58147811871, 0, 0, 0, 0, 0, 0, 0, 10864914432, 0, 10866487296, 93884, 93628, 58022079204, 161574823883315]] _LayoutStats(t, env, ls) def layoutget_return(sess, fh, open_stateid, allowed_errors=NFS4_OK, From patchwork Thu Dec 17 00:35:13 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Haynes X-Patchwork-Id: 11978815 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 72D00C2BB9A for ; Thu, 17 Dec 2020 00:37:06 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3931823719 for ; Thu, 17 Dec 2020 00:37:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727484AbgLQAhF (ORCPT ); Wed, 16 Dec 2020 19:37:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49468 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727025AbgLQAhF (ORCPT ); Wed, 16 Dec 2020 19:37:05 -0500 Received: from mail-pg1-x535.google.com (mail-pg1-x535.google.com [IPv6:2607:f8b0:4864:20::535]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D08E1C061285 for ; Wed, 16 Dec 2020 16:35:52 -0800 (PST) Received: by mail-pg1-x535.google.com with SMTP id t37so18982909pga.7 for ; Wed, 16 Dec 2020 16:35:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wdDxYmnLb2wv9cm8W0ouLRKbEvYIyAmeD8bMBdjy3M4=; b=rqIKfXYXw0ct/c+5wuRq5wSkbsTO7bL0PNOkMZviBfJVm2pt5SK/cuVlqk8MNnYWC6 EpGYrqyl7p857wBbxtYffwVeFdU3UQ8pYD+9dGolDNNfftjOxIqGZjXi8vztZIfAwEDW qGeegFgAc9KHxCU1KQ7BxJJ+z5zc7bXoQPjmUfXsICoLpJemxsa8YRnFKfZfweIZllAl qgKwJIcRN+bJwffsaCXauvULoddGsdScHyCwnKc/oel/HMg/xSA/D5Ob1gpcH1SVhspM si3CNdgYD5wunzNJ1tEXD7ilK8D3gc0BeBEyMhi4dWj7q5G9lqYzomwMP3cGKYJNZaf4 vvGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=wdDxYmnLb2wv9cm8W0ouLRKbEvYIyAmeD8bMBdjy3M4=; b=MKuMROnXESgRrScvq6Art1ky5S5rxhy0H7hztb2ws5YrHjnBinXRdIRDbAgKrAqQ/v b6UYDfSXhmdQJdeS73CFlPnRS5kO6E2EPNJUHzQSspfJ2JTRZSJb134x0zOTD4mZpVTZ meENXCTDOBhuUQ9OZWpfYS20wNQpTrEZifvzz3tqvS2yAlxe1zI6nARSWmvzgu7elK3z FQ3plT/ViJpePz261h5r0OQgwFQr42x8dxMaKUhr7Bbz2h7WkFU/MAFq4peXnqO0DmdP Oehq1wmFAgqm0ab353JZe7O0sWq3rZOGV26RLzlor1e3sXCv535gAcNuHsDzPE6oTfRR 2eEw== X-Gm-Message-State: AOAM532SpGS9WeM2wkEVd27rvu0zaV/T7iFzfsTeNjlKpFP5ev0nawi4 GWbkQ4E6CLZVWJQWc1Z152s= X-Google-Smtp-Source: ABdhPJxAdSIdzb32rTdY0UkpJKrzePjIWP8Rd22vpIibvQC6avCzLSbUq1veFipu6A/iI2luc/A8UQ== X-Received: by 2002:a63:181b:: with SMTP id y27mr35048253pgl.408.1608165352485; Wed, 16 Dec 2020 16:35:52 -0800 (PST) Received: from garbo.localdomain (c-69-181-67-218.hsd1.ca.comcast.net. [69.181.67.218]) by smtp.gmail.com with ESMTPSA id v24sm4011243pgi.61.2020.12.16.16.35.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 16:35:51 -0800 (PST) From: Tom Haynes X-Google-Original-From: Tom Haynes To: Bruce Fields Cc: Linux NFS Mailing list Subject: [pynfs 07/10] st_flex: Fix up test names Date: Wed, 16 Dec 2020 16:35:13 -0800 Message-Id: <20201217003516.75438-8-loghyr@hammerspace.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20201217003516.75438-1-loghyr@hammerspace.com> References: <20201217003516.75438-1-loghyr@hammerspace.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Signed-off-by: Tom Haynes --- nfs4.1/server41tests/st_flex.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nfs4.1/server41tests/st_flex.py b/nfs4.1/server41tests/st_flex.py index 9d09dbc..63efdd2 100644 --- a/nfs4.1/server41tests/st_flex.py +++ b/nfs4.1/server41tests/st_flex.py @@ -894,7 +894,7 @@ def testFlexLayoutReturnNospcWrite(t, env): Send LAYOUTRETURN with NFS4ERR_NOSPC on WRITE FLAGS: flex layoutreturn - CODE: FFLORNOSPC + CODE: FFLORNOSPCWRITE """ name = env.testname(t) sess = env.c1.new_pnfs_client_session(env.testname(t)) @@ -947,7 +947,7 @@ def testFlexLayoutReturnFbigWrite(t, env): Send LAYOUTRETURN with NFS4ERR_FBIG on WRITE FLAGS: flex layoutreturn - CODE: FFLORFBIG + CODE: FFLORFBIGWRITE """ name = env.testname(t) sess = env.c1.new_pnfs_client_session(env.testname(t)) From patchwork Thu Dec 17 00:35:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Haynes X-Patchwork-Id: 11978817 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9FBD7C0018C for ; Thu, 17 Dec 2020 00:37:06 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6867623741 for ; Thu, 17 Dec 2020 00:37:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727025AbgLQAhF (ORCPT ); Wed, 16 Dec 2020 19:37:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49470 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727325AbgLQAhF (ORCPT ); Wed, 16 Dec 2020 19:37:05 -0500 Received: from mail-pg1-x52c.google.com (mail-pg1-x52c.google.com [IPv6:2607:f8b0:4864:20::52c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2D529C061248 for ; Wed, 16 Dec 2020 16:35:54 -0800 (PST) Received: by mail-pg1-x52c.google.com with SMTP id w16so18986370pga.9 for ; Wed, 16 Dec 2020 16:35:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=f2p4NDEjDVimhO6Yt6W7ZOCtF0nLrqNvCiwHIwoKLpI=; b=BfveUUfZd/sneh0dfS7tbX/O4mtFbWK0ypQakpg1DA5oqFeO+tFxV78qwZ/LciBTGy Azfps75ftkRlH/xtO+UrX50kPO7Bx7JcXhnBY96JkKESbclpFh6+nRHYoT0C6wNsxf0j C8axuhJJrouix9yce31RDFXMwSjXtZt7h4ULN7A8AHfvNGrFkFRVaF3ooCFXqxC6cQkI P1T3LDSiVhSpOf4JzD1XQnuXg3zK9orqRIdcRabwS8k9fMJsiI6aZsu6OJ2kH+VRVzQ+ 5xVUvm+Yb2sqZF5n8rd4T+oPvPhe04yuR8oCaN4XyYrpoIraMDndNaqa34l2rx0t0qjq H0dw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=f2p4NDEjDVimhO6Yt6W7ZOCtF0nLrqNvCiwHIwoKLpI=; b=BQlcAXlH/w7kS1Fz3/qSChbLywwcc9Qw8tPICiCklUakJVLeFmn9EeLHj/aOcAftsp F+WU2RFQt09tWwYQUbyTzpWMNH0ezQK3IoioCq16qpZwwZg/wAw5lI5XUvvi/rWA/Suh txgRCeqqhtBRASQpiQC0aX/Rapw6HJI4JEAIWn9ZnG72+UUB8to/Mc5IqoNprtydXrVy gmar+GUY36SaPzVHwKHFqfg71jVifk68rx+WrnRPgh+MAucdVp2aarTqWg4eV9SEhMpl PrjeocNwTRC4+gQ5Gmc7tDhQNtxK86osQZI9cWY2yXEdCMs2dQpsnM1lv+lgo8cNSL15 +RuA== X-Gm-Message-State: AOAM530PQyRPpDoa0zX7GZHbntqghw45LKP2ichxHll+0nVyKxYahIui OMBTHVpxv2ixzLiPAwANv9hxiga9qlFRBg== X-Google-Smtp-Source: ABdhPJzxNBaQf/byX6DuKm7fVHHsb/wV1MOr53HFdJo+JijHqcH1sZj5jOfaTTISuUas4fEYZe0L3Q== X-Received: by 2002:a63:550a:: with SMTP id j10mr4816591pgb.370.1608165353751; Wed, 16 Dec 2020 16:35:53 -0800 (PST) Received: from garbo.localdomain (c-69-181-67-218.hsd1.ca.comcast.net. [69.181.67.218]) by smtp.gmail.com with ESMTPSA id v24sm4011243pgi.61.2020.12.16.16.35.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 16:35:53 -0800 (PST) From: Tom Haynes X-Google-Original-From: Tom Haynes To: Bruce Fields Cc: Linux NFS Mailing list Subject: [pynfs 08/10] st_flex: Only do 100 layoutget/return in loop Date: Wed, 16 Dec 2020 16:35:14 -0800 Message-Id: <20201217003516.75438-9-loghyr@hammerspace.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20201217003516.75438-1-loghyr@hammerspace.com> References: <20201217003516.75438-1-loghyr@hammerspace.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Signed-off-by: Tom Haynes --- nfs4.1/server41tests/st_flex.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nfs4.1/server41tests/st_flex.py b/nfs4.1/server41tests/st_flex.py index 63efdd2..596c75e 100644 --- a/nfs4.1/server41tests/st_flex.py +++ b/nfs4.1/server41tests/st_flex.py @@ -1074,16 +1074,16 @@ def testFlexLayoutReturnDelayWrite(t, env): res = close_file(sess, fh, stateid=open_stateid) check(res) -def testFlexLayoutReturn1K(t, env): +def testFlexLayoutReturn100(t, env): """ - Perform LAYOUTGET and LAYOUTRETURN 1K times with error being returned periodically + Perform LAYOUTGET and LAYOUTRETURN 100 times with error being returned periodically FLAGS: flex layoutreturn - CODE: FFLOR1K + CODE: FFLOR100 """ name = env.testname(t) sess = env.c1.new_pnfs_client_session(env.testname(t)) - count = 1000 # Repeat LAYOUTGET/LAYOUTRETURN count times + count = 100 # Repeat LAYOUTGET/LAYOUTRETURN count times layout_error_ratio = 10 # Send an error every layout_error_ratio layout returns # Create the file From patchwork Thu Dec 17 00:35:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Haynes X-Patchwork-Id: 11978819 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9C71BC4361B for ; Thu, 17 Dec 2020 00:37:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6207C23719 for ; Thu, 17 Dec 2020 00:37:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727571AbgLQAhG (ORCPT ); Wed, 16 Dec 2020 19:37:06 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49476 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727325AbgLQAhG (ORCPT ); Wed, 16 Dec 2020 19:37:06 -0500 Received: from mail-pg1-x530.google.com (mail-pg1-x530.google.com [IPv6:2607:f8b0:4864:20::530]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 67236C061257 for ; Wed, 16 Dec 2020 16:35:55 -0800 (PST) Received: by mail-pg1-x530.google.com with SMTP id p18so7394603pgm.11 for ; Wed, 16 Dec 2020 16:35:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=amNE1/ZvbK41u6+sZBiwKUhq349CVzHsftZ5n2dksVU=; b=PDOPoqjVxngXc12d2XyduKQ8HYafeWQDbXk1m1tSupt40rLCdsODI7Pw99kbW7mkZ/ 7mCqGx3s19iVRfU8orf87v0z9oI9qV3BqgvuUOxmawz6CV7Fuv4zij+bQjtDC4xawZYK l43XyFuXofhp9E6FomqqhGUoDkegKj0B8i/z9/Xa+nAp4Yu+ZOkohjq5GW1CCOIZ+0MD +2vC78zc2S3TtrwV4wZA44ADlmSty2EhLQyzlPGiaLBaS5I9qJ6YFMdym5q7P4NrEtUl FErv4QRL5H1nrClzrBNEbtrr+FbrV4gaeeeTWp6+937qVxV4yhuOgOR3boGH0i4qluGp 2+9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=amNE1/ZvbK41u6+sZBiwKUhq349CVzHsftZ5n2dksVU=; b=kpFT2UIn6Q7hNf6vrifk/Ar4+n9NLPuCeNX8umHZCd2wraHn3vFg/dPE6c6zD0bzqG kMC1zdbIz4snU5zOxCHxw/o735Ax5b8g2SbEpatsmiY2etoZO/35GiBmZ3PM1pFnxSTw UwrM+Q7mALtRItNlqlD7UL5bYvqYWFj1UbJSUOcRph8WEeSfSfqwnptPxWwPfv+njjl4 +dbIf4XO6ITWf0stdxy4XKhbjojBXZxbv6c3/UsviEskUKmyAoCr5rCGnCMkk+3Zn7Vk QCdpBjnwebzIqEtlwOpfP5P47NcM//2cfwc5QldFDghLPNo9dXojbZTeLbQkJUDX20Dd WIrA== X-Gm-Message-State: AOAM531WJJRuOoo2BxVzNfsgn31Fw72QANDR2hy7hatISDk7bsNMIJ8t TpOaoHzFgLBjD2of6r3ACEJHnDGMv3u6bQ== X-Google-Smtp-Source: ABdhPJzoqm9p1+titXv0qPwwZDxKt0RmJZMYFEWd2ETsVRhV4BIUL6Nk5lYx5mWvY4Jm7oafE729Cg== X-Received: by 2002:a63:1d59:: with SMTP id d25mr11398935pgm.259.1608165355037; Wed, 16 Dec 2020 16:35:55 -0800 (PST) Received: from garbo.localdomain (c-69-181-67-218.hsd1.ca.comcast.net. [69.181.67.218]) by smtp.gmail.com with ESMTPSA id v24sm4011243pgi.61.2020.12.16.16.35.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 16:35:54 -0800 (PST) From: Tom Haynes X-Google-Original-From: Tom Haynes To: Bruce Fields Cc: Linux NFS Mailing list Subject: [pynfs 09/10] st_flex: We can't return the layout without a layout stateid Date: Wed, 16 Dec 2020 16:35:15 -0800 Message-Id: <20201217003516.75438-10-loghyr@hammerspace.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20201217003516.75438-1-loghyr@hammerspace.com> References: <20201217003516.75438-1-loghyr@hammerspace.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Signed-off-by: Tom Haynes --- nfs4.1/server41tests/st_flex.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nfs4.1/server41tests/st_flex.py b/nfs4.1/server41tests/st_flex.py index 596c75e..c6df68f 100644 --- a/nfs4.1/server41tests/st_flex.py +++ b/nfs4.1/server41tests/st_flex.py @@ -605,6 +605,8 @@ def layoutget_return(sess, fh, open_stateid, allowed_errors=NFS4_OK, 0, NFS4_UINT64_MAX, 4196, open_stateid, 0xffff)] res = sess.compound(ops) check(res, allowed_errors) + if nfsstat4[res.status] is not NFS4_OK: + return [res] # We can't return the layout without a stateid! layout_stateid = res.resarray[-1].logr_stateid # Return layout From patchwork Thu Dec 17 00:35:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Haynes X-Patchwork-Id: 11978821 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C3CCCC2BBCD for ; Thu, 17 Dec 2020 00:37:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 90E1C23741 for ; Thu, 17 Dec 2020 00:37:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727325AbgLQAhH (ORCPT ); Wed, 16 Dec 2020 19:37:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49478 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727570AbgLQAhG (ORCPT ); Wed, 16 Dec 2020 19:37:06 -0500 Received: from mail-pf1-x42a.google.com (mail-pf1-x42a.google.com [IPv6:2607:f8b0:4864:20::42a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 13671C0611C5 for ; Wed, 16 Dec 2020 16:35:57 -0800 (PST) Received: by mail-pf1-x42a.google.com with SMTP id h186so7330199pfe.0 for ; Wed, 16 Dec 2020 16:35:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=gbDcaPNStrMJolfkpGDq8bo0+S1aM8kH57WGB+N/bgk=; b=BCk0K4AHVicQkXpcak5NU03djFCPq79vUOgCMFhfiDjFsAf5s2bV/NjFC/t77GgNz3 RY23oXqxBPu+85OdD0HyPFetYBlPkakxfK5igqIGLSbEUlRif35dWHGeRICbEvbvkmwb VLXtFwKjOIwOSCdfq/tA2jv/69/0reqhYNyr9vPIgDA+jgOXKvmEPAtPd/ct4k8znfj/ ZeGihvHBAHAUMc7kZ93y/oAEPl8fRqBM0a5rTxVFYa5XD274BWjjreRP7WMw+8BSyUtv s8zDzKVRX0Xjzdlbgp5JvQYjaOxtxwCKEYwFC0lWPRQJUEhdwVKbjlHah98kijQ10PLk DayA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=gbDcaPNStrMJolfkpGDq8bo0+S1aM8kH57WGB+N/bgk=; b=bwnYlp9Jn53kVpSMCnoP/pFV/+tZw2owTysJT81me+VhyfxkdpVx/lVCc7LyLgdkXu y5+e48PERKj6iSiMSpPqiHvFzjy1yOTY0d6nwqnZNoihoHa5GHv31AH4y7woRczfKa7+ /4vKffbZ7V4txn8k+YFCVbyx3xdlK3cziUnh8AZnBpAvdQVBbYwmaaZh2nG62fmfqQfu x3igGH2fjh+hddHGu6t13VSRrR2r4UbR/J5QwYBgSujxYW4pITdZ6/KiVEq4g4qGx1YV BnhW9eXYRuF3THkTXt9T6opdKyKBsKAwv3UnVDxQmuDwB4XLNUMCGXKGfSuLz896Iuw/ qtZA== X-Gm-Message-State: AOAM533tJzsl36ukNrWFS4wF+G/Tjt6lsWcQoIU5+DwqFiZtnKiXRyRk gib7qnupnFUI4Uu9uBsB/d4pj98dOewCIg== X-Google-Smtp-Source: ABdhPJyAnIRqYqa81hN0c/Nj1IAB58jkeYejc85P+5aIZg1Fp0lkzbRz7CqsqIGgrNtICfY98fIjkA== X-Received: by 2002:a63:545f:: with SMTP id e31mr35505651pgm.327.1608165356711; Wed, 16 Dec 2020 16:35:56 -0800 (PST) Received: from garbo.localdomain (c-69-181-67-218.hsd1.ca.comcast.net. [69.181.67.218]) by smtp.gmail.com with ESMTPSA id v24sm4011243pgi.61.2020.12.16.16.35.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 16:35:56 -0800 (PST) From: Tom Haynes X-Google-Original-From: Tom Haynes To: Bruce Fields Cc: Linux NFS Mailing list Subject: [pynfs 10/10] st_flex: Fixup check for error in layoutget_return() Date: Wed, 16 Dec 2020 16:35:16 -0800 Message-Id: <20201217003516.75438-11-loghyr@hammerspace.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20201217003516.75438-1-loghyr@hammerspace.com> References: <20201217003516.75438-1-loghyr@hammerspace.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Signed-off-by: Tom Haynes --- nfs4.1/server41tests/st_flex.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nfs4.1/server41tests/st_flex.py b/nfs4.1/server41tests/st_flex.py index c6df68f..d70b216 100644 --- a/nfs4.1/server41tests/st_flex.py +++ b/nfs4.1/server41tests/st_flex.py @@ -605,7 +605,7 @@ def layoutget_return(sess, fh, open_stateid, allowed_errors=NFS4_OK, 0, NFS4_UINT64_MAX, 4196, open_stateid, 0xffff)] res = sess.compound(ops) check(res, allowed_errors) - if nfsstat4[res.status] is not NFS4_OK: + if nfsstat4[res.status] is not 'NFS4_OK': return [res] # We can't return the layout without a stateid! layout_stateid = res.resarray[-1].logr_stateid