]> granicus.if.org Git - python/commitdiff
Merge 3.2
authorRichard Oudkerk <shibturn@gmail.com>
Tue, 14 Aug 2012 11:51:14 +0000 (12:51 +0100)
committerRichard Oudkerk <shibturn@gmail.com>
Tue, 14 Aug 2012 11:51:14 +0000 (12:51 +0100)
1  2 
Lib/multiprocessing/forking.py
Lib/test/test_multiprocessing.py
Misc/NEWS

Simple merge
index afb0bee4198b9c82453153b32cd7dcb6e3ff2932,ab6d36a0f090dd42c855f6e8f5dda28c9d5168d3..57252a7fb088b76006248e6da37a12b0d5fdb48b
@@@ -18,8 -17,8 +18,9 @@@ import arra
  import socket
  import random
  import logging
 +import struct
  import test.support
+ import test.script_helper
  
  
  # Skip tests if _multiprocessing wasn't built.
@@@ -3346,9 -2430,29 +3347,29 @@@ class TestTimeouts(unittest.TestCase)
          finally:
              socket.setdefaulttimeout(old_timeout)
  
+ #
+ # Test what happens with no "if __name__ == '__main__'"
+ #
+ class TestNoForkBomb(unittest.TestCase):
+     def test_noforkbomb(self):
+         name = os.path.join(os.path.dirname(__file__), 'mp_fork_bomb.py')
+         if WIN32:
+             rc, out, err = test.script_helper.assert_python_failure(name)
+             self.assertEqual('', out.decode('ascii'))
+             self.assertIn('RuntimeError', err.decode('ascii'))
+         else:
+             rc, out, err = test.script_helper.assert_python_ok(name)
+             self.assertEqual('123', out.decode('ascii').rstrip())
+             self.assertEqual('', err.decode('ascii'))
+ #
+ #
+ #
  testcases_other = [OtherTest, TestInvalidHandle, TestInitializers,
 -                   TestStdinBadfiledescriptor, TestInvalidFamily,
 -                   TestTimeouts, TestNoForkBomb]
 +                   TestStdinBadfiledescriptor, TestWait, TestInvalidFamily,
-                    TestFlags, TestTimeouts]
++                   TestFlags, TestTimeouts, TestNoForkBomb]
  
  #
  #
diff --cc Misc/NEWS
index 268074742ce7f67e8f8a55329091b99339baecfa,5d69e955f61a7c7d559ea74296d9a5a8f4d03069..d24258935938b669fd36470db9bd4abdcbac6455
+++ b/Misc/NEWS
@@@ -10,100 -10,93 +10,104 @@@ What's New in Python 3.3.0 Release Cand
  Core and Builtins
  -----------------
  
 -- Issue #13119: sys.stdout and sys.stderr are now using "\r\n" newline on
 -  Windows, as Python 2.
 +Library
 +-------
  
 -- Issue #14579: Fix CVE-2012-2135: vulnerability in the utf-16 decoder after
 -  error handling.  Patch by Serhiy Storchaka.
