Skip to content

Commit

Permalink
cloud_roles: run tests that log on seastar thread
Browse files Browse the repository at this point in the history
This segfault is triggering as the test does something innocuous like
logging a few string:

```
  #0 0x7f875b0bbc1f in std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry::sentry(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) (/vectorized/lib/libc++.so.1+0x65c1f)
  #1 0x5597c3979afc in std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) /vectorized/llvm/bin/../include/c++/v1/ostream:722:57
  #2 0x5597c4079e44 in std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::operator<<<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >) /vectorized/llvm/bin/../include/c++/v1/ostream:1057:12
  #3 0x5597c602c9f3 in seastar::logger::do_log(seastar::log_level, seastar::logger::log_writer&) /v/build/v_deps_build/seastar-prefix/src/seastar/src/util/log.cc:342:15
  #4 0x5597c3c4ad20 in void seastar::logger::log<char const*, int, seastar::basic_sstring<char, unsigned int, 15u, true>&>(seastar::log_level, seastar::logger::format_info, char const*&&, int&&, seastar::basic_sstring<char, unsigned int, 15u, true>&) /vectorized/include/seastar/util/log.hh:231:17
  #5 0x5597c3f23c51 in void seastar::logger::trace<char const*, int, seastar::basic_sstring<char, unsigned int, 15u, true>&>(seastar::logger::format_info, char const*&&, int&&, seastar::basic_sstring<char, unsigned int, 15u, true>&) /vectorized/include/seastar/util/log.hh:385:9
  #6 0x5597c3f14b95 in cloud_roles::signature_v4::sign_header(boost::beast::http::header<true, boost::beast::http::basic_fields<std::__1::allocator<char> > >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >) const /var/lib/buildkite-agent/builds/buildkite-amd64-builders-i-00e717c5e253e2891-1/redpanda/vtools/src/v/cloud_roles/signature.cc:382:5
  #7 0x5597c3bf1dfb in cloud_roles::apply_aws_credentials::add_auth(boost::beast::http::header<true, boost::beast::http::basic_fields<std::__1::allocator<char> > >&) const /var/lib/buildkite-agent/builds/buildkite-amd64-builders-i-00e717c5e253e2891-1/redpanda/vtools/src/v/cloud_roles/apply_aws_credentials.cc:83:23
  #8 0x5597c3b8f88d in cloud_roles::apply_credentials::add_auth(boost::beast::http::header<true, boost::beast::http::basic_fields<std::__1::allocator<char> > >&) const /var/lib/buildkite-agent/builds/buildkite-amd64-builders-i-00e717c5e253e2891-1/redpanda/vtools/src/v/cloud_roles/apply_credentials.h:47:23
  #9 0x5597c3b8c578 in test_aws_headers::test_method() /var/lib/buildkite-agent/builds/buildkite-amd64-builders-i-00e717c5e253e2891-1/redpanda/vtools/src/v/cloud_roles/tests/credential_tests.cc:50:17
```

What is suspicious is that this test is using seastar's logger from a
non-seastar reactor thread. Taking a look we do see some things like
this_shard_id() being called, but other than that it doesn't look like
it should be problematic. But, it's unclear if there is more lurking
there.

Changed the test to run things that log using seastar logger on a
seastar thread.

Signed-off-by: Noah Watkins <[email protected]>
  • Loading branch information
dotnwat committed Apr 10, 2023
1 parent e2c4fbb commit 541219a
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions src/v/cloud_roles/tests/credential_tests.cc
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,11 @@
#include "cloud_roles/apply_credentials.h"

#include <boost/test/unit_test.hpp>
#include <seastar/testing/thread_test_case.hh>

namespace bh = boost::beast::http;

BOOST_AUTO_TEST_CASE(test_gcp_headers) {
SEASTAR_THREAD_TEST_CASE(test_gcp_headers) {
auto applier = cloud_roles::make_credentials_applier(
cloud_roles::gcp_credentials{
.oauth_token = cloud_roles::oauth_token_str{"a-token"}});
Expand All @@ -36,7 +37,7 @@ BOOST_AUTO_TEST_CASE(test_gcp_headers) {
}
}

BOOST_AUTO_TEST_CASE(test_aws_headers) {
SEASTAR_THREAD_TEST_CASE(test_aws_headers) {
auto applier = cloud_roles::make_credentials_applier(
cloud_roles::aws_credentials{
.access_key_id = cloud_roles::public_key_str{"pub"},
Expand Down

0 comments on commit 541219a

Please sign in to comment.