Message103694
| Author |
vstinner |
| Recipients |
vstinner |
| Date |
2010年04月20日.12:02:52 |
| SpamBayes Score |
1.9658542e-06 |
| Marked as misclassified |
No |
| Message-id |
<1271764975.75.0.223846589239.issue8467@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
On a non-Windows OS where _posixsubprocess is missing (subprocess uses the pure Python implementation), if the child fails with a Python exception and the exception message contains a surrogate character, message.encode() fails silently (exception while processing exceptions are just ignored).
Surrogates should be passed to the parent process: surrogatepass can be used for that. Attached patch implements this idea with an unit test.
--
_posixsubprocess is not concerned because it writes an empty message for OSError (the parent process calls os.strerror() to get the message) or "Exception occurred in preexec_fn." (pure ASCII string) for RuntimeError.
On Windows, _subprocess.CreateProcess() calls PyErr_SetFromWindowsErr() on failure without the filename. So there is no surrogates here. |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2010年04月20日 12:02:55 | vstinner | set | recipients:
+ vstinner |
| 2010年04月20日 12:02:55 | vstinner | set | messageid: <1271764975.75.0.223846589239.issue8467@psf.upfronthosting.co.za> |
| 2010年04月20日 12:02:54 | vstinner | link | issue8467 messages |
| 2010年04月20日 12:02:53 | vstinner | create |
|