From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-3.8 required=3.0 tests=AWL,BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.6 Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by dcvr.yhbt.net (Postfix) with ESMTP id EDF541F41C for ; Mon, 27 Mar 2023 15:03:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230273AbjC0PDb (ORCPT ); Mon, 27 Mar 2023 11:03:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44382 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230222AbjC0PD3 (ORCPT ); Mon, 27 Mar 2023 11:03:29 -0400 Received: from siwi.pair.com (siwi.pair.com [209.68.5.199]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 74FEC59FF for ; Mon, 27 Mar 2023 08:02:41 -0700 (PDT) Received: from siwi.pair.com (localhost [127.0.0.1]) by siwi.pair.com (Postfix) with ESMTP id 65377CA1260; Mon, 27 Mar 2023 11:02:17 -0400 (EDT) Received: from [IPV6:2600:1700:840:e768:948:2c:9be7:96af] (unknown [IPv6:2600:1700:840:e768:948:2c:9be7:96af]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by siwi.pair.com (Postfix) with ESMTPSA id 30934CC8332; Mon, 27 Mar 2023 11:02:17 -0400 (EDT) Message-ID: Date: Mon, 27 Mar 2023 11:02:16 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: Re: [PATCH] fsmonitor: handle differences between Windows named pipe functions Content-Language: en-US To: Johannes Schindelin , Eric DeCosta via GitGitGadget Cc: git@vger.kernel.org, Eric DeCosta References: From: Jeff Hostetler In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: mailmunge 3.11 on 209.68.5.199 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org On 3/27/23 7:37 AM, Johannes Schindelin wrote: > Hi Eric, > > On Fri, 24 Mar 2023, Eric DeCosta via GitGitGadget wrote: > >> From: Eric DeCosta >> >> CreateNamedPipeW is perfectly happy accepting pipe names with seemingly >> embedded escape charcters (e.g. \b), WaitNamedPipeW is not and incorrectly >> returns ERROR_FILE_NOT_FOUND when clearly a named pipe, succesfully created >> with CreateNamedPipeW, exists. >> >> For example, this network path is problemmatic: >> \\batfs-sb29-cifs\vmgr\sbs29\my_git_repo >> >> In order to work around this issue, rather than using the path to the >> worktree directly as the name of the pipe, instead use the hash of the >> worktree path. > > This is a rather large deviation from the other platforms, and it has an > unwanted side effect: Git for Windows' installer currently enumerates the > named pipes to figure out which FSMonitor instances need to be stopped > before upgrading. It has to do that because it would otherwise be unable > to overwrite the Git executable. And it needs to know the paths [*1*] so > that it can stop the FSMonitors gracefully (as opposed to terminating them > and risk interrupting them while they serve a reply to a Git client). > > A much less intrusive change (that would not break Git for Windows' > installer) would be to replace backslashes by forward slashes in the path. > > Please do that instead. > > Ciao, > Johannes > > Footnote *1*: If you think that the Git for Windows installer could simply > enumerate the process IDs of the FSMonitor instances and then look for > their working directories: That is not a viable option. Not only does the > Windows-based FSMonitor specifically switch to the parent directory (to > avoid blocking the removal of a Git directory merely by running the > process in said directory), even worse: there is no officially-sanctioned > way to query a running process' current working directory (the only way I > know of involves injecting a remote thread! Which will of course risk > being labeled as malware by current anti-malware solutions). Agreed. Please use forward slashes. Thanks, Jeff