Skip to content

Various FreeBSD issues #14

@novel

Description

@novel

There are a number of issues with pyfuse3 on FreeBSD right now.

Buildtime issues:

  1. In src/pyfuse.pyx, there's def syncfs(path) function that calls libc_extra.syncfs(), which is expected to be available in unistd.h. However, there's no such function available on FreeBSD, and, in general, it appears to be Linux-only.
  2. In src/pyfuse3.pyx, it's expected that linux/fs.h contains RENAME_EXCHANGE and RENAME_NOREPLACE which's not the case on FreeBSD (there's no such header at all).

Runtime issues:

$ sudo python3 examples/tmpfs.py ~/fuse
Traceback (most recent call last):
  File "examples/tmpfs.py", line 451, in <module>
    trio.run(pyfuse3.main)
  File "/usr/local/lib/python3.6/site-packages/trio-0.11.0-py3.6.egg/trio/_core/_run.py", line 1444, in run
    raise runner.main_task_outcome.error
  File "/usr/home/novel/code/pyfuse3/src/_pyfuse3.py", line 30, in wrapper
    await fn(*args, **kwargs)
  File "src/pyfuse3.pyx", line 732, in main
    async with trio.open_nursery() as nursery:
  File "/usr/local/lib/python3.6/site-packages/trio-0.11.0-py3.6.egg/trio/_core/_run.py", line 506, in __aexit__
    raise combined_error_from_nursery
  File "/usr/home/novel/code/pyfuse3/src/_pyfuse3.py", line 30, in wrapper
    await fn(*args, **kwargs)
  File "src/internal.pxi", line 229, in _session_loop
    await _wait_fuse_readable()
  File "src/internal.pxi", line 205, in _wait_fuse_readable
    async with worker_data.read_lock:
  File "src/internal.pxi", line 207, in pyfuse3._wait_fuse_readable
    await trio.hazmat.wait_readable(session_fd)
  File "/usr/local/lib/python3.6/site-packages/trio-0.11.0-py3.6.egg/trio/_core/_io_kqueue.py", line 131, in wait_readable
    await self._wait_common(fd, select.KQ_FILTER_READ)
  File "/usr/local/lib/python3.6/site-packages/trio-0.11.0-py3.6.egg/trio/_core/_io_kqueue.py", line 120, in _wait_common
    self._kqueue.control([event], 0)
OSError: [Errno 19] Operation not supported by device
$

I'm yet to debug this traceback further.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions