r47009 - Merge forward.

hawkowl-TA+aISz0psMTMxyoc4vAAJOcrHinNvQL0E9HWUfgJXw@public.gmane.org Thu, 17 Mar 2016 08:04:40 -0600 (MDT)
Newsgroups gmane.comp.python.twisted.commits
Message-ID <[email protected]>
Author: hawkowl
Date: Thu Mar 17 08:04:33 2016
New Revision: 47009

Modified:
   branches/no-call-with-logger-6789-2/twisted/internet/_glibbase.py
   branches/no-call-with-logger-6789-2/twisted/internet/_threadedselect.py
   branches/no-call-with-logger-6789-2/twisted/internet/base.py
   branches/no-call-with-logger-6789-2/twisted/internet/cfreactor.py
   branches/no-call-with-logger-6789-2/twisted/internet/epollreactor.py
   branches/no-call-with-logger-6789-2/twisted/internet/iocpreactor/reactor.py
   branches/no-call-with-logger-6789-2/twisted/internet/kqreactor.py
   branches/no-call-with-logger-6789-2/twisted/internet/pollreactor.py
   branches/no-call-with-logger-6789-2/twisted/internet/selectreactor.py
   branches/no-call-with-logger-6789-2/twisted/internet/test/connectionmixins.py
   branches/no-call-with-logger-6789-2/twisted/internet/test/test_udp.py
   branches/no-call-with-logger-6789-2/twisted/internet/win32eventreactor.py

Log:
Merge forward.

Modified: branches/no-call-with-logger-6789-2/twisted/internet/_glibbase.py
==============================================================================
--- branches/no-call-with-logger-6789-2/twisted/internet/_glibbase.py	(original)
+++ branches/no-call-with-logger-6789-2/twisted/internet/_glibbase.py	Thu Mar 17 08:04:33 2016
@@ -166,8 +166,10 @@
         """
         Called by event loop when an I/O event occurs.
         """
-        log.callWithLogger(
-            source, self._doReadOrWrite, source, source, condition)
+        try:
+            self._doReadOrWrite(source, source, condition)
+        except Exception:
+            log.err()
         return True  # True = don't auto-remove the source
 
 

Modified: branches/no-call-with-logger-6789-2/twisted/internet/_threadedselect.py
==============================================================================
--- branches/no-call-with-logger-6789-2/twisted/internet/_threadedselect.py	(original)
+++ branches/no-call-with-logger-6789-2/twisted/internet/_threadedselect.py	Thu Mar 17 08:04:33 2016
@@ -185,14 +185,16 @@
         writes = self.writes
 
         _drdw = self._doReadOrWrite
-        _logrun = log.callWithLogger
         for selectables, method, dct in ((r, "doRead", reads), (w, "doWrite", writes)):
             for selectable in selectables:
                 # if this was disconnected in another thread, kill it.
                 if selectable not in dct:
                     continue
                 # This for pausing input when we're not ready for more.
-                _logrun(selectable, _drdw, selectable, method, dct)
+                try:
+                    _drdw(selectable, method, dct)
+                except Exception:
+                    log.err()
         #print >>sys.stderr, "done _process_Notify"
 
     def _process_Failure(self, f):

Modified: branches/no-call-with-logger-6789-2/twisted/internet/base.py
==============================================================================
--- branches/no-call-with-logger-6789-2/twisted/internet/base.py	(original)
+++ branches/no-call-with-logger-6789-2/twisted/internet/base.py	Thu Mar 17 08:04:33 2016
@@ -615,14 +615,16 @@
         log.msg("Received SIGTERM, shutting down.")
         self.callFromThread(self.stop)
 
+
     def disconnectAll(self):
         """Disconnect every reader, and writer in the system.
         """
         selectables = self.removeAll()
         for reader in selectables:
-            log.callWithLogger(reader,
-                               reader.connectionLost,
-                               failure.Failure(main.CONNECTION_LOST))
+            try:
+                reader.connectionLost(failure.Failure(main.CONNECTION_LOST))
+            except Exception:
+                log.err()
 
 
     def iterate(self, delay=0):

Modified: branches/no-call-with-logger-6789-2/twisted/internet/cfreactor.py
==============================================================================
--- branches/no-call-with-logger-6789-2/twisted/internet/cfreactor.py	(original)
+++ branches/no-call-with-logger-6789-2/twisted/internet/cfreactor.py	Thu Mar 17 08:04:33 2016
@@ -187,12 +187,16 @@
                 # actually attempt a doRead/doWrite first.  -glyph
                 if isRead:
                     if rw[_READ]:
