<div dir="ltr">Use twisted.python.logfile.LogFile wirte log,Memory can not be
released, does anybody familiar with or encounter such a situation?<br><br>Environment: FREEBSD 6.3 RELEASE<br>twisted svn trunk today<br><br><br>
Description of the problem<br>Use &quot;TOP&quot; command observe the used memory, memory first use the BUF, if buf&gt;111M, then don&#39;t use buf<br>and use WIRED, Wired to around 132 M, and then use Inact<br>If during the service&nbsp; manually delete the generated file. Memory will be released.<br>

twisted.python.logfile.LogFile default&nbsp; log file will be closed at 1 M
size, and re-open a file, how the file is closed, but the memory still
not released?<br><br>sorry for my poor english.. thank you<br><br><br>**test code:<br>
<br>#!/usr/local/bin/python<br>import datetime<br>import os<br>from twisted.python import logfile<br><br>class LogFile2(logfile.LogFile):<br>&nbsp;&nbsp;&nbsp; &#39;&#39;&#39;<br>&nbsp;&nbsp;&nbsp; &#39;&#39;&#39;<br>&nbsp;&nbsp;&nbsp; def rotate(self):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;&quot;&quot;<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Rotate the file and create a new one.<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If it&#39;s not possible to open new logfile, this will fail silently,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and continue logging to old logfile.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;&quot;&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if not (os.access(self.directory, os.W_OK) and os.access(self.path, os.W_OK)):<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logs = self.listLogs()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logs.reverse()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for i in logs:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if self.maxRotatedFiles is not None and i &gt;= self.maxRotatedFiles:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; os.remove(&quot;%s.%d&quot; % (self.path, i))<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; os.rename(&quot;%s.%d&quot; % (self.path, i), &quot;%s.%d&quot; % (self.path, i + 1))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self._file.close()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print self._file, &#39;closed&#39;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; os.rename(self.path, &quot;%s.1&quot; % self.path)<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self._openFile()<br><br><br>i=10000000<br>log = LogFile2(&#39;test_logfile.log&#39;, &#39;/home/echo/tmp/test/&#39;)<br><br>while i:<br>&nbsp;&nbsp;&nbsp; msg = &#39;%s: test_test_test_test\r\n&#39; % str(i)<br>&nbsp;&nbsp;&nbsp; log.write(msg)<br>

&nbsp;&nbsp;&nbsp; i=i-1<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; <br>log.close()<br><br>**result。<br><br>&lt;closed file &#39;/home/echo/tmp/test/test_<div dir="ltr">logfile.log&#39;, mode &#39;r+&#39; at 0x827ccc8&gt; closeed<br>&lt;closed file &#39;/home/echo/tmp/test/test_logfile.log&#39;, mode &#39;w+&#39; at 0x827c458&gt; closeed<br>

&lt;closed file &#39;/home/echo/tmp/test/test_logfile.log&#39;, mode &#39;w+&#39; at 0x827ccc8&gt; closeed<br>&lt;closed file &#39;/home/echo/tmp/test/test_logfile.log&#39;, mode &#39;w+&#39; at 0x827c458&gt; closeed<br>
&lt;closed file &#39;/home/echo/tmp/test/test_logfile.log&#39;, mode &#39;w+&#39; at 0x827ccc8&gt; closeed<br>
&lt;closed file &#39;/home/echo/tmp/test/test_logfile.log&#39;, mode &#39;w+&#39; at 0x827c458&gt; closeed<br>&lt;closed file &#39;/home/echo/tmp/test/test_logfile.log&#39;, mode &#39;w+&#39; at 0x827ccc8&gt; closeed<br>
&lt;closed file &#39;/home/echo/tmp/test/test_logfile.log&#39;, mode &#39;w+&#39; at 0x827c458&gt; closeed<br>
&lt;closed file &#39;/home/echo/tmp/test/test_logfile.log&#39;, mode &#39;w+&#39; at 0x827ccc8&gt; closeed<br>&lt;closed file &#39;/home/echo/tmp/test/test_logfile.log&#39;, mode &#39;w+&#39; at 0x827c458&gt; closeed<br>
&lt;closed file &#39;/home/echo/tmp/test/test_logfile.log&#39;, mode &#39;w+&#39; at 0x827ccc8&gt; closeed<br>
&lt;closed file &#39;/home/echo/tmp/test/test_logfile.log&#39;, mode &#39;w+&#39; at 0x827c458&gt; closeed<br>.......</div></div>