[Bugs] [Bug 1195053] glusterd 3.6.2 failing on FreeBSD; ImportError: cannot import name ENODATA
bugzilla at redhat.com
bugzilla at redhat.com
Mon Feb 23 00:04:36 UTC 2015
https://bugzilla.redhat.com/show_bug.cgi?id=1195053
Harshavardhana <fharshav at redhat.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |fharshav at redhat.com
--- Comment #2 from Harshavardhana <fharshav at redhat.com> ---
The larger issue is not just errno compatibility, what i saw was that it is
rather hard to support FreeBSD for geo-replication.
Due to some hard met dependencies - geo-replication oddly uses libcxattr.py its
own Xattr wrapper implementation around libc {getxattr,setxattr,listxattr}
calls
All geo-replication is highly dependent on that so for a cross platform based
support we need to fix this libcxattr.py
For example
~~~
>>> import sys
>>> sys.platform
'freebsd10'
>>> from ctypes import CDLL
>>> from ctypes.util import find_library
>>> libc = CDLL(find_library("libc"))
>>> getattr(libc, "lgetxattr")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/ctypes/__init__.py", line 378, in __getattr__
func = self.__getitem__(name)
File "/usr/local/lib/python2.7/ctypes/__init__.py", line 383, in __getitem__
func = self._FuncPtr((name_or_ordinal, self))
AttributeError: Undefined symbol "lgetxattr"
>>>
>>> getattr(libc, "extattr_get_file")
<_FuncPtr object at 0x801f41390>
>>>
~~~
So in general geo-replication is not going to work on FreeBSD for the time
being with some good changes to make it more portable.
Using our libcxattr.py would have had some clear advantages than using more
portable python's own 'xattr' implementation. But it isn't too late to ponder
upon what it takes to use just the standard 'xattr' implementation.
NOTE: OSX implements similar semantics as GNU platforms so geo-replication
might just work without any further compatibility issues.
--
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.
More information about the Bugs
mailing list