Creating instant cache dir fails if ~/.instant is a dangling symlink

Issue #8 new
Prof Garth Wells created an issue

From Florian:

If ~/.instant is a symlink pointing to a non-existent directory instant dies when trying to create the cache directory:

File "/home/op2-devel/fenics/1.1/lib/python2.7/site-packages/dolfin/functions/functionspace.py", line 381, in __init__
    FunctionSpaceBase.__init__(self, mesh, element)
  File "/home/op2-devel/fenics/1.1/lib/python2.7/site-packages/dolfin/functions/functionspace.py", line 78, in __init__
    ufc_element, ufc_dofmap = jit(self._ufl_element)
  File "/home/op2-devel/fenics/1.1/lib/python2.7/site-packages/dolfin/compilemodules/jit.py", line 70, in mpi_jit
    output = local_jit(*args, **kwargs)
  File "/home/op2-devel/fenics/1.1/lib/python2.7/site-packages/dolfin/compilemodules/jit.py", line 154, in jit
    return jit_compile(form, parameters=p, common_cell=common_cell)
  File "/home/op2-devel/fenics/1.1/lib/python2.7/site-packages/ffc/jitcompiler.py", line 71, in jit
    return jit_element(ufl_object, parameters)
  File "/home/op2-devel/fenics/1.1/lib/python2.7/site-packages/ffc/jitcompiler.py", line 177, in jit_element
    compiled_form, module, form_data, prefix = jit_form(form, parameters)
  File "/home/op2-devel/fenics/1.1/lib/python2.7/site-packages/ffc/jitcompiler.py", line 102, in jit_form
    module = instant.import_module(jit_object, cache_dir=cache_dir)
  File "/home/op2-devel/fenics/1.1/lib/python2.7/site-packages/instant/cache.py", line 156, in import_module
    return check_disk_cache(modulename, cache_dir, moduleids)
  File "/home/op2-devel/fenics/1.1/lib/python2.7/site-packages/instant/cache.py", line 113, in check_disk_cache
    lock = get_lock(cache_dir, modulename)
  File "/home/op2-devel/fenics/1.1/lib/python2.7/site-packages/instant/locking.py", line 78, in get_lock
    cache_dir = validate_cache_dir(cache_dir)
  File "/home/op2-devel/fenics/1.1/lib/python2.7/site-packages/instant/paths.py", line 61, in validate_cache_dir
    return get_default_cache_dir()
  File "/home/op2-devel/fenics/1.1/lib/python2.7/site-packages/instant/paths.py", line 47, in get_default_cache_dir
    makedirs(cache_dir)
  File "/home/op2-devel/fenics/1.1/lib/python2.7/site-packages/instant/paths.py", line 72, in makedirs
    os.makedirs(path)
  File "/apps/python/2.7.3/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 2] No such file or directory: '/home/fr710/.instant/cache'

Comments (5)

  1. Martin Sandve Alnæs

    IMO this is a user error, just as os.mkdir("/invaliddir") will raise an OSError because the path is invalid.

  2. Log in to comment