<div dir="ltr"><p class="gmail-p1"><span style="color:rgb(0,0,0)">Hi,</span><br><font color="#000000"><span style="caret-color: rgb(0, 0, 0);"><br></span></font><span style="color:rgb(0,0,0)">I am seeing a</span><span class="gmail-Apple-converted-space" style="color:rgb(0,0,0)"> </span><span class="gmail-s1" style="color:rgb(0,0,0)">TypeError</span><span class="gmail-Apple-converted-space" style="color:rgb(0,0,0)"> </span><span style="color:rgb(0,0,0)">at Python interpreter shutdown when using the Python bindings shipped with file (</span><span class="gmail-s1" style="color:rgb(0,0,0)">python/magic.py</span><span style="color:rgb(0,0,0)">).</span><br><font color="#000000"><span style="caret-color: rgb(0, 0, 0);"><br></span></font><span style="color:rgb(0,0,0)">MagicDetect.__del__()</span><span class="gmail-s2" style="color:rgb(0,0,0)"><span class="gmail-Apple-converted-space"> </span>calls<span class="gmail-Apple-converted-space"> </span></span><span style="color:rgb(0,0,0)">Magic.close()</span><span class="gmail-s2" style="color:rgb(0,0,0)"><span class="gmail-Apple-converted-space"> </span>(see</span><span class="gmail-s2"> </span><span style="color:rgb(0,0,0)"><a href="https://github.com/file/file/blob/master/python/magic.py#L300-L310">https://github.com/file/file/blob/master/python/magic.py#L300-L310</a>), </span><span style="color:rgb(0,0,0)">which in turn calls the module-global</span><span class="gmail-Apple-converted-space" style="color:rgb(0,0,0)"> </span><span class="gmail-s1" style="color:rgb(0,0,0)">_close</span><span class="gmail-Apple-converted-space" style="color:rgb(0,0,0)"> </span><span style="color:rgb(0,0,0)">in</span><span class="gmail-Apple-converted-space" style="color:rgb(0,0,0)"> </span><span class="gmail-s1" style="color:rgb(0,0,0)">Magic.close()</span><span class="gmail-Apple-converted-space" style="color:rgb(0,0,0)"> </span><span style="color:rgb(0,0,0)">(see </span><span style="color:rgb(0,0,0)"><a href="https://github.com/file/file/blob/master/python/magic.py#L130-L136">https://github.com/file/file/blob/master/python/magic.py#L130-L136</a>).</span></p><p class="gmail-p1"><span style="color:rgb(0,0,0)">During interpreter shutdown, module globals may already be cleared, so</span><span class="gmail-Apple-converted-space" style="color:rgb(0,0,0)"> </span><span class="gmail-s1" style="color:rgb(0,0,0)">_close</span><span class="gmail-Apple-converted-space" style="color:rgb(0,0,0)"> </span><span style="color:rgb(0,0,0)">can become</span><span class="gmail-Apple-converted-space" style="color:rgb(0,0,0)"> </span><span class="gmail-s1" style="color:rgb(0,0,0)">None</span><span style="color:rgb(0,0,0)">, resulting in: </span><span style="color:rgb(0,0,0)">TypeError: ‘NoneType’ object is not callable</span><br><font color="#000000"><span style="caret-color: rgb(0, 0, 0);"><br></span></font><span style="color:rgb(0,0,0)">The attached patch avoids relying on the module-global</span><span class="gmail-Apple-converted-space" style="color:rgb(0,0,0)"> </span><span class="gmail-s1" style="color:rgb(0,0,0)">_close</span><span class="gmail-Apple-converted-space" style="color:rgb(0,0,0)"> </span><span style="color:rgb(0,0,0)">during finalization by caching the</span><span class="gmail-Apple-converted-space" style="color:rgb(0,0,0)"> </span><span class="gmail-s1" style="color:rgb(0,0,0)">magic_close</span><span class="gmail-Apple-converted-space" style="color:rgb(0,0,0)"> </span><span style="color:rgb(0,0,0)">function pointer on the</span><span class="gmail-Apple-converted-space" style="color:rgb(0,0,0)"> </span><span class="gmail-s1" style="color:rgb(0,0,0)">Magic</span><span class="gmail-Apple-converted-space" style="color:rgb(0,0,0)"> </span><span style="color:rgb(0,0,0)">instance and using that in</span><span class="gmail-Apple-converted-space" style="color:rgb(0,0,0)"> </span><span class="gmail-s1" style="color:rgb(0,0,0)">close()</span><span style="color:rgb(0,0,0)">. This prevents the shutdown exception without changing normal runtime behavior.</span><br><font color="#000000"><span style="caret-color: rgb(0, 0, 0);"><br></span></font><span style="color:rgb(0,0,0)">Related downstream report:</span><br><span style="color:rgb(0,0,0)"><a href="https://bugzilla.redhat.com/show_bug.cgi?id=2419719">https://bugzilla.redhat.com/show_bug.cgi?id=2419719</a></span><br><font color="#000000"><span style="caret-color: rgb(0, 0, 0);"><br></span></font><span style="color:rgb(0,0,0)">Best regards,</span><br><span style="color:rgb(0,0,0)">Vincent</span><br></p></div>