From 962bf09a6ca6deffadc6d41fc6015461513fdc8f Mon Sep 17 00:00:00 2001 From: Duncan Bellamy Date: Wed, 25 Nov 2020 08:14:20 +0000 Subject: [PATCH] community/ceph: 32bit fixes * enable build for x86 and armv7 * patches by Vladimir Bashkirtsev remove systemd patch remove git patch that is reversed upstream fix checksums --- community/ceph/30-32bit_fix.patch.noauto | 178 ++++++++++++++++++ .../ceph/31-32bit_fix_tests.patch.noauto | 44 +++++ .../ceph/32-fix_ceph_thread_timeout.patch | 15 ++ community/ceph/34-fix_cpu_detection.patch | 76 ++++++++ community/ceph/35-fix_ErasureCodeShec.patch | 15 ++ community/ceph/36-fix_librbd_duplicate.patch | 12 ++ community/ceph/37-fix_tests.patch | 110 +++++++++++ .../ceph/{30-uint.patch => 40-uint.patch} | 0 community/ceph/APKBUILD | 33 +++- 9 files changed, 478 insertions(+), 5 deletions(-) create mode 100644 community/ceph/30-32bit_fix.patch.noauto create mode 100644 community/ceph/31-32bit_fix_tests.patch.noauto create mode 100644 community/ceph/32-fix_ceph_thread_timeout.patch create mode 100644 community/ceph/34-fix_cpu_detection.patch create mode 100644 community/ceph/35-fix_ErasureCodeShec.patch create mode 100644 community/ceph/36-fix_librbd_duplicate.patch create mode 100644 community/ceph/37-fix_tests.patch rename community/ceph/{30-uint.patch => 40-uint.patch} (100%) diff --git a/community/ceph/30-32bit_fix.patch.noauto b/community/ceph/30-32bit_fix.patch.noauto new file mode 100644 index 00000000000..cf505bd5701 --- /dev/null +++ b/community/ceph/30-32bit_fix.patch.noauto @@ -0,0 +1,178 @@ +diff -uNr ceph-15.2.4/src/client/Client.cc ceph-15.2.4-arm32_fix/src/client/Client.cc +--- ceph-15.2.4/src/client/Client.cc 2020-07-01 01:10:51.000000000 +0930 ++++ ceph-15.2.4-arm32_fix/src/client/Client.cc 2020-11-21 22:11:16.061796876 +1030 +@@ -10948,7 +10948,7 @@ + ldout(cct, 20) << __func__ << " " << in << " " << in->ino << " -> " << in->ll_ref << dendl; + } + +-int Client::_ll_put(Inode *in, uint64_t num) ++int Client::_ll_put(Inode *in, size_t num) + { + in->ll_put(num); + ldout(cct, 20) << __func__ << " " << in << " " << in->ino << " " << num << " -> " << in->ll_ref << dendl; +@@ -10989,7 +10989,7 @@ + } + } + +-bool Client::_ll_forget(Inode *in, uint64_t count) ++bool Client::_ll_forget(Inode *in, size_t count) + { + inodeno_t ino = in->ino; + +@@ -11018,7 +11018,7 @@ + return last; + } + +-bool Client::ll_forget(Inode *in, uint64_t count) ++bool Client::ll_forget(Inode *in, size_t count) + { + std::lock_guard lock(client_lock); + return _ll_forget(in, count); +diff -uNr ceph-15.2.4/src/client/Client.h ceph-15.2.4-arm32_fix/src/client/Client.h +--- ceph-15.2.4/src/client/Client.h 2020-07-01 01:10:51.000000000 +0930 ++++ ceph-15.2.4-arm32_fix/src/client/Client.h 2020-11-21 22:11:16.063796882 +1030 +@@ -482,7 +482,7 @@ + int ll_lookupx(Inode *parent, const char *name, Inode **out, + struct ceph_statx *stx, unsigned want, unsigned flags, + const UserPerm& perms); +- bool ll_forget(Inode *in, uint64_t count); ++ bool ll_forget(Inode *in, size_t count); + bool ll_put(Inode *in); + int ll_get_snap_ref(snapid_t snap); + +@@ -1028,7 +1028,7 @@ + void _fragmap_remove_stopped_mds(Inode *in, mds_rank_t mds); + + void _ll_get(Inode *in); +- int _ll_put(Inode *in, uint64_t num); ++ int _ll_put(Inode *in, size_t num); + void _ll_drop_pins(); + + Fh *_create_fh(Inode *in, int flags, int cmode, const UserPerm& perms); +@@ -1179,7 +1179,7 @@ + int _lookup_parent(Inode *in, const UserPerm& perms, Inode **parent=NULL); + int _lookup_name(Inode *in, Inode *parent, const UserPerm& perms); + int _lookup_ino(inodeno_t ino, const UserPerm& perms, Inode **inode=NULL); +- bool _ll_forget(Inode *in, uint64_t count); ++ bool _ll_forget(Inode *in, size_t count); + + + uint32_t deleg_timeout = 0; +diff -uNr ceph-15.2.4/src/common/options.h ceph-15.2.4-arm32_fix/src/common/options.h +--- ceph-15.2.4/src/common/options.h 2020-07-01 01:10:51.000000000 +0930 ++++ ceph-15.2.4-arm32_fix/src/common/options.h 2020-11-21 22:12:48.805115681 +1030 +@@ -35,7 +35,7 @@ + case TYPE_ADDR: return "entity_addr_t"; + case TYPE_ADDRVEC: return "entity_addrvec_t"; + case TYPE_UUID: return "uuid_d"; +- case TYPE_SIZE: return "size_t"; ++ case TYPE_SIZE: return "uint64_t"; + case TYPE_SECS: return "secs"; + default: return "unknown"; + } +@@ -121,7 +121,7 @@ + }; + + struct size_t { +- std::size_t value; ++ std::uint64_t value; + operator uint64_t() const { + return static_cast(value); + } +@@ -262,7 +262,7 @@ + case TYPE_BOOL: + v = bool(new_value); break; + case TYPE_SIZE: +- v = size_t{static_cast(new_value)}; break; ++ v = size_t{static_cast(new_value)}; break; + case TYPE_SECS: + v = std::chrono::seconds{new_value}; break; + default: +diff -uNr ceph-15.2.4/src/mds/PurgeQueue.h ceph-15.2.4-arm32_fix/src/mds/PurgeQueue.h +--- ceph-15.2.4/src/mds/PurgeQueue.h 2020-07-01 01:10:51.000000000 +0930 ++++ ceph-15.2.4-arm32_fix/src/mds/PurgeQueue.h 2020-11-21 22:11:16.065796889 +1030 +@@ -219,6 +219,6 @@ + size_t purge_item_journal_size; + + uint64_t ops_high_water = 0; +- uint64_t files_high_water = 0; ++ size_t files_high_water = 0; + }; + #endif +diff -uNr ceph-15.2.4/src/pybind/mgr/dashboard/frontend/package.json ceph-15.2.4-arm32_fix/src/pybind/mgr/dashboard/frontend/package.json +--- ceph-15.2.4/src/pybind/mgr/dashboard/frontend/package.json 2020-07-01 01:10:51.000000000 +0930 ++++ ceph-15.2.4-arm32_fix/src/pybind/mgr/dashboard/frontend/package.json 2020-11-21 22:11:16.065796889 +1030 +@@ -122,7 +122,6 @@ + "@types/node": "12.12.34", + "@types/simplebar": "5.1.1", + "codelyzer": "5.2.2", +- "cypress": "4.4.0", + "html-linter": "1.1.1", + "htmllint-cli": "0.0.7", + "jest": "25.2.4", +diff -uNr ceph-15.2.4/src/test/common/test_json_formattable.cc ceph-15.2.4-arm32_fix/src/test/common/test_json_formattable.cc +--- ceph-15.2.4/src/test/common/test_json_formattable.cc 2020-07-01 01:10:51.000000000 +0930 ++++ ceph-15.2.4-arm32_fix/src/test/common/test_json_formattable.cc 2020-11-21 22:11:16.065796889 +1030 +@@ -371,7 +371,7 @@ + + struct2() { + void *p = (void *)this; +- long i = (long)p; ++ unsigned long i = (unsigned long)p; + v.resize((i >> 16) % 16 + 1); + } + +diff -uNr ceph-15.2.4/src/test/libcephfs/ceph_pthread_self.h ceph-15.2.4-arm32_fix/src/test/libcephfs/ceph_pthread_self.h +--- ceph-15.2.4/src/test/libcephfs/ceph_pthread_self.h 2020-07-01 01:10:51.000000000 +0930 ++++ ceph-15.2.4-arm32_fix/src/test/libcephfs/ceph_pthread_self.h 2020-11-21 22:11:16.066796893 +1030 +@@ -25,7 +25,7 @@ + static_assert(std::is_convertible_v || + std::is_pointer_v, + "we need to use pthread_self() for the owner parameter"); +- return reinterpret_cast(me); ++ return reinterpret_cast((uint64_t) me); + } + + #endif +diff -uNr ceph-15.2.4/src/test/rbd_mirror/image_deleter/test_mock_TrashWatcher.cc ceph-15.2.4-arm32_fix/src/test/rbd_mirror/image_deleter/test_mock_TrashWatcher.cc +--- ceph-15.2.4/src/test/rbd_mirror/image_deleter/test_mock_TrashWatcher.cc 2020-07-01 01:10:51.000000000 +0930 ++++ ceph-15.2.4-arm32_fix/src/test/rbd_mirror/image_deleter/test_mock_TrashWatcher.cc 2020-11-21 22:11:16.066796893 +1030 +@@ -162,7 +162,7 @@ + int r) { + bufferlist bl; + encode(last_image_id, bl); +- encode(static_cast(1024), bl); ++ encode(static_cast(1024), bl); + + bufferlist out_bl; + encode(images, out_bl); +diff -uNr ceph-15.2.4/src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc ceph-15.2.4-arm32_fix/src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc +--- ceph-15.2.4/src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc 2020-07-01 01:10:51.000000000 +0930 ++++ ceph-15.2.4-arm32_fix/src/tools/rbd_mirror/image_replayer/snapshot/Replayer.cc 2020-11-21 22:11:16.066796893 +1030 +@@ -234,7 +234,7 @@ + + json_spirit::mObject root_obj; + root_obj["replay_state"] = replay_state; +- root_obj["remote_snapshot_timestamp"] = remote_snap_info->timestamp.sec(); ++ root_obj["remote_snapshot_timestamp"] = (uint64_t) remote_snap_info->timestamp.sec(); + + auto matching_remote_snap_id = util::compute_remote_snap_id( + m_state_builder->local_image_ctx->image_lock, +@@ -249,7 +249,7 @@ + // the local snapshot would just be the time the snapshot was + // synced and not the consistency point in time. + root_obj["local_snapshot_timestamp"] = +- matching_remote_snap_it->second.timestamp.sec(); ++ (uint64_t) matching_remote_snap_it->second.timestamp.sec(); + } + + matching_remote_snap_it = m_state_builder->remote_image_ctx->snap_info.find( +@@ -257,7 +257,7 @@ + if (m_remote_snap_id_end != CEPH_NOSNAP && + matching_remote_snap_it != + m_state_builder->remote_image_ctx->snap_info.end()) { +- root_obj["syncing_snapshot_timestamp"] = remote_snap_info->timestamp.sec(); ++ root_obj["syncing_snapshot_timestamp"] = (uint64_t) remote_snap_info->timestamp.sec(); + root_obj["syncing_percent"] = static_cast( + 100 * m_local_mirror_snap_ns.last_copied_object_number / + static_cast(std::max(1U, m_local_object_count))); diff --git a/community/ceph/31-32bit_fix_tests.patch.noauto b/community/ceph/31-32bit_fix_tests.patch.noauto new file mode 100644 index 00000000000..9bab7ed1e76 --- /dev/null +++ b/community/ceph/31-32bit_fix_tests.patch.noauto @@ -0,0 +1,44 @@ +diff -uNr ceph-15.2.4/src/test/objectstore/test_bdev.cc ceph-15.2.4-arm32_fix_tests/src/test/objectstore/test_bdev.cc +--- ceph-15.2.4/src/test/objectstore/test_bdev.cc 2020-07-01 01:10:51.000000000 +0930 ++++ ceph-15.2.4-arm32_fix_tests/src/test/objectstore/test_bdev.cc 2020-11-17 15:40:57.203039097 +1030 +@@ -54,8 +54,8 @@ + BlockDevice::create(g_ceph_context, bdev.path, NULL, NULL, + [](void* handle, void* aio) {}, NULL)); + bufferlist bl; +- // writing a bit less than 4GB +- for (auto i = 0; i < 4000; i++) { ++ // writing a bit less than 1GB ++ for (auto i = 0; i < 1000; i++) { + string s(1048576, 'a' + (i % 28)); + bl.append(s); + } +diff -uNr ceph-15.2.4/src/test/objectstore/test_bluefs.cc ceph-15.2.4-arm32_fix_tests/src/test/objectstore/test_bluefs.cc +--- ceph-15.2.4/src/test/objectstore/test_bluefs.cc 2020-07-01 01:10:51.000000000 +0930 ++++ ceph-15.2.4-arm32_fix_tests/src/test/objectstore/test_bluefs.cc 2020-11-17 15:41:32.066147015 +1030 +@@ -206,7 +206,7 @@ + } + + TEST(BlueFS, very_large_write) { +- // we'll write a ~3G file, so allocate more than that for the whole fs ++ // we'll write a ~1G file, so allocate more than that for the whole fs + uint64_t size = 1048576 * 1024 * 8ull; + TempBdev bdev{size}; + BlueFS fs(g_ceph_context); +@@ -228,7 +228,7 @@ + BlueFS::FileWriter *h; + ASSERT_EQ(0, fs.mkdir("dir")); + ASSERT_EQ(0, fs.open_for_write("dir", "bigfile", &h, false)); +- for (unsigned i = 0; i < 3*1024*1048576ull / sizeof(buf); ++i) { ++ for (unsigned i = 0; i < 1*1024*1048576ull / sizeof(buf); ++i) { + h->append(buf, sizeof(buf)); + } + fs.fsync(h); +@@ -239,7 +239,7 @@ + ASSERT_EQ(0, fs.open_for_read("dir", "bigfile", &h)); + bufferlist bl; + BlueFS::FileReaderBuffer readbuf(10485760); +- for (unsigned i = 0; i < 3*1024*1048576ull / sizeof(buf); ++i) { ++ for (unsigned i = 0; i < 1*1024*1048576ull / sizeof(buf); ++i) { + bl.clear(); + fs.read(h, &readbuf, i * sizeof(buf), sizeof(buf), &bl, NULL); + int r = memcmp(buf, bl.c_str(), sizeof(buf)); diff --git a/community/ceph/32-fix_ceph_thread_timeout.patch b/community/ceph/32-fix_ceph_thread_timeout.patch new file mode 100644 index 00000000000..7bc96c9e707 --- /dev/null +++ b/community/ceph/32-fix_ceph_thread_timeout.patch @@ -0,0 +1,15 @@ +diff -uNr ceph-15.2.4/src/pybind/ceph_argparse.py ceph-15.2.4-fix_ceph_thread_timeout/src/pybind/ceph_argparse.py +--- ceph-15.2.4/src/pybind/ceph_argparse.py 2020-07-01 01:10:51.000000000 +0930 ++++ ceph-15.2.4-fix_ceph_thread_timeout/src/pybind/ceph_argparse.py 2020-11-18 18:57:39.711443174 +1030 +@@ -1317,9 +1317,8 @@ + if timeout == 0 or timeout == None: + # python threading module will just get blocked if timeout is `None`, + # otherwise it will keep polling until timeout or thread stops. +- # wait for INT32_MAX, as python 3.6.8 use int32_t to present the +- # timeout in integer when converting it to nanoseconds +- timeout = (1 << (32 - 1)) - 1 ++ # wait for 5 seconds, as python 3.6.8 use float to present the timeout ++ timeout = 5.0 + t = RadosThread(func, *args, **kwargs) + + # allow the main thread to exit (presumably, avoid a join() on this diff --git a/community/ceph/34-fix_cpu_detection.patch b/community/ceph/34-fix_cpu_detection.patch new file mode 100644 index 00000000000..0e42b23a063 --- /dev/null +++ b/community/ceph/34-fix_cpu_detection.patch @@ -0,0 +1,76 @@ +diff -uNr ceph-15.2.4/cmake/modules/SIMDExt.cmake ceph-15.2.4-fix_cpu_detection/cmake/modules/SIMDExt.cmake +--- ceph-15.2.4/cmake/modules/SIMDExt.cmake 2020-07-01 01:10:51.000000000 +0930 ++++ ceph-15.2.4-fix_cpu_detection/cmake/modules/SIMDExt.cmake 2020-07-07 11:30:28.234565030 +0930 +@@ -48,32 +48,53 @@ + elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i386|i686|amd64|x86_64|AMD64") + set(HAVE_INTEL 1) + if(CMAKE_SYSTEM_PROCESSOR MATCHES "i686|amd64|x86_64|AMD64") +- CHECK_C_COMPILER_FLAG(-msse HAVE_INTEL_SSE) ++ execute_process(COMMAND bash -c "gcc -Q --help=target | grep '\\-msse\\s' | grep -c enabled" OUTPUT_VARIABLE RUN_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE) ++ if (${RUN_RESULT}) ++ set(HAVE_INTEL_SSE 1) ++ endif() + if(HAVE_INTEL_SSE) + set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse") + endif() + if(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64|x86_64|AMD64") +- CHECK_C_COMPILER_FLAG(-msse2 HAVE_INTEL_SSE2) ++ execute_process(COMMAND bash -c "gcc -Q --help=target | grep '\\-msse2\\s' | grep -c enabled" OUTPUT_VARIABLE RUN_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE) ++ if (${RUN_RESULT}) ++ set(HAVE_INTEL_SSE2 1) ++ endif() + if(HAVE_INTEL_SSE2) + set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse2") + endif() +- CHECK_C_COMPILER_FLAG(-msse3 HAVE_INTEL_SSE3) ++ execute_process(COMMAND bash -c "gcc -Q --help=target | grep '\\-msse3\\s' | grep -c enabled" OUTPUT_VARIABLE RUN_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE) ++ if (${RUN_RESULT}) ++ set(HAVE_INTEL_SSE3 1) ++ endif() + if(HAVE_INTEL_SSE3) + set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse3") + endif() +- CHECK_C_COMPILER_FLAG(-mssse3 HAVE_INTEL_SSSE3) ++ execute_process(COMMAND bash -c "gcc -Q --help=target | grep '\\-mssse3\\s' | grep -c enabled" OUTPUT_VARIABLE RUN_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE) ++ if (${RUN_RESULT}) ++ set(HAVE_INTEL_SSSE3 1) ++ endif() + if(HAVE_INTEL_SSSE3) + set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -mssse3") + endif() +- CHECK_C_COMPILER_FLAG(-mpclmul HAVE_INTEL_PCLMUL) ++ execute_process(COMMAND bash -c "gcc -Q --help=target | grep '\\-mpclmul\\s' | grep -c enabled" OUTPUT_VARIABLE RUN_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE) ++ if (${RUN_RESULT}) ++ set(HAVE_INTEL_PCLMUL 1) ++ endif() + if(HAVE_INTEL_PCLMUL) + set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -mpclmul") + endif() +- CHECK_C_COMPILER_FLAG(-msse4.1 HAVE_INTEL_SSE4_1) ++ execute_process(COMMAND bash -c "gcc -Q --help=target | grep '\\-msse4\\.1\\s' | grep -c enabled" OUTPUT_VARIABLE RUN_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE) ++ if (${RUN_RESULT}) ++ set(HAVE_INTEL_SSE4_1 1) ++ endif() + if(HAVE_INTEL_SSE4_1) + set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse4.1") + endif() +- CHECK_C_COMPILER_FLAG(-msse4.2 HAVE_INTEL_SSE4_2) ++ execute_process(COMMAND bash -c "gcc -Q --help=target | grep '\\-msse4\\.2\\s' | grep -c enabled" OUTPUT_VARIABLE RUN_RESULT OUTPUT_STRIP_TRAILING_WHITESPACE) ++ if (${RUN_RESULT}) ++ set(HAVE_INTEL_SSE4_2 1) ++ endif() + if(HAVE_INTEL_SSE4_2) + set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse4.2") + endif() +diff -uNr ceph-15.2.4/src/test/test_arch.cc ceph-15.2.4-fix_cpu_detection/src/test/test_arch.cc +--- ceph-15.2.4/src/test/test_arch.cc 2020-07-01 01:10:51.000000000 +0930 ++++ ceph-15.2.4-fix_cpu_detection/src/test/test_arch.cc 2020-07-07 11:30:28.239565039 +0930 +@@ -69,7 +69,7 @@ + expected = strstr(flags, " sse4_1 ") ? 1 : 0; + EXPECT_EQ(expected, ceph_arch_intel_sse41); + +- expected = (strstr(flags, " sse3 ") || strstr(flags, " ssse3 ")) ? 1 : 0; ++ expected = (strstr(flags, " sse3 ") || strstr(flags, " ssse3 ") || strstr(flags, " pni ")) ? 1 : 0; + EXPECT_EQ(expected, ceph_arch_intel_sse3); + + expected = strstr(flags, " ssse3 ") ? 1 : 0; diff --git a/community/ceph/35-fix_ErasureCodeShec.patch b/community/ceph/35-fix_ErasureCodeShec.patch new file mode 100644 index 00000000000..cf991321123 --- /dev/null +++ b/community/ceph/35-fix_ErasureCodeShec.patch @@ -0,0 +1,15 @@ +diff -uNr ceph-15.2.4/src/erasure-code/shec/ErasureCodeShec.cc ceph-15.2.4-fix_ErasureCodeShec/src/erasure-code/shec/ErasureCodeShec.cc +--- ceph-15.2.4/src/erasure-code/shec/ErasureCodeShec.cc 2020-07-01 01:10:51.000000000 +0930 ++++ ceph-15.2.4-fix_ErasureCodeShec/src/erasure-code/shec/ErasureCodeShec.cc 2020-11-14 00:46:20.029488684 +1030 +@@ -197,7 +197,10 @@ + } + unsigned int k = get_data_chunk_count(); + unsigned int m = get_chunk_count() - k; +- unsigned blocksize = (*chunks.begin()).second.length(); ++ unsigned blocksize = 0; ++ if (chunks.size() > 0) { ++ blocksize = (*chunks.begin()).second.length(); ++ } + for (unsigned int i = 0; i < k + m; i++) { + if (chunks.find(i) == chunks.end()) { + bufferlist tmp; diff --git a/community/ceph/36-fix_librbd_duplicate.patch b/community/ceph/36-fix_librbd_duplicate.patch new file mode 100644 index 00000000000..a819a23901c --- /dev/null +++ b/community/ceph/36-fix_librbd_duplicate.patch @@ -0,0 +1,12 @@ +diff -uNr ceph-15.2.4/src/librbd/image/OpenRequest.cc ceph-15.2.4-fix_librbd_duplicate/src/librbd/image/OpenRequest.cc +--- ceph-15.2.4/src/librbd/image/OpenRequest.cc 2020-06-30 15:40:51.000000000 +0000 ++++ ceph-15.2.4-fix_librbd_duplicate/src/librbd/image/OpenRequest.cc 2020-09-30 07:58:38.979496776 +0000 +@@ -9,7 +9,7 @@ + #include "librbd/Utils.h" + #include "librbd/cache/ObjectCacherObjectDispatch.h" + #include "librbd/cache/WriteAroundObjectDispatch.h" +-#include "librbd/cache/ParentCacheObjectDispatch.cc" ++#include "librbd/cache/ParentCacheObjectDispatch.h" + #include "librbd/image/CloseRequest.h" + #include "librbd/image/RefreshRequest.h" + #include "librbd/image/SetSnapRequest.h" diff --git a/community/ceph/37-fix_tests.patch b/community/ceph/37-fix_tests.patch new file mode 100644 index 00000000000..042578553be --- /dev/null +++ b/community/ceph/37-fix_tests.patch @@ -0,0 +1,110 @@ +diff -uNr ceph-15.2.4/src/test/cli/ceph-conf/env-vs-args.t ceph-15.2.4-fix_tests/src/test/cli/ceph-conf/env-vs-args.t +--- ceph-15.2.4/src/test/cli/ceph-conf/env-vs-args.t 2020-07-01 01:10:51.000000000 +0930 ++++ ceph-15.2.4-fix_tests/src/test/cli/ceph-conf/env-vs-args.t 2020-11-08 17:37:15.783767433 +1030 +@@ -2,9 +2,9 @@ + $ env CEPH_CONF=from-env ceph-conf -s foo bar + did not load config file, using default settings. + .* \-1 Errors while parsing config file! (re) +- .* \-1 parse_file: filesystem error: .* file.size: (No such file or directory )?\[from-env\] (re) ++ .* \-1 parse_file: filesystem error: .* file.size:? (No such file or directory )?\[from-env\] (re) + .* \-1 Errors while parsing config file! (re) +- .* \-1 parse_file: filesystem error: .* file.size: (No such file or directory )?\[from-env\] (re) ++ .* \-1 parse_file: filesystem error: .* file.size:? (No such file or directory )?\[from-env\] (re) + [1] + + # command-line arguments should override environment +diff -uNr ceph-15.2.4/src/test/CMakeLists.txt ceph-15.2.4-fix_tests/src/test/CMakeLists.txt +--- ceph-15.2.4/src/test/CMakeLists.txt 2020-07-01 01:10:51.000000000 +0930 ++++ ceph-15.2.4-fix_tests/src/test/CMakeLists.txt 2020-11-08 17:37:15.788767448 +1030 +@@ -528,11 +528,17 @@ + # Run rbd-unit-tests separate so they an run in parallel + # For values see: src/include/rbd/features.h + add_ceph_test(run-rbd-unit-tests-N.sh ${CMAKE_CURRENT_SOURCE_DIR}/run-rbd-unit-tests.sh N) ++ set_tests_properties(run-rbd-unit-tests-N.sh PROPERTIES TIMEOUT 7200) + add_ceph_test(run-rbd-unit-tests-0.sh ${CMAKE_CURRENT_SOURCE_DIR}/run-rbd-unit-tests.sh 0) ++ set_tests_properties(run-rbd-unit-tests-0.sh PROPERTIES TIMEOUT 7200) + add_ceph_test(run-rbd-unit-tests-1.sh ${CMAKE_CURRENT_SOURCE_DIR}/run-rbd-unit-tests.sh 1) ++ set_tests_properties(run-rbd-unit-tests-1.sh PROPERTIES TIMEOUT 7200) + add_ceph_test(run-rbd-unit-tests-61.sh ${CMAKE_CURRENT_SOURCE_DIR}/run-rbd-unit-tests.sh 61) ++ set_tests_properties(run-rbd-unit-tests-61.sh PROPERTIES TIMEOUT 7200) + add_ceph_test(run-rbd-unit-tests-109.sh ${CMAKE_CURRENT_SOURCE_DIR}/run-rbd-unit-tests.sh 109) ++ set_tests_properties(run-rbd-unit-tests-109.sh PROPERTIES TIMEOUT 7200) + add_ceph_test(run-rbd-unit-tests-127.sh ${CMAKE_CURRENT_SOURCE_DIR}/run-rbd-unit-tests.sh 127) ++ set_tests_properties(run-rbd-unit-tests-127.sh PROPERTIES TIMEOUT 7200) + if(FREEBSD) + add_ceph_test(rbd-ggate.sh ${CMAKE_CURRENT_SOURCE_DIR}/rbd-ggate.sh) + endif(FREEBSD) +@@ -546,6 +552,7 @@ + #add_ceph_test(test_pidfile.sh ${CMAKE_CURRENT_SOURCE_DIR}/test_pidfile.sh) + + add_ceph_test(smoke.sh ${CMAKE_CURRENT_SOURCE_DIR}/smoke.sh) ++set_tests_properties(smoke.sh PROPERTIES TIMEOUT 14400) + + set_property( + TEST ${tox_tests} +diff -uNr ceph-15.2.4/src/test/encoding/CMakeLists.txt ceph-15.2.4-fix_tests/src/test/encoding/CMakeLists.txt +--- ceph-15.2.4/src/test/encoding/CMakeLists.txt 2020-07-01 01:10:51.000000000 +0930 ++++ ceph-15.2.4-fix_tests/src/test/encoding/CMakeLists.txt 2020-11-08 17:37:15.789767451 +1030 +@@ -1,3 +1,5 @@ + # scripts + add_ceph_test(check-generated.sh ${CMAKE_CURRENT_SOURCE_DIR}/check-generated.sh) ++set_tests_properties(check-generated.sh PROPERTIES TIMEOUT 18000) + add_ceph_test(readable.sh ${CMAKE_CURRENT_SOURCE_DIR}/readable.sh) ++set_tests_properties(readable.sh PROPERTIES TIMEOUT 18000) +diff -uNr ceph-15.2.4/src/test/mgr/CMakeLists.txt ceph-15.2.4-fix_tests/src/test/mgr/CMakeLists.txt +--- ceph-15.2.4/src/test/mgr/CMakeLists.txt 2020-07-01 01:10:51.000000000 +0930 ++++ ceph-15.2.4-fix_tests/src/test/mgr/CMakeLists.txt 2020-11-08 17:37:15.790767454 +1030 +@@ -9,6 +9,7 @@ + if(WITH_MGR_DASHBOARD_FRONTEND) + if(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|AARCH64|arm|ARM") + add_ceph_test(mgr-dashboard-frontend-unittests ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/run-frontend-unittests.sh) ++ set_tests_properties(mgr-dashboard-frontend-unittests PROPERTIES TIMEOUT 72000) + endif(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|AARCH64|arm|ARM") + + add_ceph_test(mgr-dashboard-smoke.sh ${CMAKE_CURRENT_SOURCE_DIR}/mgr-dashboard-smoke.sh) +diff -uNr ceph-15.2.4/src/test/objectstore/CMakeLists.txt ceph-15.2.4-fix_tests/src/test/objectstore/CMakeLists.txt +--- ceph-15.2.4/src/test/objectstore/CMakeLists.txt 2020-07-01 01:10:51.000000000 +0930 ++++ ceph-15.2.4-fix_tests/src/test/objectstore/CMakeLists.txt 2020-11-08 17:37:15.791767457 +1030 +@@ -131,6 +131,7 @@ + test_bluefs.cc + ) + add_ceph_unittest(unittest_bluefs) ++ set_tests_properties(unittest_bluefs PROPERTIES TIMEOUT 7200) + target_link_libraries(unittest_bluefs os global) + + # unittest_bluestore_types +diff -uNr ceph-15.2.4/src/test/osd/CMakeLists.txt ceph-15.2.4-fix_tests/src/test/osd/CMakeLists.txt +--- ceph-15.2.4/src/test/osd/CMakeLists.txt 2020-07-01 01:10:51.000000000 +0930 ++++ ceph-15.2.4-fix_tests/src/test/osd/CMakeLists.txt 2020-11-08 17:41:54.515606236 +1030 +@@ -35,6 +35,7 @@ + + # scripts + add_ceph_test(safe-to-destroy.sh ${CMAKE_CURRENT_SOURCE_DIR}/safe-to-destroy.sh) ++set_tests_properties(safe-to-destroy.sh PROPERTIES TIMEOUT 7200) + + # unittest_osdmap + add_executable(unittest_osdmap +diff -uNr ceph-15.2.4/src/test/osd/TestOSDScrub.cc ceph-15.2.4-fix_tests/src/test/osd/TestOSDScrub.cc +--- ceph-15.2.4/src/test/osd/TestOSDScrub.cc 2020-07-01 01:10:51.000000000 +0930 ++++ ceph-15.2.4-fix_tests/src/test/osd/TestOSDScrub.cc 2020-11-08 17:37:15.793767463 +1030 +@@ -70,7 +70,7 @@ + g_ceph_context->_conf.set_val("osd_scrub_begin_hour", "0"); + g_ceph_context->_conf.set_val("osd_scrub_end_hour", "24"); + g_ceph_context->_conf.apply_changes(nullptr); +- tm tm; ++ tm tm = {0}; + tm.tm_isdst = -1; + strptime("2015-01-16 12:05:13", "%Y-%m-%d %H:%M:%S", &tm); + utime_t now = utime_t(mktime(&tm), 0); +diff -uNr ceph-15.2.4/src/test/smoke.sh ceph-15.2.4-fix_tests/src/test/smoke.sh +--- ceph-15.2.4/src/test/smoke.sh 2020-07-01 01:10:51.000000000 +0930 ++++ ceph-15.2.4-fix_tests/src/test/smoke.sh 2020-11-08 17:37:15.794767466 +1030 +@@ -53,7 +53,7 @@ + ceph osd out 0 + wait_for_clean + +- timeout 8 rados -p foo bench 4 write -b 4096 --no-cleanup || return 1 ++ timeout 80 rados -p foo bench 4 write -b 4096 --no-cleanup || return 1 + wait_for_clean + + ceph osd in 0 diff --git a/community/ceph/30-uint.patch b/community/ceph/40-uint.patch similarity index 100% rename from community/ceph/30-uint.patch rename to community/ceph/40-uint.patch diff --git a/community/ceph/APKBUILD b/community/ceph/APKBUILD index 46e2b01d31d..b8b77507ca7 100644 --- a/community/ceph/APKBUILD +++ b/community/ceph/APKBUILD @@ -3,14 +3,13 @@ # Contributor: Duncan Bellamy pkgname=ceph pkgver=15.2.6 -pkgrel=0 +pkgrel=1 pkgdesc="Ceph is a distributed object store and file system" pkgusers="ceph" pkggroups="ceph" url="https://ceph.com/" -# cypress not availible for x86, armv7, and mips # s390x has DWARF linker errors -arch="x86_64 aarch64 ppc64le" +arch="all !s390x !mips !mips64" # https://github.com/ceph/ceph/blob/master/COPYING license="LGPL-2.1-only AND LGPL-2.0-or-later AND GPL-2.0-only AND GPL-3.0-only AND CC-BY-SA-1.0 AND BSL-1.0 AND GPL-2.0-or-later WITH Autoconf-exception-2.0 AND BSD-3-Clause AND MIT AND custom" depends="ceph-osd ceph-mds ceph-mon" @@ -93,7 +92,14 @@ makedepends=" source="https://download.ceph.com/tarballs/ceph_$pkgver.orig.tar.gz 10-musl-fixes.patch 20-pci.patch - 30-uint.patch + 30-32bit_fix.patch.noauto + 31-32bit_fix_tests.patch.noauto + 32-fix_ceph_thread_timeout.patch + 34-fix_cpu_detection.patch + 35-fix_ErasureCodeShec.patch + 36-fix_librbd_duplicate.patch + 37-fix_tests.patch + 40-uint.patch " subpackages=" @@ -162,6 +168,16 @@ _py3_sitelib() { python3 -c "import site; print(site.getsitepackages()[0])" } +prepare() { + default_prepare + + case "$CARCH" in + x86|armv7) + patch -p1 -i $srcdir/30-32bit_fix.patch.noauto + patch -p1 -i $srcdir/31-32bit_fix_tests.patch.noauto ;; + esac +} + build() { export CEPH_BUILD_VIRTUALENV="$builddir" @@ -537,4 +553,11 @@ _pkg() { sha512sums="0bbbbc532fb9f29437c094a86a1e58040f03b679e4d52ea9cc752ecf411c594c8ec37dc5e9f0ee47712d32b93b4e60b0f3fded280867d41c41b8db806b375e4e ceph_15.2.6.orig.tar.gz c608f11cf358d76daf5281467a4ea941a81474fbe7f5faa41f7f4d0abaf9136a01576bbb1ab24bdd7bc91a49f66bd7f0a84717de5ec27250d74dd1e47e3b5dd3 10-musl-fixes.patch 427ab410aeb02d49c5caa8ff68c7b8df325229823d625b7069cd48c66dd9e129e742270850fb2be2238eb6fa12b8256845b4d94426ca96b2a9187b2726e78423 20-pci.patch -c6a68c60232e1c47b968da4d0891abe50912be0d634d2076d729a0d849b48dcc5a2bd1b1e82ae2c69e0f48dd1369961de72ca0a9b9464aacd70c5d4bfd76eb07 30-uint.patch" +90042a4a3ef7374080974a2ebcbf88b75ef97c1a1770552205818c333cca802e98077d9244a14177d084e31da1b49c8fcca9c604a743286aa1bb8e7e4f208a4b 30-32bit_fix.patch.noauto +b2c463fd0d0a2a3925e66578df17648bd2b0ec1a6c7cf70a494d0f44dab34d95b57df77740bbb1752bdd783e881b7f3d3e108de3179d7a609ff6b0d5c9f07012 31-32bit_fix_tests.patch.noauto +a687821a0f41d55e55f85681f4b8791ab84033a72a64d55b3188391a06d821a0cb42bdde059f4cb33d06292d9c42b213c63215bcfa07744135faa1bb5ac33a01 32-fix_ceph_thread_timeout.patch +62ef2e7e10978e9e0eef4a094bc63d9890f0d7e71eba0f0e15baede0597ea179a77924f6dbd4d4a9c9b151c9ae934f4c10d7f2a17ee960b017f942ec57c7af35 34-fix_cpu_detection.patch +8a3e902309238ae6917b4c5fe9fa371dad3ba8e01848f462a9b67ad8d69b8370a8957f6c88462a7016319fd323eb6d6c31415734db56485a8a8b279d2705aff5 35-fix_ErasureCodeShec.patch +ec8aec40fa04fd475834801232d644ff3baf0777b59dcede36a6caa0d63b2c379292253babc3678baee6a54935575cf9e4a622f4d16078ef8d3ac3c3d6502ad1 36-fix_librbd_duplicate.patch +60ea21b17640edf5bd644c23fa27abcf166a709795ad29bb917a38e59f069dceb4666479819626421340f7c70dd76545a4f1fbee8b2db781cadb9c061cdb7728 37-fix_tests.patch +c6a68c60232e1c47b968da4d0891abe50912be0d634d2076d729a0d849b48dcc5a2bd1b1e82ae2c69e0f48dd1369961de72ca0a9b9464aacd70c5d4bfd76eb07 40-uint.patch"