exit() will call pthread_cond_destroy attempting to destroy dpdk::eal::cond
upon which other threads are currently blocked results in undefine
behavior. Link different libc version test, libc-2.17 can exit,
libc-2.27 will deadlock, the call stack is as follows:
Thread 3 (Thread 0xffff7e5749f0 (LWP 62213)):
#0 0x0000ffff7f3c422c in futex_wait_cancelable (private=<optimized out>, expected=0,
futex_word=0xaaaadc0e30f4 <dpdk::eal::cond+44>) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1 __pthread_cond_wait_common (abstime=0x0, mutex=0xaaaadc0e30f8 <dpdk::eal::lock>, cond=0xaaaadc0e30c8 <dpdk::eal::cond>)
at pthread_cond_wait.c:502
#2 __pthread_cond_wait (cond=0xaaaadc0e30c8 <dpdk::eal::cond>, mutex=0xaaaadc0e30f8 <dpdk::eal::lock>)
at pthread_cond_wait.c:655
#3 0x0000ffff7f1f1f80 in std::condition_variable::wait(std::unique_lock<std::mutex>&) ()
from /usr/lib/aarch64-linux-gnu/libstdc++.so.6
#4 0x0000aaaad37f5078 in dpdk::eal::<lambda()>::operator()(void) const (__closure=<optimized out>, __closure=<optimized out>)
at ./src/msg/async/dpdk/dpdk_rte.cc:136
#5 0x0000ffff7f1f7ed4 in ?? () from /usr/lib/aarch64-linux-gnu/libstdc++.so.6
#6 0x0000ffff7f3be088 in start_thread (arg=0xffffe73e197f) at pthread_create.c:463
#7 0x0000ffff7efc74ec in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:78
Thread 1 (Thread 0xffff7ee3b010 (LWP 62200)):
#0 0x0000ffff7f3c3c38 in futex_wait (private=<optimized out>, expected=12, futex_word=0xaaaadc0e30ec <dpdk::eal::cond+36>)
at ../sysdeps/unix/sysv/linux/futex-internal.h:61
#1 futex_wait_simple (private=<optimized out>, expected=12, futex_word=0xaaaadc0e30ec <dpdk::eal::cond+36>)
at ../sysdeps/nptl/futex-internal.h:135
#2 __pthread_cond_destroy (cond=0xaaaadc0e30c8 <dpdk::eal::cond>) at pthread_cond_destroy.c:54
#3 0x0000ffff7ef2be34 in __run_exit_handlers (status=-6, listp=0xffff7f04a5a0 <__exit_funcs>, run_list_atexit=255,
run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at exit.c:108
#4 0x0000ffff7ef2bf6c in __GI_exit (status=<optimized out>) at exit.c:139
#5 0x0000ffff7ef176e4 in __libc_start_main (main=0x0, argc=0, argv=0x0, init=<optimized out>, fini=<optimized out>,
rtld_fini=<optimized out>, stack_end=<optimized out>) at ../csu/libc-start.c:344
#6 0x0000aaaad2939db0 in _start () at ./src/include/buffer.h:642
Fixes: https://tracker.ceph.com/issues/42890
Signed-off-by: Chunsong Feng <fengchunsong@huawei.com>
Signed-off-by: luo rixin <luorixin@huawei.com>
mgr/dashboard: s/hosts.clickHostTab/hosts.clickTab/
Reviewed-by: Pere Diaz Bou <pdiazbou@redhat.com>
Reviewed-by: Alfonso Martínez <almartin@redhat.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
this change is a follow-up fix of
3276147049
otherwise we have following test failure:
[lint:tsc ] cypress/integration/orchestrator/01-hosts.e2e-spec.ts(29,13): error TS2339: Property 'clickHostTab' does not exist on type 'HostsPageHelper'.
also change "host" to "hostname" to be more consistent
Fixes: https://tracker.ceph.com/issues/52645
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
otherwise, crimson::errorator<AllowedErrors...>::parallel_for_each would be
referencing incomplete crimson::parallel_for_each_state type
Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
In particular, when rgw is itself doing compression,
rgw should send a incompressible hint to OSD.
Because the OSD has little effect on the data
compressed in the condition. So there bypassing the
osd compression is to avoid repeated compression
calculation.
Signed-off-by: Feng Hualong <hualong.feng@intel.com>
The zipper updates did not pass a force-check filter from
RGWRados::Bucket::List through to
RGWRados::cls_bucket_list_ordered. This filter is necessary for the
"radosgw-admin bucket check --fix..." functionality.
Declares type RGWBucketListNameFilter to encapsualte the filter
type. Renames some fields so the two filters can be distinguished.
Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
* refs/pull/43333/head:
.github/CODEOWNERS: tag rook devs on rook related PRs
Reviewed-by: Sébastien Han <seb@redhat.com>
Reviewed-by: Sebastian Wagner <sewagner@redhat.com>
67efc4 appears to be simply incorrect, I don't see any calls
to flush(), so we do need to open with dsync until we
implement a smarter flushing scheme.
Also, refactor open_device to remove mode param -- we always
pass the same value.
Reverts: 67efc48332
Signed-off-by: Samuel Just <sjust@redhat.com>
pybind/mgr/cephadm: set allow_standby_replay during CephFS upgrade
Reviewed-by: Sage Weil <sage@newdream.net>
Reviewed-by: Sebastian Wagner <sewagner@redhat.com>
When a new vector is added larger than then current vector capacity,
it reallocates space. lamda function accesses the previous adress will
cause a segment fault. Therefore, reserve sufficient funcs space to
avoid reallocation.
Fixes: https://tracker.ceph.com/issues/52907
Signed-off-by: Chunsong Feng <fengchunsong@huawei.com>
* consolidate the logic handling CEPH_PICK_ADDRESS_PREFER_IPV4 using
std::sort(). this might be overkill. but it helps to explain
what CEPH_PICK_ADDRESS_PREFER_IPV4 is for, and helps to dedup
the code to order the addresses.
* let fill_in_one_address() return an optional<entity_addrvec_t>.
more readable this way
* early return if the required address is not found, instead of
checking variables like ipv4_r
* rename fill_in_one_address() to get_one_address() to reflect
the change of the function's return value's type
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
... so that such links can be included in alert warnings.
Additionally, document some other health warnings. Credit to @pcuzner
to point out that not all health warnings have been documented.
Signed-off-by: Venky Shankar <vshankar@redhat.com>