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
pybind: move cephfs to Cython #7745
Conversation
guessing @jcsp would like to look at this one |
@@ -1 +1 @@ | |||
Subproject commit 9322c258084c6abdeefe00067f8b310a6e0d9a5a | |||
Subproject commit c02b179490123a3212b0c0d23b69da13965d1552 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
accidental submodule revert here -- run git submodule update --init --recursive
from the root of your checkout to get the latest submodule updates
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
e642c4e
to
3703e83
Compare
@sileht this is segfaulting during tests: https://jenkins.ceph.com/job/ceph-pull-requests/1914/console |
fb98797
to
5067078
Compare
It's fixed |
@sileht |
5067078
to
6042cc8
Compare
I have updated pybind/Makefile.am |
0438ed4
to
74711cb
Compare
This is failing when used within ceph_volume_client
|
74711cb
to
03fee59
Compare
I have fixed this error, now the code will raise the root cause instead. So in your case, you will now get an error like "error in getxattr: error code -XX". I have also added a test to cover that, but it doesn't pass, at least on my setup and even with the old python binding... With cython, getxattr returns errno -34, while it doesn't complains when the test writes the xattr value with setxattr. The issue occurs when getxattr have to retreive a payload greater that 255 bytes. So, Why setxattr doesn't complains ? Does the value have been stored ? Anyways, that looks like a libcephfs bug. |
On 26-2-2016 18:09, Mehdi ABAAKOUK wrote:
I've run into another snag here, which I do not know how to solve since For FreeBSD we have a define in: Because ENODATA is not really defined in /usr/include/errno.h How would I fix this for FreeBSD? --WjW |
ATM I manually change part to code to use ENOATTR (instead of ENODATA), but then I still get: |
03fee59
to
bbb68b5
Compare
This issue looks like related to your Cython installation/version and not to this change. Also, Rados and Rbd python module already use libc.errno cython module, I don't think this is the goal of this PR to fix compilation issue on FreeBSD that are already present in ceph master branch. |
On 29-2-2016 08:37, Mehdi ABAAKOUK wrote:
No I appriate that this PR is not to fix the FreeBSD issue. I installed cython from the packages that FreeBSD has. And in those Could it be that lib.errno only get compiled in when RBD is defined? --WjW |
This change moves cephfs binding to Cython. Closes-bug: ceph#14818 Signed-off-by: Mehdi Abaakouk <sileht@redhat.com>
bbb68b5
to
10f125f
Compare
If you have errno.pxd, and cimport won't work, perhaps that means you have something wrong with your cython package. Cython/Includes/libc is automatically included on Linux for cython compilation and it looks not on FreeBSD. |
@wjwithagen please pick up discussion elsewhere, this PR is about libcephfs, not Cython in general. |
@sileht this now passes volume client tests locally when combined with these two commits, please cherry pick them onto this branch: |
The ctypes bindings returned empty string instead of raising exception. This was a bug, because it made it impossible to detect the difference between missing xattr and empty xattr. Signed-off-by: John Spray <john.spray@redhat.com>
No need to explicitly touch the (no-longer-existing) load_libcephfs method during module load, as with the cython version we already get an ImportError if the C library is unavailable. Signed-off-by: John Spray <john.spray@redhat.com>
Pushed branch to main repo as wip-test-cython, will schedule a fs suite on it once gitbuilders have built it. |
Test run enqueued here http://pulpito.ceph.com/jspray-2016-02-29_05:31:13-fs:recovery-wip-test-cython---basic-mira/ |
The test run was all passes except for one "possible recursive locking detected" in FUSE (can't be anything to do with Cython, but it did happen to be in the VolumeClient test, which is currently failing always, so no possibility of a regression here). |
pybind: move cephfs to Cython Reviewed-by: John Spray <john.spray@redhat.com>
Thanks @sileht ! |
This change moves cephfs binding to Cython.
Closes-bug: #14818
Signed-off-by: Mehdi Abaakouk sileht@redhat.com