Atomic patches and network interruptions

Marius Kleidl <marius@transloadit.com> Mon, 26 February 2024 19:31 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=ietf.org@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 84E06C1516F8 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 26 Feb 2024 11:31:15 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.856
X-Spam-Level:
X-Spam-Status: No, score=-2.856 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=w3.org header.b="Iwhx1gI7"; dkim=pass (2048-bit key) header.d=w3.org header.b="Z/EuQX4i"; dkim=pass (1024-bit key) header.d=transloadit.com header.b="OAqmc0rU"
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id p7b5pORWZEM8 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 26 Feb 2024 11:31:11 -0800 (PST)
Received: from lyra.w3.org (lyra.w3.org [128.30.52.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A17C0C14F738 for <httpbisa-archive-bis2Juki@ietf.org>; Mon, 26 Feb 2024 11:31:11 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=Subject:Content-Type:To:Message-ID:Date:From:MIME-Version:Cc:Reply-To :In-Reply-To:References; bh=Pia9YOyaOKyCNf9tTjK06jZqjQca6MGx83c0twQLg5E=; b=I whx1gI7kqlNbU3BAyCl4otXISuxgqMN8wQ2eV/fECN5RLVvESdUIIvaRBgOfIMfw6WOWN9MOiUbau YDwnE0ZjNIKuK8r1FCJcIj2LbCUvVqqaqdIoRZ/vvfupxOmjfXKU8ixpK4ovQgC23DA5CVGCBDx33 TUYIbjowVIT3/cFBS206nIUhtHAQlTKf2QDabOU8SJFaTsRqIXc0WYNzrP3mbe2XEzn7Cm80qVngh DXpaKqeq32dJBa84SMM/1v9dzMXwPS0D5nA0n9kOwJnTrMIYd9VYPbCBKVCnhaEnh1MRxMJcEfLTl YE8rCG46YuosrVuLef1mdmXyziF7ofNgw==;
Received: from lists by lyra.w3.org with local (Exim 4.94.2) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1reggi-0007PI-KF for ietf-http-wg-dist@listhub.w3.org; Mon, 26 Feb 2024 19:30:56 +0000
Resent-Date: Mon, 26 Feb 2024 19:30:56 +0000
Resent-Message-Id: <E1reggi-0007PI-KF@lyra.w3.org>
Received: from puck.w3.org ([34.196.82.207]) by lyra.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from <marius@transloadit.com>) id 1reggg-0007Nt-Ax for ietf-http-wg@listhub.w3.org; Mon, 26 Feb 2024 19:30:54 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=Content-Type:To:Subject:Message-ID:Date:From:MIME-Version:Cc:Reply-To :In-Reply-To:References; bh=Pia9YOyaOKyCNf9tTjK06jZqjQca6MGx83c0twQLg5E=; t=1708975854; x=1709839854; b=Z/EuQX4ib4AO7HBd3CxL86cikjWDMBXN0csv/X4HiiP6fG3 GHzyVZqeQwwH2FcOHH3O/QCjLEpUC4Y+ZxBIqLi1xeeGe2nD+aiIE4IT61C6C4WUrqk2u0qbI8RGf HWqRGYyTcUrHp5t2k/anqJV3f3n084L5Eshtj4ftjOth4Kfy8n1X3wOqwbudtRJYflpUSYaj+VVS8 V3q1FIRJM849606JeX2UuhU0+Ff0Y4A/a3FRhZkLJFw7yF8rJUAGcsKOgxET/O0XjDSBzt4ztvkQD P/8X8g2WGmrPm3vHe4jmTSpNfD/0jEvp8gYwzGcmDhhqIoooj/j7a5MGcdq9wGOQ==;
Received-SPF: pass (puck.w3.org: domain of transloadit.com designates 2a00:1450:4864:20::32b as permitted sender) client-ip=2a00:1450:4864:20::32b; envelope-from=marius@transloadit.com; helo=mail-wm1-x32b.google.com;
Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b]) by puck.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from <marius@transloadit.com>) id 1reggf-002Bvz-23 for ietf-http-wg@w3.org; Mon, 26 Feb 2024 19:30:54 +0000
Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-412a3901eaaso11464335e9.0 for <ietf-http-wg@w3.org>; Mon, 26 Feb 2024 11:30:53 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=transloadit.com; s=google; t=1708975850; x=1709580650; darn=w3.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=Pia9YOyaOKyCNf9tTjK06jZqjQca6MGx83c0twQLg5E=; b=OAqmc0rU8P/4AHM4zYXMDhDVEE8k8ab5LeN3oLOe/wKH187yDRgB19Njrxk5VFNDmw ah/crHFWzXm1vtqI6uzW1YvgJpM27yViUZjSAsAnsJJ3BfXjofJe0IHkZysiY9ITda0n 96D/TGq1qVu1cXC4EzzqNv8cfenXpArSLkyJw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708975850; x=1709580650; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Pia9YOyaOKyCNf9tTjK06jZqjQca6MGx83c0twQLg5E=; b=L1DHyIi7aTlSRT3WSGaR1H6xnYt45/KtNzv/dnCD94y62yxWS7cg850w0XyoHySxON P7LlfVmMo0uGq0dkNAA3ogQIKGs5GbZajbisU+RZP9PHc+57kPX2xOIgM7WdwNo6htq7 QtfJjSvsNDPgN2ZhxneHWhIgBGeL/k2MbDIlsxWjUwiT04HGSI31MhLWb/7uDCzvjCe6 efyYqX8fhoTLmB+BJo1QWxeYWras/Hs2A9xsnqM+ZZe4JnHaeU1TRQLok1280JrqxXbE r/3KqY4cZ3VaGsXRIql+mzQWR9TiXc4Hgiy/G7bW7/jrdwpElmvqFxZSB+EywZD9Ccw5 hZnA==
X-Gm-Message-State: AOJu0YwdqKifQr1bhhnJmWV8L6ohOEF8k9AnMcqovCWKIJg9EKA3FtHy 2cOkpJ0JqPi26eMHj75QmXn4OvjQEHERU6NZFguh4qcO7qU5ifRhDEsljEsFvP/AnA5bfvYdCRA ERh/SUawDgvRuCaZYIOrA+exc4QyACoBilX8hqb+50YcIQf36ybU=
X-Google-Smtp-Source: AGHT+IHqHHoofhXGfmkfW8B7Sj/77uQE9IL4h/QVl4MCQV5O4NzplYQ7Ruowqg7YizPVeOe3uQ2BqlIeoPFR8M6a680=
X-Received: by 2002:adf:fd44:0:b0:33d:277d:a2c7 with SMTP id h4-20020adffd44000000b0033d277da2c7mr4641234wrs.16.1708975849691; Mon, 26 Feb 2024 11:30:49 -0800 (PST)
MIME-Version: 1.0
From: Marius Kleidl <marius@transloadit.com>
Date: Mon, 26 Feb 2024 20:30:38 +0100
Message-ID: <CANY19NtcgJJhArwufG+bH0EDSy6cSw4hSaZn_J9AykJv_5pJVA@mail.gmail.com>
To: HTTP <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="000000000000737dfa06124df259"
X-W3C-Hub-DKIM-Status: validation passed: (address=marius@transloadit.com domain=transloadit.com), signature is good
X-W3C-Hub-Spam-Status: No, score=-4.1
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, DMARC_PASS=-0.001, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: puck.w3.org 1reggf-002Bvz-23 c92f055c7344dec36a2dd7a04abc0474
X-Original-To: ietf-http-wg@w3.org
Subject: Atomic patches and network interruptions
Archived-At: <https://www.w3.org/mid/CANY19NtcgJJhArwufG+bH0EDSy6cSw4hSaZn_J9AykJv_5pJVA@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/51834
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <https://www.w3.org/email/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

Dear working group,

RFC 5789, which defines the PATCH method, places this requirement:

The PATCH method requests that a set of changes described in the request
> entity be applied to the resource identified by the Request-URI. The set of
> changes is represented in a format called a "patch document" identified by
> a media type.
> [...]
> The server MUST apply the entire set of changes atomically and never
> provide (e.g., in response to a GET during this operation) a partially
> modified representation. If the entire patch document cannot be
> successfully applied, then the server MUST NOT apply any of the changes.


How does this play out when the resource is not able to receive the entire
patch document? For example, the client wants to send a 100MB patch
document, but the connection is lost after 50MB. Is the resource then still
allowed to apply the 50MB, which is the entire patch document that it
received (assuming that it could apply the partial patch and that it is not
invalid)? Or must the resource not apply anything because it cannot apply
the entire patch document that the client wanted to transmit?

The context for my question is draft-ietf-httpbis-resumable-upload. There
it would be beneficial if the resource can save the partial content even if
the request was not fully finished due to network issues and thereby saving
this partial content from being retransmitted again. If the resource must
not use the partial content, the client has to send the data again. Is such
behavior in line with RFC 5789? Or could this be allowed if the
corresponding media types explicitly allows applying partial content?

Best regards,
Marius Kleidl