2024-11-19T08:08:47.230Z | <Igor Golikov> Hello, I am trying to build ceph using `run-make-check.sh` on ARM Ubuntu (actually its ubuntu running with UTM on M1 MacBookPro). I am hitting this one:
FAILED: lib/cython_modules/lib.3/rados.cpython-310-aarch64-linux-gnu.so /mnt/shared/il032930/github/salieri11/ceph/build/lib/cython_modules/lib.3/rados.cpython-310-aarch64-linux-gnu.so
cd /mnt/shared/il032930/github/salieri11/ceph/src/pybind/rados && env CC="/usr/bin/clang-14" CFLAGS="" CPPFLAGS="-iquote/mnt/shared/il032930/github/salieri11/ceph/src/include -w -D'void0=dead_function(void)' -D'__Pyx_check_single_interpreter(ARG)=ARG##0'" CXX="/usr/bin/clang++-14" LDSHARED="/usr/bin/clang-14 -shared" OPT="-DNDEBUG -g -fwrapv -O2 -w" LDFLAGS="-L/mnt/shared/il032930/github/salieri11/ceph/build/lib" CYTHON_BUILD_DIR=/mnt/shared/il032930/github/salieri11/ceph/build/src/pybind/rados CEPH_LIBDIR=/mnt/shared/il032930/github/salieri11/ceph/build/lib /usr/bin/python3.10 /mnt/shared/il032930/github/salieri11/ceph/src/pybind/rados/setup.py build --build-base /mnt/shared/il032930/github/salieri11/ceph/build/lib/cython_modules --build-platlib /mnt/shared/il032930/github/salieri11/ceph/build/lib/cython_modules/lib.3
/usr/bin/ld: /mnt/shared/il032930/github/salieri11/ceph/build/lib/librados.so: undefined reference to `set_thread_name(std::thread&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' |
2024-11-19T08:19:17.526Z | <Venky Shankar> cc @Milind Changire who added `set_thread_name` call recently in one of PRs. |
2024-11-19T08:20:27.583Z | <Igor Golikov> Thanks @Venky Shankar |
2024-11-19T08:24:28.410Z | <Igor Golikov> Just FYI: my `gcc` is 11.4.0 and `ld` 2.38 |
2024-11-19T08:25:42.215Z | <Milind Changire> @Igor Golikov have you had a successful ARM build before this one ever ? |
2024-11-19T08:25:48.526Z | <Igor Golikov> sure |
2024-11-19T08:27:34.734Z | <Igor Golikov> wait, now I think that I never built it with `run-make-check` . I always used `do_cmake` with many OFF flags. Not sure which targets were built... |
2024-11-19T08:28:26.202Z | <Milind Changire> hmm
also, I'm unable to find any reference to `set_thread_name` via `git grep set_thread_name` |
2024-11-19T08:28:37.191Z | <Igor Golikov> there is another error now, on another branch
`/usr/bin/ld: /home/igor/github/salieri11/ceph/build/lib/librados.so: undefined reference to `ceph_pthread_getname'
/usr/bin/ld: /home/igor/github/salieri11/ceph/build/lib/librados.so: undefined reference to `ceph_pthread_setname'
clang: error: linker command failed with exit code 1 (use -v to see invocation)` |
2024-11-19T08:28:59.895Z | <Igor Golikov> it seems to be related to the prev one but maybe this branch doesnt contain your change |
2024-11-19T08:29:29.763Z | <Milind Changire> more importantly it should contain Patrick's change over my change |
2024-11-19T08:30:08.046Z | <Igor Golikov> let me try to run do_cmake without any flag |
2024-11-19T08:30:31.598Z | <Igor Golikov> can you point me to Patrick's commit? |
2024-11-19T08:30:40.739Z | <Milind Changire> ```a2a989aaa5e Patrick Donnelly 2024-10-24 14:00:10 -0400 mds: add or update MDS thread names``` |
2024-11-19T08:34:54.298Z | <Igor Golikov> So the second error message contains Patrick's commit, and the first one doesn't |
2024-11-19T08:35:06.946Z | <Igor Golikov> i mean the code that produced them 🙂 |
2024-11-19T08:35:56Z | <Milind Changire> let me check |
2024-11-19T08:37:15.645Z | <Igor Golikov> sure thing |
2024-11-19T08:45:26.015Z | <Milind Changire> somehow the library `libceph-common.so` which has the definitions for `ceph_pthread_setname` and `ceph_pthread_getname` can't find found
check if the library libceph-common.so has been built |
2024-11-19T08:46:58.177Z | <Milind Changire> somehow the library `libceph-common.so` which has the definitions for `ceph_pthread_setname` and `ceph_pthread_getname` can't be found ... which is odd
check if the library libceph-common.so has been built |
2024-11-19T08:53:01.784Z | <Milind Changire> @Igor Golikov ^^
also, its odd that the CMakeLists.txt for librados works for x86_64 but not for ARM
I think this could be due to run time path resolution problems for shared obj linking |
2024-11-19T08:58:01.193Z | <Milind Changire> try adding the path `/home/igor/github/salieri11/ceph/build/lib` to the loader database
e.g. `sudo ldconfig /home/igor/github/salieri11/ceph/build/lib` |
2024-11-19T09:00:12.290Z | <Milind Changire> I'm not sure if the `PRIVATE` link scope mentioned in the CMakeLists.txt for librados has any significance here
you could try changing it to `PUBLIC` and see if things behave differently |
2024-11-19T12:32:00.374Z | <Igor Golikov> Indeed it was related to the wrong library being loaded. Since I have 2 workspaces on the same machine, one build tried to use libs from another workspace. Thanks for the hint! |
2024-11-19T12:32:46.316Z | <Milind Changire> I'm glad it helped |
2024-11-19T16:40:13.184Z | <Kasim Vali Shaik> Hi Team ,we have been using rook-ceph software to provision Block Storage, Object Storage, CephFIlesystem, NFS share. We are able to get metrics of all storage types except NFS in prometheus. How to enable metrics for NFS shares in K8s Clusters ? |
2024-11-19T22:39:56.230Z | <Laura Flores> Hey all, I'd like to introduce @Jordan Ye, @Abel Mathew, @Ashrita Kollipara, @Ethan Nuessle, @Demetrius Ho Sang, @Pierce Smith, @Jun Song, and @Camila Kulahlioglu. They are all students at Rensselaer Polytechnic Institute who are working with me on some projects for Ceph. Students, if you have any questions, don't hesitate to ask! :) |