From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 22745 invoked from network); 21 Oct 2023 16:27:13 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 21 Oct 2023 16:27:13 -0000 ARC-Seal: i=2; cv=pass; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1697905633; b=mutKymMCiK+FQKnOfQ8O4mEoXFvI0WnH/tDFkozkXYHFb+iItw7FzQ27+BM+SDpxsVbTsASn5v ZdQvYcaHy35ra2rYrC32n+RGdu8lFVpc5QE2g42n+6Q36d15ZBITgvlXgi1cWXFiXaS3qaT1Il NI2HkqBELhfimPXsOnmX6fgNmQjrhmdJPo+vAcSWnpQu6zL852XoOQPfCswxsQ4jGECbb0Ud30 GbZbIz8Uz1JxhO6pi2UTMAJgtiiBZtqBlPHVkAxu4XywsUJp35IH+NFfUWpkshPDOuUrF48Re+ fyLSEXjWrUEvtRwSX2dLlutIRtC7yKUBxGji9OabCRTzmg==; ARC-Authentication-Results: i=2; zsh.org; iprev=pass (mail-bn8nam11on2100.outbound.protection.outlook.com) smtp.remote-ip=40.107.236.100; dkim=pass header.d=laker.email header.s=selector1 header.a=rsa-sha256; dmarc=pass header.from=laker.email; arc=pass (i=1) header.s=arcselector9901 arc.oldest-pass=1 smtp.remote-ip=40.107.236.100 ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1697905633; bh=Zx6+XduR4hb1pYcUbR0/QAwkw8UJRsPPOtAafh/fkk8=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:MIME-Version:Content-Transfer-Encoding:Content-Type: In-Reply-To:From:References:Cc:To:Subject:Date:Message-ID:DKIM-Signature: DKIM-Signature; b=ZQRplCRgdq0vMHZuiYFNdZIuncnvQpzpKGP5vIK9yFUBY1l+zLHfdJr7QoHUnEW6Aua1OJ4671 +wJqsw4GfH/iGMClrkT5euGh5DyOzZWj8WORcvJSSFiJaxQhHZbE2cLun/GfwbyrhwFopzsb7/ Tm7ZV9tXieO7GmM5zR2YbCTYqBez8Y3aI26+1gJVNG5GghI2I3jzjpIiB8UgkL+bdn7pRSUiXB Bo0z6oOb3khGY867s6BIUyD43RciDbPOZSi2qIhuBHXd+qF546XwiVG6ycF6HooKHSM0Z3X/hM CU+YS+1MS3IGxYUfaLvDERB/6TxBEj7tOvINo3xxff0Whw==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:MIME-Version: Content-Transfer-Encoding:Content-Type:In-Reply-To:From:References:Cc:To: Subject:Date:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=KynPKvnnt6QF8q0bY9mytyB5YUlQVqXAxCWW5t3q5dU=; b=k9Mel3rgY4OIxBvMVpApao9bRT 20m5+73iL0WCPTrkIKaoEOhIvJmQzrS1nB9iR6JdFWsPqghjIyBOdnnR8waMHUQojhMTsS0Wpcd8V 7OtJ1jMN7IoGBUL+ZUN+59lRaGe9vT1fkpoDKL5XJHJURk0WhF9gt00N76B4Vq00Tp6sY4U9tJ02s /Cx9lQTjThhX1+lj/Lu9tGZYeXlSH0eZ3OmN9EW58CIS2i8kuulsS9kgH8tLWoiks4VaLPaz+O14j RYpBD9jhHNuBwxiu/hOihreAeSEbQ7AcqGvgtkCiPsWMm2yG4VUBjCyx8/pJS5tauWCfy1gdDa7O1 Qly5GYrA==; Received: by zero.zsh.org with local id 1quEoe-000Mch-W4; Sat, 21 Oct 2023 16:27:09 +0000 Authentication-Results: zsh.org; iprev=pass (mail-bn8nam11on2100.outbound.protection.outlook.com) smtp.remote-ip=40.107.236.100; dkim=pass header.d=laker.email header.s=selector1 header.a=rsa-sha256; dmarc=pass header.from=laker.email; arc=pass (i=1) header.s=arcselector9901 arc.oldest-pass=1 smtp.remote-ip=40.107.236.100 Received: from mail-bn8nam11on2100.outbound.protection.outlook.com ([40.107.236.100]:50913 helo=NAM11-BN8-obe.outbound.protection.outlook.com) by zero.zsh.org with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) id 1quEoG-000MM6-7N; Sat, 21 Oct 2023 16:26:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=G6gLqWm8NkSZ57VJje2jItaZxzx7s9I8jmHTXb2ujsgAOaMbbQ9kjRscMAgPB8V68I3QaWFYrYNCesVeyOXEpAZtkhgREiI94TvnHc1HNGCrGFPqqR4C7OuEC/yCVM6lNJixuciMftvd8XreIBqdeUoVq0Zbvk+E99nAElfRRX+5xAoSDirMbfR4Sm79DYeGCYwIJBxrrERubA9e/nvEViJcirS+PHVhnreGzijtJ5e5rfxV9ByQClBEnFZTfXeUo4Wn7xrATvHx/QoWjb9y0CtFYSD8p4/ImcNSid21WBiVMfZds2btOdpKTQL0fbAgKkUX/zCDoyRO4VEa22ZjxQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=KynPKvnnt6QF8q0bY9mytyB5YUlQVqXAxCWW5t3q5dU=; b=DXMhTs6dycWJcOPpx1vMRiQ8nzlBLq6RCVOrRvMvYGS0Y7pf/3kNQ6fSl6EnbrOReIEH1iL75EkkHoEqTXASDS5zTBDlqWE+d6LwO5sYvN6HXCGhLnMsNrqUtb9icjZG5maO/N8AT6AAdSSIFa+GgwxzwuZNRXOWmNY4ziFmPDQd4tXDwKzutJvnsnQq59enSIDiYyCP1jPjRxIyvQPQZsE+knEmrB0Jg8GUMDDXT/tpufanCgo6nNWUyOs7RVMlxQ5+wtCts69z8CNo6NfEPTw+VcBl6HfO/nvV7Kf2fAO0DRjTBl7rapzn8cdS1WFIyOChcHP32ipjCg/nQodgpA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=kylelaker.com; dmarc=pass action=none header.from=laker.email; dkim=pass header.d=laker.email; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=laker.email; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KynPKvnnt6QF8q0bY9mytyB5YUlQVqXAxCWW5t3q5dU=; b=Cm9fAGhDtgAVMW2qYjM86IoO9YSgL+TdyFwtxKyRh9dIX5BDv6QI9YTZ/hrh5sZbPdkK3Didb0JhsQ3Q7oUxk7NxMVOym8vZ4psqIFA1BzxsX93LJv6waDgfGlaPv0ShN7KW1Gc1BeAH4gEAfz0FOBqqJjiSDO2OJRMxH9Nw3Zgony3XaTJd/kkOK9Kvi0TWtIT1X0EYMoV8J2+yA8HgHnH+Aq8zNKhbnelTuWG68aF6FLkAhm6vG1qBMVg6eMJFIfW/u0NHzRx39hQ1AqjMIbA1TxKDx2v2mTrnL0RnX4wVsvwd1Zmye68d8Zn2akyuowhJ6OE4iLcEjKdgmdW19Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=laker.email; Received: from DM5PR02MB3799.namprd02.prod.outlook.com (2603:10b6:4:b8::13) by CY5PR02MB8944.namprd02.prod.outlook.com (2603:10b6:930:37::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.26; Sat, 21 Oct 2023 16:26:39 +0000 Received: from DM5PR02MB3799.namprd02.prod.outlook.com ([fe80::fc21:f9e4:be70:de9b]) by DM5PR02MB3799.namprd02.prod.outlook.com ([fe80::fc21:f9e4:be70:de9b%3]) with mapi id 15.20.6907.028; Sat, 21 Oct 2023 16:26:39 +0000 Message-ID: Date: Sat, 21 Oct 2023 12:26:37 -0400 User-Agent: Mozilla Thunderbird Subject: Re: `pwd -P` with systemd-homed causes inconsistent cwd state Content-Language: en-US To: Bart Schaefer Cc: zsh-workers@zsh.org References: From: Kyle Laker In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: MN2PR05CA0038.namprd05.prod.outlook.com (2603:10b6:208:236::7) To DM5PR02MB3799.namprd02.prod.outlook.com (2603:10b6:4:b8::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM5PR02MB3799:EE_|CY5PR02MB8944:EE_ X-MS-Office365-Filtering-Correlation-Id: d9231053-44b5-4f9b-edbf-08dbd2528063 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DhLOS0/wL1kzNUqxeIUOae/HA2CCNQZWsIqHLXACSgUAe6FYCNo23l3A8Q61be6F7LIxm07YRufzHT0QMGrKVf7pmlbY1c7L+t2zloTSQETlIl9i/rjmY1P/0916bqYfsGeDit/L9TQ09w8MMLtgOuLmxnpf3aaGe2EP1foxjOTHXB080upHuJE6LBm37x5yrjPmrBk4cKW5mnJORs2d0kjcPZX1bb3jKHQYYMbDHDqaWc6xrGer3hi9R7OqrSBiYytr+yYVeayxytbsLyHRn7ZWfqbtvfTLaitYzCNZST7rvM2O5NHMLRNfSHStajLXUNQ2QC2ZNB6DDaxsqRCLHmvvJ1pDAnjjFP0rZOEGRq1a+PNbkopeWtiNn/HBct3Ygkvnf3qbKfF//E+aEIHaHgbiUJMLSescsKLx2zvTi0dXh2pFgz1R47u+pLjdbo0FlU0LpU3OgcSLLgl+d7oELGgAM7OPAoVpYqJ/UfEnD0XN00X4XK0NPepgiSo9RcaN7ku56jlyJ9M+9dseIrUmVPxApIgNA7YZwUaa9Tveae4TkZRc6ldDL18nhWK+g9rIapdsZyrbKLMD9NtRzM/Ug4o32/R3PLZk7Xv6Q4YVsnGe/IWjZ5Pljkbn++NNwTVDEge+l2KJYBGVHcHdEKYH+xo0U+JGejUmaE3ZO0hX+oM= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM5PR02MB3799.namprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(396003)(136003)(376002)(346002)(39830400003)(230922051799003)(64100799003)(1800799009)(186009)(451199024)(42882007)(26005)(83380400001)(66556008)(6916009)(83170400001)(66946007)(66476007)(316002)(6512007)(38100700002)(2616005)(31686004)(31696002)(6486002)(478600001)(6506007)(2906002)(53546011)(4326008)(5660300002)(8936002)(8676002)(41300700001)(81973001)(45980500001)(43740500002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dmpSSUxFeGhTdlBtakJVbmlSWVhRL3hsK09OMGZYUjIwY3FuR0wrZUdmM3Ir?= =?utf-8?B?dStadEx5RUZnTjlPT25yK1VtYlA3dTdQbldjbWh6eHRHYUl3MDN3MXp6WUJ3?= =?utf-8?B?YjhUYUVzRERqR2syRHFLZ21qVitVWVhmbk9BRWlyb3IxN3FRZDZCRUxLVldQ?= =?utf-8?B?L0IwOW9CUmRJczNubUF3aWEwSFJFOXV2ZGNqMTVaZWRkNUxBTDlMRkVVZjZa?= =?utf-8?B?aEtCUjBlYWZ1dCtTMWJMV1pRNEJPOG9Ec1A1NHcrblNESktIWjdscXlaUzkx?= =?utf-8?B?ZlhnVzVWREwzMVdnSDVZbnh1c2hlcVRCTzF1RkRaQ0RlSlk3bjFleU5yQ1dk?= =?utf-8?B?ZDdxcnJOY1dmZktpS1hIOWl5ZzZqWVJaVEk4Ym40WnU3ajJOWUJxM3QyQks2?= =?utf-8?B?aVNNVVhGUzY5ZllpV25BOEZJRW1FYU1zWDZTMDFlcmNPQ0ZSR2FOVVYveWhR?= =?utf-8?B?d3pHVldqcUtpVmdXZjRmWm1ZVldSeWhKaElxa0JaQTJTSG5YYVFXeWZ1aDgy?= =?utf-8?B?a2E2bUs0eTdYeGg4L3JSVFJEM01UVjVmWVFRby9tc25DYzUveXk5QzEyZWpz?= =?utf-8?B?ZFBZUVlFWHQ0cDRqVVFDYll4S0ZhMFl0Ykluc3JZZ2k4SHhiWU1ienRtU1By?= =?utf-8?B?cmc4QXRvL1FkYW9icTNMR2hIYUlSdTFJTEtpdzhiSnA5eDhlMDRrVG1ONTgz?= =?utf-8?B?SDVWMDdHY0hoREh3YTZUaDdVKzhKZHVGZkNiM05iZ0NGeURBMmVNOWNxdGpi?= =?utf-8?B?ZXhDVFZhcGlhQU5uZnpjaERGbDBGMnFZUDVybEN0RGo0WlZRcmRPZTBPSDFN?= =?utf-8?B?dFhmVVBKUGx5OFNPb2JQTHNhTy9qSERYVHdqYUR4MFNuM0tMMnlBbHAya0FV?= =?utf-8?B?MUhTZU4vaWFoQUk0RnRTN3FTR3BYUk1yWGZnRjdxU0RzbkRDM3g3SG5lMzJX?= =?utf-8?B?M3pUVnFVdHlnVHZwRFUvWWpJMFNpYWVreVBGWldGSnF6RUp6NUxGNk5LaGNM?= =?utf-8?B?em9VSGgrTUx6SmtpNUx2Z3hITmZONkUrbDhFRnJGZmFvdURKTCtQY2hELytD?= =?utf-8?B?K3VwMXZRTXAxSjhHWmxkV2NJKzYzSi9EVVVwT3Y1QVRnbkdXWStzcWJUeEhi?= =?utf-8?B?ZzBpaGJ1Y1Yya2w5eWdERHlGSzBNWHNycER2aHR1aVBMTnJsVWVwNTlHSUJZ?= =?utf-8?B?SEkxdmZEN2ZQZlY2L3JZZ0NEY0RhU2t6cU9GRnkxaWs4WTFPLytJT3B5MGZS?= =?utf-8?B?VWV2UEV3Rm5NZ1JkZFlvaUc0NGFVdzB3bG1GVi9wUGNiRkV4VHVNdXdTMGxL?= =?utf-8?B?d3pQM3dDUmRHdU9RVnorbEplUnkycjgvcmhVR01LaTVWajRWakRnZy8rSmRh?= =?utf-8?B?Q1VwTlA4SmdSWDQrSkxWbUFISjRFa0E3Q1RtMEtjaVNCZDUyY3lHK0FSOGt1?= =?utf-8?B?dTVOc0cvR2k1L0tIb0VkUnZaYk11YStUd2hNMHIxRFNBb1lLVnNpRlNaZzBV?= =?utf-8?B?eDBuOEtZZGdJa2gra2M1ZzQxRGdqODlqMmFwNU52Mzhha1JyNHc0dmI5MEtm?= =?utf-8?B?YzNJV0krY1BZanFlUDdOSksxSkEvKy85dFd1b0RLUCtVby9zemlSazhsWU1G?= =?utf-8?B?VFFmVVpVcU55SzVLZmVHcURBSWJlQTJrd2xCdExPZTlsR0pzSStyY251TjZz?= =?utf-8?B?bjN1SnBQWnUzTlg5aWo0UTM1bS9SbW12dk1vdml6WFVmWXJ2ekQvcHIrRUN3?= =?utf-8?B?Um0yQ0VNYXl0WHR1d21GYUcwMnU0Yzg2OVppdXAweDZDWjBKVlM3UFZYOWo2?= =?utf-8?B?Nk92ZkpTYVVvTEdDRVRSWjFrM1J1YWN1TmpKM1V5QWM4aGpYS1JaZkFURFFF?= =?utf-8?B?QVUrRXdHeHlBWkM1dlBkWUJ6K0Z5VDltams4QmU5V0QvejdONVRYUlN0elFx?= =?utf-8?B?Q2tzV0w5c0V3cWIwTVJyVWNBSktWdUlTKzhnY1ZMZ2NVK0dRb3hIeUtwcThT?= =?utf-8?B?T3krZVh2N0pWVEhqTHFaMzduQ2JKbCtmTml2YVJuQXFqOTZIekNsbG5raVJP?= =?utf-8?B?ekV6TGFNbGVBblN2OFpwTjhkWWlVZHdQN29tSDcrNkErdFNKU2NQS3VqTCtR?= =?utf-8?Q?CxZRI5mFSXtCmQ4VSlJ1wls98?= X-OriginatorOrg: laker.email X-MS-Exchange-CrossTenant-Network-Message-Id: d9231053-44b5-4f9b-edbf-08dbd2528063 X-MS-Exchange-CrossTenant-AuthSource: DM5PR02MB3799.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Oct 2023 16:26:38.9152 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 854dc525-80b0-472c-9b06-c984ca44e27b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: DLho0fj7jPno3yWjFO3z8NDcl3Vb1IqGeoHrssVAAhazZriNALQnZx6JeftK5wXyj9s2FAPbBekk2O32U4Kd9w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR02MB8944 X-Seq: 52238 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: On 10/21/23 00:05, Bart Schaefer wrote: > On Fri, Oct 20, 2023 at 8:18 PM Kyle Laker wrote: >> > When you run `pwd -P`, zsh invokes the getcwd() system call and prints > whatever it returns. That's literally all it does. So, although I > don't have BTRFS to test with, this looks from here like a problem > with getcwd() internally changing the process current directory to the > root when crossing a BTRFS link. That would be invisible to $PWD and > therefore to the pwd command (without -P). Thanks for the context! So it seems like the issue is in the non-getcwd() zgetdir() code path. Checking against master, this issue is no longer present with a default configure after workers/50287 enabled using getcwd() by default just after the 5.9 release. getcwd() seems to handle this case correctly. For situations where getcwd() isn't used, the actual errant `cd`ing happens at the end of the `while` loop in zgetdir(). This continuously calls `chdir("..")`. Eventually, this puts us at `/`. Typically, the call to `zchdir(buf + pos)` would take us back to the directory we started in; however, because ZSH determined the path was `/home/kyle.homedir` (using the homed image path) instead of `/home/kyle` (the actual mounted home directory), that fails. The `.homedir` folder is owned by nobody:nobody so when zchdir() calls chdir(3) the latter fails with an EACCES error. This leaves the process in `/`, where it was put by zgetdir() but without any of the other environment variables updated. I'm not sure how these btrfs homedir mounts can be determined in situations like this (or how valuable it would be since nearly everyone with btrfs probably has a working getcwd(3)). But perhaps if the final zchdir() fails, zgetdir() could chdir(3) back to the original path rather than the resolved path?