-                        why = log.callWithLogger(
-                            readWriteDescriptor, readWriteDescriptor.doRead)
+                        try:
+                            why = readWriteDescriptor.doRead()
+                        except Exception:
+                            log.err()
                 else:
                     if rw[_WRITE]:
-                        why = log.callWithLogger(
-                            readWriteDescriptor, readWriteDescriptor.doWrite)
+                        try:
+                            why = readWriteDescriptor.doWrite()
+                        except Exception:
+                            log.err()
         except:
             why = sys.exc_info()[1]
             log.err()
@@ -497,5 +501,3 @@
     from twisted.internet.main import installReactor
     installReactor(reactor)
     return reactor
-
-

Modified: branches/no-call-with-logger-6789-2/twisted/internet/epollreactor.py
==============================================================================
--- branches/no-call-with-logger-6789-2/twisted/internet/epollreactor.py	(original)
+++ branches/no-call-with-logger-6789-2/twisted/internet/epollreactor.py	Thu Mar 17 08:04:33 2016
@@ -393,7 +393,10 @@
             except KeyError:
                 pass
             else:
-                log.callWithLogger(selectable, _drdw, selectable, fd, event)
+                try:
+                    _drdw(selectable, fd, event)
+                except Exception:
+                    log.err()
 
     doIteration = doPoll
 

Modified: branches/no-call-with-logger-6789-2/twisted/internet/iocpreactor/reactor.py
==============================================================================
--- branches/no-call-with-logger-6789-2/twisted/internet/iocpreactor/reactor.py	(original)
+++ branches/no-call-with-logger-6789-2/twisted/internet/iocpreactor/reactor.py	Thu Mar 17 08:04:33 2016
@@ -103,8 +103,10 @@
                 break
             if key != KEY_WAKEUP:
                 assert key == KEY_NORMAL
-                log.callWithLogger(evt.owner, self._callEventCallback,
-                                   rc, bytes, evt)
+                try:
+                    self._callEventCallback(rc, bytes, evt)
+                except Exception:
+                    log.err()
                 processed_events += 1
             if processed_events >= EVENTS_PER_LOOP:
                 break

Modified: branches/no-call-with-logger-6789-2/twisted/internet/kqreactor.py
==============================================================================
--- branches/no-call-with-logger-6789-2/twisted/internet/kqreactor.py	(original)
+++ branches/no-call-with-logger-6789-2/twisted/internet/kqreactor.py	Thu Mar 17 08:04:33 2016
@@ -267,7 +267,10 @@
                 # handler disconnects another.
                 continue
             else:
-                log.callWithLogger(selectable, _drdw, selectable, fd, event)
+                try:
+                    _drdw(selectable, fd, event)
+                except Exception:
+                    log.err()
 
 
     def _doWriteOrRead(self, selectable, fd, event):

Modified: branches/no-call-with-logger-6789-2/twisted/internet/pollreactor.py
==============================================================================
--- branches/no-call-with-logger-6789-2/twisted/internet/pollreactor.py	(original)
+++ branches/no-call-with-logger-6789-2/twisted/internet/pollreactor.py	Thu Mar 17 08:04:33 2016
@@ -166,7 +166,10 @@
                 # Handles the infrequent case where one selectable's
                 # handler disconnects another.
                 continue
-            log.callWithLogger(selectable, _drdw, selectable, fd, event)
+            try:
+                _drdw(selectable, fd, event)
+            except Exception:
+                log.err()
 
     doIteration = doPoll
 

Modified: branches/no-call-with-logger-6789-2/twisted/internet/selectreactor.py
==============================================================================
--- branches/no-call-with-logger-6789-2/twisted/internet/selectreactor.py	(original)
+++ branches/no-call-with-logger-6789-2/twisted/internet/selectreactor.py	Thu Mar 17 08:04:33 2016
@@ -131,7 +131,6 @@
                 raise
 
         _drdw = self._doReadOrWrite
-        _logrun = log.callWithLogger
         for selectables, method, fdset in ((r, "doRead", self._reads),
                                            (w,"doWrite", self._writes)):
             for selectable in selectables:
@@ -140,7 +139,10 @@
                 if selectable not in fdset:
                     continue
                 # This for pausing input when we're not ready for more.
-                _logrun(selectable, _drdw, selectable, method)
+                try:
+                    _drdw(selectable, method)
+                except Exception:
+                    log.err()
 
     doIteration = doSelect
 

