New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mb scan/probefile leaves temporary directories behind #16

Closed
poeml opened this Issue Jun 5, 2015 · 0 comments

Comments

Projects
None yet
1 participant
@poeml
Owner

poeml commented Jun 5, 2015

                                                                                                                     [          ]

Issue migrated (2015-06-05) from old issue tracker http://mirrorbrain.org/issues/issue20

Title    mb scan/probefile leaves temporary directories behind
 Priority   bug                Status         resolved
Superseder                    Nosy List       poeml
Assigned To poeml             Keywords

msg47 (view) Author: poeml Date: 2009-11-01.22:10:59

drwx------ 2 mirrorbrain mirrorbrain 48 2009-10-31 22:44 mb_probefile__30RC9
drwx------ 2 mirrorbrain mirrorbrain 48 2009-11-01 06:44 mb_probefile_QPfHmA
drwx------ 2 mirrorbrain mirrorbrain 48 2009-11-01 06:44 mb_probefile_-EUd23
drwx------ 2 mirrorbrain mirrorbrain 48 2009-11-01 06:44 mb_probefile_NDtT2m
drwx------ 2 mirrorbrain mirrorbrain 48 2009-11-01 06:44 mb_probefile_xFF50B
drwx------ 2 mirrorbrain mirrorbrain 48 2009-11-01 06:44 mb_probefile__-_NhU
drwx------ 2 mirrorbrain mirrorbrain 48 2009-11-01 06:44 mb_probefile_EhW8Mx
drwx------ 2 mirrorbrain mirrorbrain 48 2009-11-01 06:44 mb_probefile_CBTamD
drwx------ 2 mirrorbrain mirrorbrain 48 2009-11-01 20:44 mb_probefile_keI-Xv
drwx------ 2 mirrorbrain mirrorbrain 48 2009-11-01 20:44 mb_probefile_fjmV_C

These are empty directories, left behind by "mb scan" I think.

msg49 (view) Author: poeml Date: 2009-11-04.20:45:17

While the above was observed on a 64-bit openSUSE 11.0 install, I can't for some reason reproduce it on two other
systems: one with 32-bit openSUSE 11.0, one with 32-bit openSUSE 11.1.

The temporary directories are created by testmirror.py when it looks up files per rsync.

Given that I understand Python's except..finally statement correctly, the cleanup should always happen, because it is
under the finally clause:

  elif S.scheme == 'rsync':

      try:
          tmpdir = tempfile.mkdtemp(prefix='mb_probefile_')
          # [do stuff here]
      finally:
          shutil.rmtree(tmpdir, ignore_errors=True)

      return

Thus, it shouls always be executed. There is no reason for errors (shutil.rmtree is recursive, and there is no
problem with file ownership to be expected).

All the machines I tested on have Python 2.5, and as far as I know, the finally clause for except..finally was (re-
)added with Python 2.5.

However, SLE10, where MirrorBrain is deployed extensively as well, there is Python 2.4. So I'm actually not sure why
the code works there at all. A small test program shows that 2.4.2 indeed has support for except..finally:

!/usr/bin/python

import sys

try:
print 'in the try clause'
sys.exit(0)

finally:
print 'in the finally clause'

/tmp/t.py

in the try clause
in the finally clause

Replacing the sys.exit(0) with raising an exception, or just removing it, all works correctly.

The only thing that I can imagine is that the backported "processing" module on SLE10 influences the exception
handling in some unfortunate way. But that's only a very wild guess.

msg66 (view) Author: poeml Date: 2009-11-30.01:00:46

As the problem doesn't occur in most setups, and I can't reproduce it anymore (no
access to the previous machines anymore), I see no immediate need to pursue it.

msg100 (view) Author: poeml Date: 2009-12-07.03:18:38

Okay, I'll just close this now.

History
         Date         User  Action             Args
2009-12-07 03:18:38 poeml set    status: deferred -> resolved
                                   messages: + msg100
2009-11-30 01:00:47 poeml set    status: chatting -> deferred
                                   messages: + msg66
2009-11-04 20:45:18 poeml set    status: unread -> chatting
                                   messages: + msg49
2009-11-01 22:10:59 poeml create

(end of migrated issue)

@poeml poeml added bug resolved labels Jun 5, 2015

@poeml poeml closed this Jun 5, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment