Skip to content

Instantly share code, notes, and snippets.

View cbodley's full-sized avatar

Casey Bodley cbodley

  • Red Hat
  • Ann Arbor, MI
View GitHub Profile
@cbodley
cbodley / gist:a5d7b8f74f353bae6156c32076a8f281
Created March 5, 2023 19:28
asan warning __asan_handle_no_return
setting up user testid
==450337==WARNING: ASan is ignoring requested __asan_handle_no_return: stack type: default top: 0x7fffcfad0000; bottom 0x7f75f30e9000; size: 0x0089dc9e7000 (592111890432)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
=================================================================
==450337==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7f75f30ea530 at pc 0x7f7640661b61 bp 0x7f75f30ea500 sp 0x7f75f30e9cb0
WRITE of size 24 at 0x7f75f30ea530 thread T0
#0 0x7f7640661b60 in __interceptor_sigaltstack.part.0 (/lib64/libasan.so.8+0x61b60)
#1 0x7f76406bf163 in __asan::PlatformUnpoisonStacks() (/lib64/libasan.so.8+0xbf163)
#2 0x7f76406c561c in __asan_handle_no_return (/lib64/libasan.so.8+0xc561c)
1. identify bucket instance id for bucket named "testbucket"
~/ceph/build $ bin/radosgw-admin metadata get bucket:testbucket | grep bucket_id
"bucket_id": "4b022f22-54ca-49e5-b547-9e8225d98de1.4159.1",
2. read bucket instance metadata into testbucket.orig.json
~/ceph/build $ bin/radosgw-admin metadata get bucket.instance:testbucket:4b022f22-54ca-49e5-b547-9e8225d98de1.4159.1 > testbucket.orig.json
3. replace "num_shards": 0 with 1
diff --git a/src/neorados/cls/common.h b/src/neorados/cls/common.h
index 6b39ea4b295..b1dd4b320ab 100644
--- a/src/neorados/cls/common.h
+++ b/src/neorados/cls/common.h
@@ -95,11 +95,15 @@ auto exec(
method = std::move(method), in = std::move(in),
f = std::move(f)](auto& self) {
auto e = self.get_executor();
+ using executor_type = decltype(e);
+ using awaitable_void = asio::awaitable<void, executor_type>;
<error>
<unique>0x34cc</unique>
<tid>342</tid>
<kind>UninitCondition</kind>
<what>Conditional jump or move depends on uninitialised value(s)</what>
<stack>
<frame>
<ip>0x141B715</ip>
<obj>/home/cbodley/ceph/build/bin/radosgw</obj>
<fn>CSVParser::next_line()</fn>
<error>
<unique>0x36a4</unique>
<tid>1</tid>
<kind>Leak_DefinitelyLost</kind>
<xwhat>
<text>2,511 bytes in 81 blocks are definitely lost in loss record 33 of 35</text>
<leakedbytes>2511</leakedbytes>
<leakedblocks>81</leakedblocks>
</xwhat>
<stack>
@cbodley
cbodley / rgw_sync_meta.hpp
Created September 7, 2022 19:42
overview of c++20 coroutine interfaces for metadata sync
#pragma once
#include <vector>
#include <string>
#include <boost/asio/awaitable.hpp>
#include <boost/asio/io_context.hpp>
#include "common/ceph_time.h"
#include "rgw_meta_sync_status.h"
struct meta_list_result; // TODO: move out of RGWFetchAllMetaCR
@cbodley
cbodley / setup_multi.sh
Created February 14, 2022 17:43
setup_multi.sh to deploy two vstart clusters and configure for multisite
#!/bin/bash -ex
RGW_ACCESS=DiPt4V7WWvy2njL1z6aC
RGW_SECRET=xSZUdYky0bTctAdCEEW8ikhfBVKsBV5LFYL82vvh
HOSTNAME=localhost
export CEPH_NUM_OSD=1
export CEPH_NUM_MON=1
export CEPH_NUM_MDS=0
@cbodley
cbodley / vstart.diff
Created April 26, 2021 15:01
config for multisite dev
diff --git a/src/vstart.sh b/src/vstart.sh
index 7f0dfef731..07d458e438 100755
--- a/src/vstart.sh
+++ b/src/vstart.sh
@@ -684,6 +684,10 @@ EOF
log file = $CEPH_OUT_DIR/\$name.\$pid.log
admin socket = $CEPH_ASOK_DIR/\$name.\$pid.asok
+ rgw data log num shards = 1
+ rgw md log max shards = 1
#showtooltip
/cancelform [noform:1]
/cast [mod:shift/ctrl/alt,form:1] Dire Bear Form
/cast [mod:ctrl] Major Healing Potion
/cast [mod:alt] Greater Stoneshield Potion
/cast Dire Bear Form
ret = target_shards_mgr.finish();
if (ret < 0) {
lderr(store->ctx()) << "ERROR: failed to reshard" << dendl;
return -EIO;
}
+ if (ret = f.check("link-bucket"); ret < 0) {
+ return ret;
+ }
ret = store->ctl()->bucket->link_bucket(new_bucket_info.owner, new_bucket_info.bucket, bucket_info.creation_time, null_yield);
if (ret < 0) {