++- Issue #15646: Prevent equivalent of a fork bomb when using
++  multiprocessing on Windows without the "if __name__ == '__main__'"
++  idiom.
 -- Issue #15404: Refleak in PyMethodObject repr.
 +C API
 +-----
  
 -- Issue #15394: An issue in PyModule_Create that caused references to
 -  be leaked on some error paths has been fixed.  Patch by Julia Lawall.
 +Extension Modules
 +-----------------
  
 -- Issue #15368: An issue that caused bytecode generation to be
 -  non-deterministic when using randomized hashing (-R) has been fixed.
 +Tools/Demos
 +-----------
  
 -- Issue #15020: The program name used to search for Python's path is now
 -  "python3" under Unix, not "python".
 +Documentation
 +-------------
  
 -- Issue #15033: Fix the exit status bug when modules invoked using -m swith,
 -  return the proper failure return value (1). Patch contributed by Jeff Knupp.
 +- Issue #15630: Add an example for "continue" stmt in the tutorial. Patch by
 +  Daniel Ellis.
  
 -- Issue #12268: File readline, readlines and read() or readall() methods
 -  no longer lose data when an underlying read system call is interrupted.
 -  IOError is no longer raised due to a read system call returning EINTR
 -  from within these methods.
  
 -- Issue #15142: Fix reference leak when deallocating instances of types
 -  created using PyType_FromSpec().
  
 -- Issue #10053: Don't close FDs when FileIO.__init__ fails. Loosely based on
 -  the work by Hirokazu Yamamoto.
 +What's New in Python 3.3.0 Beta 2?
 +==================================
  
 -- Issue #14775: Fix a potential quadratic dict build-up due to the garbage
 -  collector repeatedly trying to untrack dicts.
 +*Release date: 12-Aug-2012*
  
 -- Issue #14494: Fix __future__.py and its documentation to note that
 -  absolute imports are the default behavior in 3.0 instead of 2.7.
 -  Patch by Sven Marnach.
 +Core and Builtins
 +-----------------
  
 -- Issue #14761: Fix potential leak on an error case in the import machinery.
 +- Issue #15568: Fix the return value of "yield from" when StopIteration is
 +  raised by a custom iterator.
  
 -- Issue #14699: Fix calling the classmethod descriptor directly.
 +- Issue #13119: sys.stdout and sys.stderr are now using "\r\n" newline on
 +  Windows, as Python 2.
  
 -- Issue #14433: Prevent msvcrt crash in interactive prompt when stdin
 -  is closed.
 +- Issue #15534: Fix the fast-search function for non-ASCII Unicode strings.
  
 -- Issue #11603 (again): Setting __repr__ to __str__ now raises a RuntimeError
 -  when repr() or str() is called on such an object.
 +- Issue #15508: Fix the docstring for __import__ to have the proper default
 +  value of 0 for 'level' and to not mention negative levels since they are not
 +  supported.
  
 -- Issue #14658: Fix binding a special method to a builtin implementation of a
 -  special method with a different name.
 +- Issue #15425: Eliminated traceback noise from more situations involving
 +  importlib.
  
 -- Issue #14630: Fix a memory access bug for instances of a subclass of int
 -  with value 0.
 +- Issue #14578: Support modules registered in the Windows registry again.
  
 -- Issue #14612: Fix jumping around with blocks by setting f_lineno.
 +- Issue #15466: Stop using TYPE_INT64 in marshal, to make importlib.h (and other
 +  byte code files) equal between 32-bit and 64-bit systems.
  
 -- Issue #14607: Fix keyword-only arguments which started with ``__``.
 +- Issue #1692335: Move initial exception args assignment to
 +  "BaseException.__new__" to help pickling of naive subclasses.
  
 -- Issue #13889: Check and (if necessary) set FPU control word before calling
 -  any of the dtoa.c string <-> float conversion functions, on MSVC builds of
 -  Python.  This fixes issues when embedding Python in a Delphi app.
 +- Issue #12834: Fix PyBuffer_ToContiguous() for non-contiguous arrays.
  
 -- Issue #14474: Save and restore exception state in thread.start_new_thread()
 -  while writing error message if the thread leaves a unhandled exception.
 +- Issue #15456: Fix code __sizeof__ after #12399 change.  Patch by Serhiy
 +  Storchaka.
  
 -- Issue #13019: Fix potential reference leaks in bytearray.extend().  Patch
 -  by Suman Saha.
 +- Issue #15404: Refleak in PyMethodObject repr.
  
 -- Issue #14378: Fix compiling ast.ImportFrom nodes with a "__future__" string as
 -  the module name that was not interned.
 +- Issue #15394: An issue in PyModule_Create that caused references to be leaked
 +  on some error paths has been fixed.  Patch by Julia Lawall.
  
 -- Issue #14331: Use significantly less stack space when importing modules by
 -  allocating path buffers on the heap instead of the stack.
 +- Issue #15368: An issue that caused bytecode generation to be non-deterministic
 +  has been fixed.
  
 -- Issue #14334: Prevent in a segfault in type.__getattribute__ when it was not
 -  passed strings.
 +- Issue #15202: Consistently use the name "follow_symlinks" for new parameters
 +  in os and shutil functions.
  
 -- Issue #1469629: Allow cycles through an object's __dict__ slot to be
 -  collected. (For example if ``x.__dict__ is x``).
 +- Issue #15314: __main__.__loader__ is now set correctly during interpreter
 +  startup.
  
 -- Issue #14172: Fix reference leak when marshalling a buffer-like object
 -  (other than a bytes object).
 +- Issue #15111: When a module imported using 'from import' has an ImportError
 +  inside itself, don't mask that fact behind a generic ImportError for the
 +  module itself.
  
 -- Issue #13521: dict.setdefault() now does only one lookup for the given key,
 -  making it "atomic" for many purposes.  Patch by Filip GruszczyƄski.
 +- Issue #15293: Add GC support to the AST base node type.
  
 -- Issue #14471: Fix a possible buffer overrun in the winreg module.
 +- Issue #15291: Fix a memory leak where AST nodes where not properly
 +  deallocated.
 +
 +- Issue #15110: Fix the tracebacks generated by "import xxx" to not show the
 +  importlib stack frames.
 +
 +- Issue #15020: The program name used to search for Python's path is now
 +  "python3" under Unix, not "python".
 +
 +- Issue #15033: Fix the exit status bug when modules invoked using -m swith,
 +  return the proper failure return value (1). Patch contributed by Jeff Knupp.
 +
 +- Issue #15229: An OSError subclass whose __init__ doesn't call back
 +  OSError.__init__ could produce incomplete instances, leading to crashes when
 +  calling str() on them.
 +
 +- Issue 15307: Virtual environments now use symlinks with framework builds on
 +  Mac OS X, like other POSIX builds.
  
  Library
  -------