Modified: branches/no-call-with-logger-6789-2/twisted/internet/test/connectionmixins.py
==============================================================================
--- branches/no-call-with-logger-6789-2/twisted/internet/test/connectionmixins.py	(original)
+++ branches/no-call-with-logger-6789-2/twisted/internet/test/connectionmixins.py	Thu Mar 17 08:04:33 2016
@@ -15,10 +15,9 @@
 
 from zope.interface.verify import verifyObject
 
-from twisted.python import context, log
+from twisted.python import log
 from twisted.python.failure import Failure
 from twisted.python.runtime import platform
-from twisted.python.log import ILogContext, msg, err
 from twisted.internet.defer import Deferred, gatherResults
 from twisted.internet.interfaces import IConnector, IReactorFDSet
 from twisted.internet.protocol import ClientFactory, Protocol, ServerFactory
@@ -248,7 +247,7 @@
 
     def clientConnectionFailed(self, connector, reason):
         self.failReason = reason
-        msg("Stop(CF) cCFailed: %s" % (reason.getErrorMessage(),))
+        log.msg("Stop(CF) cCFailed: %s" % (reason.getErrorMessage(),))
         self.reactor.stop()
 
 
@@ -265,16 +264,16 @@
 
 
     def connectionMade(self):
-        msg("ClosingLaterProtocol.connectionMade")
+        log.msg("ClosingLaterProtocol.connectionMade")
 
 
     def dataReceived(self, bytes):
-        msg("ClosingLaterProtocol.dataReceived %r" % (bytes,))
+        log.msg("ClosingLaterProtocol.dataReceived %r" % (bytes,))
         self.transport.loseConnection()
 
 
     def connectionLost(self, reason):
-        msg("ClosingLaterProtocol.connectionLost")
+        log.msg("ClosingLaterProtocol.connectionLost")
         self.lostConnectionReason = reason
         self.onConnectionLost.callback(self)
 
@@ -290,37 +289,6 @@
     endpoints = None
 
 
