[issue28732] spawnl crash on windows7

2016-11-19 Thread Steve Dower

Steve Dower added the comment:

Buildbots seem to be happy now so I'm closing the issue.

Feel free to reopen if anyone spots anything in commit review.

--
resolution:  -> fixed
stage: commit review -> resolved
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue28732] spawnl crash on windows7

2016-11-19 Thread Roundup Robot

Roundup Robot added the comment:

New changeset 2e1fb851dfb4 by Steve Dower in branch '3.6':
Issue #28732: Adds new errors to spawnv emulation for platforms that only have 
fork and execv
https://hg.python.org/cpython/rev/2e1fb851dfb4

New changeset ac6de11fbd50 by Steve Dower in branch 'default':
Issue #28732: Adds new errors to spawnv emulation for platforms that only have 
fork and execv
https://hg.python.org/cpython/rev/ac6de11fbd50

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue28732] spawnl crash on windows7

2016-11-19 Thread Steve Dower

Steve Dower added the comment:

> ValueError should also be raised when argv[0] is an empty string.

Added that too.

Python 3.5 is missing the tests for these functions completely, so I only added 
those to 3.6 and later. Also the original issue was already resolved in 3.6, 
but I tidied up a few other functions that were missing proper handling.

--
stage:  -> commit review

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue28732] spawnl crash on windows7

2016-11-19 Thread Roundup Robot

Roundup Robot added the comment:

New changeset e076ace7b0ff by Steve Dower in branch '3.5':
Issue #28732: Raise ValueError when argv[0] is empty.
https://hg.python.org/cpython/rev/e076ace7b0ff

New changeset af78b33704af by Steve Dower in branch '3.6':
Issue #28732: Raise ValueError when argv[0] is empty
https://hg.python.org/cpython/rev/af78b33704af

New changeset fc6f757e53de by Steve Dower in branch 'default':
Issue #28732: Raise ValueError when argv[0] is empty
https://hg.python.org/cpython/rev/fc6f757e53de

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue28732] spawnl crash on windows7

2016-11-19 Thread Roundup Robot

Roundup Robot added the comment:

New changeset 1a9e4b465497 by Steve Dower in branch '3.6':
Issue #28732: Raise ValueError when os.spawn*() is passed an empty tuple of 
arguments
https://hg.python.org/cpython/rev/1a9e4b465497

New changeset 75824899f0dd by Steve Dower in branch 'default':
Issue #28732: Raise ValueError when os.spawn*() is passed an empty tuple of 
arguments
https://hg.python.org/cpython/rev/75824899f0dd

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue28732] spawnl crash on windows7

2016-11-19 Thread Eryk Sun

Eryk Sun added the comment:

A ValueError should also be raised when argv[0] is an empty string.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue28732] spawnl crash on windows7

2016-11-19 Thread Roundup Robot

Roundup Robot added the comment:

New changeset 02f416441def by Steve Dower in branch '3.5':
Issue #28732: Fix crash in os.spawnv() with no elements in args
https://hg.python.org/cpython/rev/02f416441def

--
nosy: +python-dev

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue28732] spawnl crash on windows7

2016-11-19 Thread Steve Dower

Changes by Steve Dower :


--
assignee:  -> steve.dower
versions: +Python 3.6, Python 3.7 -Python 3.4

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue28732] spawnl crash on windows7

2016-11-18 Thread Steve Dower

Steve Dower added the comment:

Looks like a few functions in os module need this. os_execve_impl also doesn't 
release the GIL at any point, but I don't see why it shouldn't.

I'll try and get to this over the weekend if nobody else comes up with a patch 
first.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue28732] spawnl crash on windows7

2016-11-18 Thread STINNER Victor

STINNER Victor added the comment:

I like the idea of using _Py_BEGIN_SUPPRESS_IPH, but also the idea of
implementing most obvious checks on arguments. Sadly, I don't have
access to Windows yet to write such patch. Eryk, if you write such
patch, I would be happy to review it ;-) Especially if it includes
unit tests :-D

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue28732] spawnl crash on windows7

2016-11-18 Thread Eryk Sun

Eryk Sun added the comment:

spawnl is implemented by calling _spawnv [1], which is documented to invoke the 
invalid parameter handler if argv points to a NULL pointer. It wants the 
program name, or whatever, as long as argv[0] isn't NULL or an empty string, 
e.g. `os.spawnl(os.P_NOWAIT, 'C:/Tcl/bin/tclsh.exe', 'tclsh')`. 

The invalid parameter handler should be disabled (_Py_BEGIN_SUPPRESS_IPH) when 
calling _spawnv[e], which in this case would lead to an EINVAL OSError instead 
of crashing the process. 

For example:

import os, sys
from ctypes import *

ucrt = CDLL('ucrtbase')

@CFUNCTYPE(None, c_wchar_p, c_wchar_p, c_wchar_p, c_int, c_void_p)
def iph(*args):
pass

ucrt._set_thread_local_invalid_parameter_handler(iph)

>>> os.spawnl(os.P_NOWAIT, sys.executable)
Traceback (most recent call last):
  File "", line 1, in 
  File "C:\Program Files\Python35\lib\os.py", line 977, in spawnl
return spawnv(mode, file, args)
OSError: [Errno 22] Invalid argument

Also, in this case a descriptive ValueError would be friendlier, given an empty 
argv or argv[0] that's an empty string -- at least on Windows.

[1]: https://msdn.microsoft.com/en-us/library/7zt1y878.aspx

--
nosy: +eryksun

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue28732] spawnl crash on windows7

2016-11-18 Thread STINNER Victor

Changes by STINNER Victor :


--
components: +Windows
nosy: +paul.moore, steve.dower, tim.golden, zach.ware

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue28732] spawnl crash on windows7

2016-11-18 Thread STINNER Victor

STINNER Victor added the comment:

Just to make sure: a crash means that the Python process is killed and you get 
a popup or something like that?

Can you please try to run the script on Python 3.6 using:

python.exe -X faulthandler script.py

It should display the Windows error code at least.

--
nosy: +haypo

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue28732] spawnl crash on windows7

2016-11-18 Thread srinivasaraoMaddukuri

srinivasaraoMaddukuri added the comment:

small correction (removed " )

import os
os.spawnl( os.P_NOWAIT, 'C:/Tcl/bin/tclsh.exe' )

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue28732] spawnl crash on windows7

2016-11-18 Thread srinivasaraoMaddukuri

New submission from srinivasaraoMaddukuri:

in window7  (using python 3.4.3,3.5.2) following script crashes

import os
os.spawnl( os.P_NOWAIT, 'C:/Tcl/bin/tclsh.exe' )"

Note: similar issue is already exist https://bugs.python.org/issue8036

--
components: Interpreter Core
messages: 281095
nosy: srinim
priority: normal
severity: normal
status: open
title: spawnl crash on windows7
type: crash
versions: Python 3.4, Python 3.5

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com