On Jun 04 2015, Jason Lunz <[email protected]> wrote:
> I'm a happy user of s3ql on linux, and sometimes I check on the status of
> osx support. I thought I'd report how far I got with it.
>
> For a while the problem has been llfuse's requirement of fuse >= 2.8.0 when
> the latest available osxfuse release is 2.7.5
> (https://github.com/osxfuse/osxfuse/issues/200). But today I saw that
> there's a prerelease of osxfuse 3.0.3 available based on fuse 2.9.3 and I
> thought I'd try it out. (Note the warning from that github issue that not
> all fuse features are supported, so llfuse may not work).
>
> With the newer osxfuse, I'm able to install llfuse on osx and build s3ql.
> However, I ran into a couple problems running the tests. The easier one is
> that s3ql calls 'umount -l' in a couple places on Darwin, but on my
> yosemite mac the -l flag isn't supported so the umount fails. Removing the
> -l fixes this.
>
> Secondly, I get this test failure:
>
> Uncaught top-level exception:
> Traceback (most recent call last):
> File "/Users/jasonlunz/src/s3ql-2.13/bin/mount.s3ql", line 26, in <module>
> s3ql.mount.main(sys.argv[1:])
> File "/Users/jasonlunz/src/s3ql-2.13/src/s3ql/mount.py", line 213, in main
> llfuse.main(options.single)
> File "fuse_api.pxi", line 314, in llfuse.capi.main
> (src/llfuse/capi_darwin.c:21439)
> File "handlers.pxi", line 26, in llfuse.capi.fuse_destroy
> (src/llfuse/capi_darwin.c:1824)
> File "/Users/jasonlunz/src/s3ql-2.13/src/s3ql/fs.py", line 122, in destroy
> self.forget(list(self.open_inodes.items()))
> File "/Users/jasonlunz/src/s3ql-2.13/src/s3ql/fs.py", line 1141, in forget
> self.cache.remove(id_, 0, inode.size // self.max_obj_size + 1)
> File "/Users/jasonlunz/src/s3ql-2.13/src/s3ql/block_cache.py", line 865,
> in remove
> self._lock_entry(inode, blockno, release_global=True)
> File "/Users/jasonlunz/src/s3ql-2.13/src/s3ql/block_cache.py", line 323,
> in _lock_entry
> with lock_released:
> File "misc.pxi", line 286, in llfuse.capi.NoLockManager.__enter__
> (src/llfuse/capi_darwin.c:18396)
> File "misc.pxi", line 237, in llfuse.capi.Lock.release
> (src/llfuse/capi_darwin.c:17751)
> RuntimeError: Lock can only be released by the holding thread
>
> Any thoughts?
My guess is that osxfuse is calling the FUSE destroy() handler from one
of the worker threads. FUSE, however, first terminates all worker
threads and then calls destroy() from the main thread.
If this is true, then it can be fixed trivially in llfuse. But before I
tell you how, I request that you confirm with the osxfuse developers
that this is actually the problem :-).
Best,
-Nikolaus
--
GPG encrypted emails preferred. Key id: 0xD113FCAC3C4E599F
Fingerprint: ED31 791B 2C5C 1613 AF38 8B8A D113 FCAC 3C4E 599F
»Time flies like an arrow, fruit flies like a Banana.«
--
You received this message because you are subscribed to the Google Groups
"s3ql" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.