I&#39;m using twisted 8.2 and (after reading glyph&#39;s latest &quot;Twisted in 60 seconds&quot; entry), I&#39;ve realized that my sessions never expire.  I never added any session expiration code, but I thought that the default code expires after 15 minutes.<br /><br />In the below example, I modified twisted\web\server to make Session.sessionTimeout be 30 seconds (I also put a print statement in Session&#39;s ctor, as the log shows), then did two GETs separated by more than 30 seconds.  As the log shows, it looks like the exact same session uid is being returned.  I would expect it to be deleted by Session.expire, since time - lastModifiedTime &gt; 30.  Am I missing something?<br /><br />import sys<br />from twisted.web import server, static<br />from twisted.web.resource import Resource<br />from twisted.web.server import Session, NOT_DONE_YET<br />from twisted.internet import reactor, ssl<br />from twisted.python import log<br /><br />class TestSessionResource(Resource):<br />    isLeaf = True<br />    def render_GET(self, request):<br />        session = request.getSession()<br />        print session.sessionTimeout<br />        print session.uid<br />        print session<br />        return &quot;&lt;html&gt;&lt;body&gt;&lt;p&gt;Session Test&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;&quot;<br /><br />root = TestSessionResource()<br />reactor.listenTCP(9000, server.Site(root))<br />log.startLogging(sys.stdout)<br />reactor.run()<br /><br />2010-03-02 12:16:49-0600 [-] Log opened.<br />2010-03-02 12:16:52-0600 [HTTPChannel,0,127.0.0.1] making a new session!!!<br />2010-03-02 12:16:52-0600 [HTTPChannel,0,127.0.0.1] 30<br />2010-03-02 12:16:52-0600 [HTTPChannel,0,127.0.0.1] 338e4aa450f671b2f0115513737e643b<br />2010-03-02 12:16:52-0600 [HTTPChannel,0,127.0.0.1] &lt;twisted.web.server.Session instance at 0x01042AD0&gt;<br />2010-03-02 12:16:52-0600 [HTTPChannel,0,127.0.0.1] 127.0.0.1 - - [02/Mar/2010:18:16:51 +0000] &quot;GET / HTTP/1.1&quot; 200 45 &quot;-&quot; &quot;Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.89 Safari/532.5&quot;<br /><br />2010-03-02 12:16:52-0600 [HTTPChannel,0,127.0.0.1] 30<br />2010-03-02 12:16:52-0600 [HTTPChannel,0,127.0.0.1] 338e4aa450f671b2f0115513737e643b<br />2010-03-02 12:16:52-0600 [HTTPChannel,0,127.0.0.1] &lt;twisted.web.server.Session instance at 0x01042AD0&gt;<br />2010-03-02 12:16:52-0600 [HTTPChannel,0,127.0.0.1] 127.0.0.1 - - [02/Mar/2010:18:16:51 +0000] &quot;GET /favicon.ico HTTP/1.1&quot; 200 45 &quot;-&quot; &quot;Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.89 Safari/532.5&quot;<br />2010-03-02 12:17:45-0600 [HTTPChannel,0,127.0.0.1] 30<br />2010-03-02 12:17:45-0600 [HTTPChannel,0,127.0.0.1] 338e4aa450f671b2f0115513737e643b<br />2010-03-02 12:17:45-0600 [HTTPChannel,0,127.0.0.1] &lt;twisted.web.server.Session instance at 0x01042AD0&gt;<br />2010-03-02 12:17:45-0600 [HTTPChannel,0,127.0.0.1] 127.0.0.1 - - [02/Mar/2010:18:17:44 +0000] &quot;GET / HTTP/1.1&quot; 200 45 &quot;-&quot; &quot;Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.89 Safari/532.5&quot;<br /><br />2010-03-02 12:17:45-0600 [HTTPChannel,0,127.0.0.1] 30<br />2010-03-02 12:17:45-0600 [HTTPChannel,0,127.0.0.1] 338e4aa450f671b2f0115513737e643b<br />2010-03-02 12:17:45-0600 [HTTPChannel,0,127.0.0.1] &lt;twisted.web.server.Session instance at 0x01042AD0&gt;<br />2010-03-02 12:17:45-0600 [HTTPChannel,0,127.0.0.1] 127.0.0.1 - - [02/Mar/2010:18:17:44 +0000] &quot;GET /favicon.ico HTTP/1.1&quot; 200 45 &quot;-&quot; &quot;Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.89 Safari/532.5&quot;