-    def test_logPrefix(self):
-        """
-        Client and server transports implement L{ILoggingContext.logPrefix} to
-        return a message reflecting the protocol they are running.
-        """
-        class CustomLogPrefixProtocol(ConnectableProtocol):
-            def __init__(self, prefix):
-                self._prefix = prefix
-                self.system = None
-
-            def connectionMade(self):
-                self.transport.write(b"a")
-
-            def logPrefix(self):
-                return self._prefix
-
-            def dataReceived(self, bytes):
-                self.system = context.get(ILogContext)["system"]
-                self.transport.write(b"b")
-                # Only close connection if both sides have received data, so
-                # that both sides have system set.
-                if b"b" in bytes:
-                    self.transport.loseConnection()
-
-        client = CustomLogPrefixProtocol("Custom Client")
-        server = CustomLogPrefixProtocol("Custom Server")
-        runProtocolsWithReactor(self, server, client, self.endpoints)
-        self.assertIn("Custom Client", client.system)
-        self.assertIn("Custom Server", server.system)
-
-
     def test_writeAfterDisconnect(self):
         """
         After a connection is disconnected, L{ITransport.write} and
@@ -335,19 +303,19 @@
         portDeferred = self.endpoints.server(reactor).listen(
             ServerFactory.forProtocol(protocol))
         def listening(port):
-            msg("Listening on %r" % (port.getHost(),))
+            log.msg("Listening on %r" % (port.getHost(),))
             endpoint = self.endpoints.client(reactor, port.getHost())
 
             lostConnectionDeferred = Deferred()
             protocol = lambda: ClosingLaterProtocol(lostConnectionDeferred)
             client = endpoint.connect(ClientFactory.forProtocol(protocol))
             def write(proto):
-                msg("About to write to %r" % (proto,))
+                log.msg("About to write to %r" % (proto,))
                 proto.transport.write(b'x')
             client.addCallbacks(write, lostConnectionDeferred.errback)
 
             def disconnected(proto):
-                msg("%r disconnected" % (proto,))
+                log.msg("%r disconnected" % (proto,))
                 proto.transport.write(b"some bytes to get lost")
                 proto.transport.writeSequence([b"some", b"more"])
                 finished.append(True)
@@ -359,7 +327,7 @@
 
         def onListen():
             portDeferred.addCallback(listening)
-            portDeferred.addErrback(err)
+            portDeferred.addErrback(log.err)
             portDeferred.addCallback(lambda ignored: reactor.stop())
         needsRunningReactor(reactor, onListen)
 
@@ -380,13 +348,13 @@
         portDeferred = self.endpoints.server(reactor).listen(
             ServerFactory.forProtocol(Protocol))
         def listening(port):
-            msg("Listening on %r" % (port.getHost(),))
+            log.msg("Listening on %r" % (port.getHost(),))
             endpoint = self.endpoints.client(reactor, port.getHost())
 
             client = endpoint.connect(
                 ClientFactory.forProtocol(lambda: clientProtocol))
             def disconnect(proto):
-                msg("About to disconnect %r" % (proto,))
+                log.msg("About to disconnect %r" % (proto,))
                 proto.transport.loseConnection()
             client.addCallback(disconnect)
             client.addErrback(lostConnectionDeferred.errback)
@@ -394,7 +362,7 @@
 
         def onListening():
             portDeferred.addCallback(listening)
-            portDeferred.addErrback(err)
+            portDeferred.addErrback(log.err)
             portDeferred.addBoth(lambda ignored: reactor.stop())
         needsRunningReactor(reactor, onListening)
 

Modified: branches/no-call-with-logger-6789-2/twisted/internet/test/test_udp.py
==============================================================================
--- branches/no-call-with-logger-6789-2/twisted/internet/test/test_udp.py	(original)
+++ branches/no-call-with-logger-6789-2/twisted/internet/test/test_udp.py	Thu Mar 17 08:04:33 2016
@@ -15,8 +15,7 @@
 from zope.interface import implementer
 from zope.interface.verify import verifyObject
 
-from twisted.python import context
-from twisted.python.log import ILogContext, err
+from twisted.python import log
 from twisted.internet.test.reactormixins import ReactorBuilder
 from twisted.internet.defer import Deferred, maybeDeferred
 from twisted.internet.interfaces import (
@@ -165,41 +164,6 @@
             0, interface='example.com')
 
 
-    def test_logPrefix(self):
-        """
-        Datagram transports implement L{ILoggingContext.logPrefix} to return a
-        message reflecting the protocol they are running.
-        """
-        class CustomLogPrefixDatagramProtocol(DatagramProtocol):
-            def __init__(self, prefix):
-                self._prefix = prefix
-                self.system = Deferred()
-
-            def logPrefix(self):
-                return self._prefix
-
-            def datagramReceived(self, bytes, addr):
-                if self.system is not None:
-                    system = self.system
-                    self.system = None
-                    system.callback(context.get(ILogContext)["system"])
-
-        reactor = self.buildReactor()
-        protocol = CustomLogPrefixDatagramProtocol("Custom Datagrams")
-        d = protocol.system
-        port = self.getListeningPort(reactor, protocol)
-        address = port.getHost()
-
-        def gotSystem(system):
-            self.assertEqual("Custom Datagrams (UDP)", system)
-        d.addCallback(gotSystem)
-        d.addErrback(err)
-        d.addCallback(lambda ignored: reactor.stop())
-
-        port.write(b"some bytes", ('127.0.0.1', address.port))
-        self.runReactor(reactor)
-
-
     def test_str(self):
         """
         C{str()} on the listening port object includes the port number.
@@ -257,7 +221,7 @@
         d = defer.gatherResults([serverStarted, clientStarted])
         d.addCallback(cbClientStarted)
         d.addCallback(cbServerReceived)
-        d.addErrback(err)
+        d.addErrback(log.err)
         self.runReactor(reactor)
 
         packet = server.packets[0]
@@ -306,7 +270,7 @@
         d = defer.gatherResults([serverStarted, clientStarted])
         d.addCallback(cbClientStarted)
         d.addCallback(cbServerReceived)
-        d.addErrback(err)
+        d.addErrback(log.err)
         self.runReactor(reactor)
 
         packet = server.packets[0]

Modified: branches/no-call-with-logger-6789-2/twisted/internet/win32eventreactor.py
==============================================================================
--- branches/no-call-with-logger-6789-2/twisted/internet/win32eventreactor.py	(original)
+++ branches/no-call-with-logger-6789-2/twisted/internet/win32eventreactor.py	Thu Mar 17 08:04:33 2016
@@ -232,7 +232,10 @@
 
         for fd in self._writes.keys():
             ranUserCode = True
-            log.callWithLogger(fd, self._runWrite, fd)
+            try:
+                self._runWrite(fd)
+            except Exception:
+                log.err()
 
         if ranUserCode:
             # If application code *might* have scheduled an event, assume it
@@ -275,7 +278,10 @@
                 events = WSAEnumNetworkEvents(fileno, event)
                 if FD_CLOSE in events:
                     self._closedAndReading[fd] = True
-            log.callWithLogger(fd, self._runAction, action, fd)
+            try:
+                self._runAction(action, fd)
+            except Exception:
+                log.err()
 
 
     def _runWrite(self, fd):