DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 58MCOw3C1459540 Authentication-Results: delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com Authentication-Results: delorie.com; spf=pass smtp.mailfrom=cygwin.com DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 58MCOw3C1459540 Authentication-Results: delorie.com; dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=Eq7mcBuG X-Recipient: archive-cygwin AT delorie DOT com DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D18F7385800F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; s=default; t=1758543896; bh=CCZo7h8h2g/jIGHJ3DZj9PSqJLdMOYolDwCn0/rqpQc=; h=References:In-Reply-To:Date:Subject:To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=Eq7mcBuGYUSbEvlRDmuYvX80h8aYYFz4POG8Hmf+QTveIklMAb0nFH5yW5hEmj/UN xlYxp9FbbbVXUSOOwKRu/kvT2j4L7IiEH2KJBvMkKUx79q9dbWrs4ywGoGhNqSM4TL ib8uKiAngow2fSOVou0ioy2UBbANPMOk4UxL6NXg= X-Original-To: cygwin AT cygwin DOT com Delivered-To: cygwin AT cygwin DOT com DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 83550385842B ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 83550385842B ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1758543829; cv=none; b=fFg9uw03EzD/O9MVIAjTsz4rIpZr+KufxvqKiNUlxiD3e7oBLego4c0HME+wqd3GcChS368sPv6WfacWSN7d8k6eyM+mY1psshn/X0LI3BSBIhwu0slBaK5ZsazRtdVgzNkv02ve//3Gqke08sKZ33bDnhJbAoKwDbkiVbvvA2U= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1758543829; c=relaxed/simple; bh=dtwGmYKaO4lI7s/+merE/f6uNmr0lOOeRBLhBKs8+LA=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=Czk0XYzfR+sB/DXK+5x1jdjqFT5tZbLo7X1TkOAXVORSDrycYdxViVIjuJZNjs3xUJKfqVpG53DYDG5iZeEyJWvpYvNakjY2f5wXqK5yAMDHHMzQ3jVvmFSYoMeUgxlGUbqbBlCZ9vWWyBJr1HqvZKJtrOAzYpqQ2uObSb3nfxo= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 83550385842B X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758543828; x=1759148628; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=dtwGmYKaO4lI7s/+merE/f6uNmr0lOOeRBLhBKs8+LA=; b=sEpwnFA5SnvgnLDLexH2lsE5zqWBO23eOXi3kIdanSj/j1O1H+GUbuAHjXFKag4uWa qUzH9EX0a8hrmCUXMvPLbrOVfSg6Q4TTGzqu16h6kyD7L5l8GZYbe7efvYTwoMz1E4ag z3J/RakE44S/5mbeDVOikeG4mM3avjPjTj4JN2Ld0vrX1z208AN9yGpQtN17KihiL+OX VF+xXnthx6myrQNxt6NwW83VrOK/CzQxVI9gyFrUPBRpf+YAfX8XuV7EXYfQPi5TJXy2 7Q/+iBl416oUk6joIAU5a/3+mOPQnCgfB7XQFamymU+4qCqZa4chjvuX/JZL0hEyPY62 UT6Q== X-Gm-Message-State: AOJu0YyQaA6H5UdI025f5WnfThZW8njzlAYc/B6uqmihBVrU8E503/Sv IML1N02uw0pnO8B9/T8bjbfudO8PeKaXHb92n2obUX6oo6C3hwm99eGD3LYjphsCIZJgdFlFgj7 ellkmXsTHfy6+iR2RmcRwqjULo8RfUrR6dihr X-Gm-Gg: ASbGncv+flkv40nEWFt9CEiQQqHow9wgbjro1/3xlITNq1JE6FIdiRsNEvbYQslA64z A4+G/5NAKMlvApmwptoPAAk2AooV2Q0v4bbpERmSKHD2GAbH2wMQHdWtGZtkB39gOp7Z19PZR+x abF+fB139FIR7SYIrynUhfE0Arlnm4mCVDgXobh6OMLmGyKxUM57pwtEkuH3g9aNaIubE8ZPrNk CDexUM= X-Google-Smtp-Source: AGHT+IFofr4l0GhM7niMoyfTrOrfj5vsI3Ru6IlmgN61abIv39UjSxXiXvS0FONNagDd1lhy4XHTcXmJDZBIca6hiBs= X-Received: by 2002:a05:6402:2682:b0:633:deec:8b57 with SMTP id 4fb4d7f45d1cf-633deec8ff9mr2691379a12.16.1758543827592; Mon, 22 Sep 2025 05:23:47 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: Date: Mon, 22 Sep 2025 14:23:10 +0200 X-Gm-Features: AS18NWDW2bkUdLgXdIlsfql9XKcxls1IlnlGqNqeeG0Nl7qs17tcLo2MYTewv10 Message-ID: Subject: Re: Why does Cygwin not use MiCloneProcessAddressSpace() for fork() To: "cygwin AT cygwin DOT com" Content-Type: multipart/mixed; boundary="0000000000002aac74063f62e4ce" X-BeenThere: cygwin AT cygwin DOT com X-Mailman-Version: 2.1.30 List-Id: General Cygwin discussions and problem reports List-Archive: List-Post: List-Help: List-Subscribe: , From: Lionel Cons via Cygwin Reply-To: Lionel Cons Sender: "Cygwin" --0000000000002aac74063f62e4ce Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, 22 Sept 2025 at 13:55, Lionel Cons wrote= : > > On Mon, 22 Sept 2025 at 13:28, Old, Oliver via Cygwin = wrote: > > > > Mark Liam Brown wrote: > > > This is exposed to the userspace as NtCreateProcessEx() as documented= in > > > https://github.com/huntandhackett/process-cloning > > > > From the linked page: > > > Unfortunately, it doesn't matter which method we prefer because the r= esults > > > will be identically disappointing: STATUS_PROCESS_IS_TERMINATING, or,= in other > > > words, "An attempt was made to access an exiting process." The system > > > considers the cloned threadless process as waiting for deletion and, = thus, > > > refuses to create threads in it =E2=80=93 something we inevitably nee= d to execute > > > code. Sorry, but NtCreateProcessEx-based cloning is incompatible with= code > > > execution. > > > > > > > Note that it wasn't always the case. The kernel allowed creating th= reads in > > > > such processes until Windows 8.1. > > That was a bug, long fixed. UWIN added pthread support at some point, > so yes, threads and RtlCloneUserProcess() do work together. Attached is a proof that threads (in child and parent process) and RtlCloneUserProcess() work together: winforktest1.c.txt Lionel --0000000000002aac74063f62e4ce Content-Type: text/plain; charset="US-ASCII"; name="winforktest1.c.txt" Content-Disposition: attachment; filename="winforktest1.c.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfv3jddf0 Ci8qCiAqIHdpbmZvcmt0ZXN0LmMgLSBkZW1vIGZvcmsoKSB2aWEgfFJ0bENsb25lVXNlclByb2Nl c3MoKXwKICogT3JpZ2luYWwgZnJvbSBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9wZXRyc21pZC9k OTY0NDZiZWFjODI1YzhjMGNmNWEzNTI0MGY0NDRhOAogKgogKiBybSAtZiB3aW5mb3JrdGVzdDEu ZXhlIDsgY2xhbmcgLXRhcmdldCB4ODZfNjQtcGMtd2luZG93cy1nbnUgLVdhbGwgd2luZm9ya3Rl c3QxLmMgLW8gd2luZm9ya3Rlc3QxLmV4ZQogKi8KCi8qCiAqIGZvcmsuYwogKiBFeHBlcmltZW50 YWwgZm9yaygpIG9uIFdpbmRvd3MuICBSZXF1aXJlcyBOVCA2IHN1YnN5c3RlbSBvcgogKiBuZXdl ci4KICoKICogSW1wcm92ZWQgdmVyc2lvbiB3aXRoIGZpeGVkIENvbnNvbGUKICogCiAqIENvcHly aWdodCAoYykgMjAyMyBQZXRyIFNtaWQKICogQ29weXJpZ2h0IChjKSAyMDEyIFdpbGxpYW0gUGl0 Y29jayA8bmVub2xvZEBkZXJlZmVyZW5jZWQub3JnPgogKgogKiBQZXJtaXNzaW9uIHRvIHVzZSwg Y29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKICog cHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0 aGF0IHRoZSBhYm92ZQogKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90 aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgogKgogKiBUaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVk ICdhcyBpcycgYW5kIHdpdGhvdXQgYW55IHdhcnJhbnR5LCBleHByZXNzIG9yCiAqIGltcGxpZWQu ICBJbiBubyBldmVudCBzaGFsbCB0aGUgYXV0aG9ycyBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2Vz IGFyaXNpbmcKICogZnJvbSB0aGUgdXNlIG9mIHRoaXMgc29mdHdhcmUuCiAqLwoKI2RlZmluZSBf V0lOMzJfV0lOTlQgMHgwNjAwCiNkZWZpbmUgV0lOMzJfTEVBTl9BTkRfTUVBTgojaW5jbHVkZSA8 d2luZG93cy5oPgojaW5jbHVkZSA8d2lubnQuaD4KI2luY2x1ZGUgPHdpbnRlcm5sLmg+CiNpbmNs dWRlIDxzdGRpby5oPgojaW5jbHVkZSA8ZXJybm8uaD4KI2luY2x1ZGUgPGFzc2VydC5oPgojaW5j bHVkZSA8cHJvY2Vzcy5oPgojaW5jbHVkZSA8cHJvY2Vzc3RocmVhZHNhcGkuaD4KI2luY2x1ZGUg PFdpbmRvd3MuaD4KCiAvKgogdHlwZWRlZiBzdHJ1Y3QgX0NMSUVOVF9JRCB7CgkgUFZPSUQgVW5p cXVlUHJvY2VzczsKCSBQVk9JRCBVbmlxdWVUaHJlYWQ7CiB9IENMSUVOVF9JRCwgKiBQQ0xJRU5U X0lEOwogKi8KCnR5cGVkZWYgc3RydWN0IF9TRUNUSU9OX0lNQUdFX0lORk9STUFUSU9OIHsKCVBW T0lEIEVudHJ5UG9pbnQ7CglVTE9ORyBTdGFja1plcm9CaXRzOwoJVUxPTkcgU3RhY2tSZXNlcnZl ZDsKCVVMT05HIFN0YWNrQ29tbWl0OwoJVUxPTkcgSW1hZ2VTdWJzeXN0ZW07CglXT1JEIFN1YlN5 c3RlbVZlcnNpb25Mb3c7CglXT1JEIFN1YlN5c3RlbVZlcnNpb25IaWdoOwoJVUxPTkcgVW5rbm93 bjE7CglVTE9ORyBJbWFnZUNoYXJhY3RlcmlzdGljczsKCVVMT05HIEltYWdlTWFjaGluZVR5cGU7 CglVTE9ORyBVbmtub3duMlszXTsKfSBTRUNUSU9OX0lNQUdFX0lORk9STUFUSU9OLCAqIFBTRUNU SU9OX0lNQUdFX0lORk9STUFUSU9OOwoKdHlwZWRlZiBzdHJ1Y3QgX1JUTF9VU0VSX1BST0NFU1Nf SU5GT1JNQVRJT04gewoJVUxPTkcgU2l6ZTsKCUhBTkRMRSBQcm9jZXNzOwoJSEFORExFIFRocmVh ZDsKCUNMSUVOVF9JRCBDbGllbnRJZDsKCVNFQ1RJT05fSU1BR0VfSU5GT1JNQVRJT04gSW1hZ2VJ bmZvcm1hdGlvbjsKfSBSVExfVVNFUl9QUk9DRVNTX0lORk9STUFUSU9OLCAqIFBSVExfVVNFUl9Q Uk9DRVNTX0lORk9STUFUSU9OOwoKI2RlZmluZSBSVExfQ0xPTkVfUFJPQ0VTU19GTEFHU19DUkVB VEVfU1VTUEVOREVECTB4MDAwMDAwMDEKI2RlZmluZSBSVExfQ0xPTkVfUFJPQ0VTU19GTEFHU19J TkhFUklUX0hBTkRMRVMJCTB4MDAwMDAwMDIKI2RlZmluZSBSVExfQ0xPTkVfUFJPQ0VTU19GTEFH U19OT19TWU5DSFJPTklaRQkJMHgwMDAwMDAwNAoKI2RlZmluZSBSVExfQ0xPTkVfUEFSRU5UCQkJ CTAKI2RlZmluZSBSVExfQ0xPTkVfQ0hJTEQJCQkJCTI5NwoKdHlwZWRlZiBEV09SRCB3aW5waWRf dDsKCnR5cGVkZWYgTlRTVEFUVVMoKlJ0bENsb25lVXNlclByb2Nlc3NfZikoVUxPTkcgUHJvY2Vz c0ZsYWdzLAoJUFNFQ1VSSVRZX0RFU0NSSVBUT1IgUHJvY2Vzc1NlY3VyaXR5RGVzY3JpcHRvciAv KiBvcHRpb25hbCAqLywKCVBTRUNVUklUWV9ERVNDUklQVE9SIFRocmVhZFNlY3VyaXR5RGVzY3Jp cHRvciAvKiBvcHRpb25hbCAqLywKCUhBTkRMRSBEZWJ1Z1BvcnQgLyogb3B0aW9uYWwgKi8sCglQ UlRMX1VTRVJfUFJPQ0VTU19JTkZPUk1BVElPTiBQcm9jZXNzSW5mb3JtYXRpb24pOwoKCmludCB3 aW5mb3JrKCkKewoJRFdPUkQgcGFyZW50X3BpZCA9IEdldEN1cnJlbnRQcm9jZXNzSWQoKTsKCglI TU9EVUxFIG1vZDsKCVJ0bENsb25lVXNlclByb2Nlc3NfZiBjbG9uZV9wOwoJUlRMX1VTRVJfUFJP Q0VTU19JTkZPUk1BVElPTiBwcm9jZXNzX2luZm87CglOVFNUQVRVUyByZXN1bHQ7CgoJbW9kID0g R2V0TW9kdWxlSGFuZGxlKCJudGRsbC5kbGwiKTsKCWlmICghbW9kKQoJCXJldHVybiAtRU5PU1lT OwoKCWNsb25lX3AgPSAoUnRsQ2xvbmVVc2VyUHJvY2Vzc19mKUdldFByb2NBZGRyZXNzKG1vZCwg IlJ0bENsb25lVXNlclByb2Nlc3MiKTsKCWlmIChjbG9uZV9wID09IE5VTEwpCgkJcmV0dXJuIC1F Tk9TWVM7CgoJLyogbGV0cyBkbyB0aGlzICovCglyZXN1bHQgPSBjbG9uZV9wKFJUTF9DTE9ORV9Q Uk9DRVNTX0ZMQUdTX0NSRUFURV9TVVNQRU5ERUQgfCBSVExfQ0xPTkVfUFJPQ0VTU19GTEFHU19J TkhFUklUX0hBTkRMRVMsIE5VTEwsIE5VTEwsIE5VTEwsICZwcm9jZXNzX2luZm8pOwoKCWlmIChy ZXN1bHQgPT0gUlRMX0NMT05FX1BBUkVOVCkKCXsKCQkvLyBIQU5ETEUgbWUgPSAwOwogICAgICAg ICAgICAgICAgSEFORExFIGhwID0gMCwgaHQgPSAwOwoJCURXT1JEIHBpLCB0aTsKCQkvLyBtZSA9 IEdldEN1cnJlbnRQcm9jZXNzKCk7CgkJcGkgPSAoRFdPUkQpcHJvY2Vzc19pbmZvLkNsaWVudElk LlVuaXF1ZVByb2Nlc3M7CgkJdGkgPSAoRFdPUkQpcHJvY2Vzc19pbmZvLkNsaWVudElkLlVuaXF1 ZVRocmVhZDsKCgkJYXNzZXJ0KGhwID0gT3BlblByb2Nlc3MoUFJPQ0VTU19BTExfQUNDRVNTLCBG QUxTRSwgcGkpKTsKCQlhc3NlcnQoaHQgPSBPcGVuVGhyZWFkKFRIUkVBRF9BTExfQUNDRVNTLCBG QUxTRSwgdGkpKTsKCgkJUmVzdW1lVGhyZWFkKGh0KTsKCQlDbG9zZUhhbmRsZShodCk7CgkJQ2xv c2VIYW5kbGUoaHApOwoKCQlyZXR1cm4gKGludClwaTsKCX0KCWVsc2UgaWYgKHJlc3VsdCA9PSBS VExfQ0xPTkVfQ0hJTEQpCgl7CgkJLyogZml4IHN0ZGlvICovCgkJRnJlZUNvbnNvbGUoKTsKCQlB dHRhY2hDb25zb2xlKHBhcmVudF9waWQpOwoKCQlyZXR1cm4gMDsKCX0KCWVsc2UKCQlyZXR1cm4g LTE7CgoJLyogTk9UUkVBQ0hFRCAqLwoJcmV0dXJuIC0xOwp9Cgp2b2lkIGNoaWxkX3RocmVhZF9v bmUodm9pZCAqZHVtbXkpCnsKICAgICh2b2lkKWR1bW15OwoKICAgIFNsZWVwKDIwMCo1KTsKICAg ICh2b2lkKXByaW50ZigiSSB0aHJlYWQgb25lIGluIHRoZSBjaGlsZC5cbiIpOwogICAgZmZsdXNo KHN0ZG91dCk7Cn0KCnZvaWQgY2hpbGRfdGhyZWFkX3R3byh2b2lkICpkdW1teSkKewogICAgKHZv aWQpZHVtbXk7CgogICAgU2xlZXAoMjAwKjQpOwogICAgKHZvaWQpcHJpbnRmKCJJIHRocmVhZCB0 d28gaW4gdGhlIGNoaWxkLlxuIik7CiAgICBmZmx1c2goc3Rkb3V0KTsKfQoKdm9pZCBwYXJlbnRf dGhyZWFkX29uZSh2b2lkICpkdW1teSkKewogICAgKHZvaWQpZHVtbXk7CgogICAgU2xlZXAoMjAw KjIpOwogICAgKHZvaWQpcHJpbnRmKCJJIHRocmVhZCBvbmUgaW4gdGhlIHBhcmVudC5cbiIpOwog ICAgZmZsdXNoKHN0ZG91dCk7Cn0KCnZvaWQgcGFyZW50X3RocmVhZF90d28odm9pZCAqZHVtbXkp CnsKICAgICh2b2lkKWR1bW15OwoKICAgIFNsZWVwKDIwMCoxKTsKICAgICh2b2lkKXByaW50Zigi SSB0aHJlYWQgdHdvIGluIHRoZSBwYXJlbnQuXG4iKTsKICAgIGZmbHVzaChzdGRvdXQpOwp9Cgpp bnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQp7Cgl3aW5waWRfdCBwaWQ7Cglw aWQgPSB3aW5mb3JrKCk7CgoJc3dpdGNoIChwaWQpIHsKCWNhc2UgMDogLy9jaGlsZAoJewoJCSh2 b2lkKXByaW50ZigiSSBhbSBjaGlsZC5cbiIpOwogICAgICAgICAgICAgICAgZmZsdXNoKHN0ZG91 dCk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIF9iZWdpbnRocmVhZChjaGlsZF90 aHJlYWRfb25lLCAwLCBOVUxMKTsKICAgICAgICAgICAgICAgIF9iZWdpbnRocmVhZChjaGlsZF90 aHJlYWRfdHdvLCAwLCBOVUxMKTsKICAgICAgICAgICAgICAgIFNsZWVwKDMwMCk7CgoJCWJyZWFr OwoJfQoJZGVmYXVsdDogLy9wYXJlbnQKICAgICAgICAgICAgICAgIFNsZWVwKDEwMCk7CgkJKHZv aWQpcHJpbnRmKCJJIGFtIHBhcmVudC4gQ2hpbGQgcHJvY2VzcyBQSUQ6ICVsZFxuIiwgKGxvbmcp cGlkKTsKICAgICAgICAgICAgICAgIGZmbHVzaChzdGRvdXQpOwoKICAgICAgICAgICAgICAgIF9i ZWdpbnRocmVhZChwYXJlbnRfdGhyZWFkX29uZSwgMCwgTlVMTCk7CiAgICAgICAgICAgICAgICBf YmVnaW50aHJlYWQocGFyZW50X3RocmVhZF90d28sIDAsIE5VTEwpOwoKCQlicmVhazsKCX0KCVNs ZWVwKDEwMDApOwoKCWV4aXQoMCk7Cn0= --0000000000002aac74063f62e4ce Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple --0000000000002aac74063f62e4ce--