Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Ray Log] remove glog dependency #16077

Merged
merged 53 commits into from
Jul 12, 2021

Conversation

qicosmos
Copy link
Contributor

Why are these changes needed?

We use spdlog for logging now, however we still rely on glog, because we need its GetCallTrace method, actually it can be replaced with absl.stacktrace, so this pr will remove glog dependency.

Related issue number

Checks

  • I've run scripts/format.sh to lint the changes in this PR.
  • I've included any doc changes needed for https://docs.ray.io/en/master/.
  • I've made sure the tests are passing. Note that there might be a few flaky tests, see the recent failures at https://flakey-tests.ray.io/
  • Testing Strategy
    • Unit tests
    • Release tests

@qicosmos qicosmos requested review from kfstorm and ashione May 26, 2021 07:52
@rkooo567 rkooo567 self-assigned this May 26, 2021
@kfstorm
Copy link
Member

kfstorm commented May 26, 2021

@qicosmos Can you try to send SIGABRT to raylet and paste the stack trace logs with and without glog here?

@kfstorm
Copy link
Member

kfstorm commented May 26, 2021

We should delete this and all glog-related patches.

auto_http_archive(
name = "com_github_google_glog",
url = "https://github.com/google/glog/archive/925858d9969d8ee22aabc3635af00a37891f4e25.tar.gz",
sha256 = "fb86eca661497ac6f9ce2a106782a30215801bb8a7c8724c6ec38af05a90acf3",
patches = [
"//thirdparty/patches:glog-log-pid-tid.patch",
"//thirdparty/patches:glog-stack-trace.patch",
"//thirdparty/patches:glog-suffix-log.patch",
"//thirdparty/patches:glog-dump-stacktrack.patch",
],
)

local_stack.resize(50);
absl::GetStackTrace(local_stack.data(), 50, 1);
static constexpr size_t buf_size = 1 << 14;
std::unique_ptr<char[]> buf(new char[buf_size]);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need unique_ptr here?

std::vector<void *> local_stack;
local_stack.resize(50);
absl::GetStackTrace(local_stack.data(), 50, 1);
static constexpr size_t buf_size = 1 << 14;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
static constexpr size_t buf_size = 1 << 14;
static constexpr size_t buf_size = 16 * 1024;

google::InitGoogleLogging(app_name_.c_str());
int level = GetMappedSeverity(static_cast<RayLogLevel>(severity_threshold_));
#endif
#ifdef RAY_USE_SPDLOG
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we remove RAY_USE_SPDLOG as well?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#ifdef RAY_USE_SPDLOG typedef ray::SpdLogMessage LoggingProvider; #else typedef ray::CerrLog LoggingProvider; #endif
If we don't define RAY_USE_SPDLOG, ray::CerrLog will be used. If we remove RAY_USE_SPDLOG, how to provide a default logging provider?

Copy link
Member

@kfstorm kfstorm Jun 1, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think CerrLog is being used. We can delete it as well.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am okay with just deleting glog to make iteration faster btw. (and we can remove Cerrlog in the separate PR)

return;
}
google::InstallFailureSignalHandler();
google::InstallFailureWriter(&WriteFailureMessage);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we remove this, who will call WriteFailureMessage? I see that you removed all the signal handler-related code, but if we don't install the signal handler, how would we print stack trace on receiving a signal?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe it should not be removed, i will test signal handler.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to rewrite singalhandler if these functions of glog should be removed.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right, i will deal with signal handler later.

/// have added a patch to allow glog to return the current call stack information
/// through the internal interface. This function `GetCallTrace` is a wrapper
/// providing a new detection function for debug or something like that.
/// This function return the current call stack information.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
/// This function return the current call stack information.
/// This function returns the current call stack information.

@qicosmos
Copy link
Contributor Author

@qicosmos Can you try to send SIGABRT to raylet and paste the stack trace logs with and without glog here?

I will do a test.

@rkooo567
Copy link
Contributor

Can you also post some of stacktrace example? (e.g., show me how stacktrace looks like when SIGBUS happens)

@qicosmos qicosmos requested a review from rkooo567 May 31, 2021 06:53
@rkooo567
Copy link
Contributor

rkooo567 commented Jun 1, 2021

@qicosmos can you post how the stacktrace looks like? Also does it make sense to write a python test to see if it prints logs on some signals? (especially for SIGSEGV, SIGBART, and SIGBUS)

@qicosmos
Copy link
Contributor Author

qicosmos commented Jun 1, 2021

@qicosmos can you post how the stacktrace looks like? Also does it make sense to write a python test to see if it prints logs on some signals? (especially for SIGSEGV, SIGBART, and SIGBUS)

signal_test will print the stacktrace, like this:

[ RUN ] SignalTest.SendBusSignalTest
*** SIGBUS received at time=1622527644 ***
[2021-06-01 14:07:24,263 E 99852 99852] signal_test.cc:42: SendBusSignalTest: kill pid 99866 with return value=0
[2021-06-01 14:07:24,263 E 99852 99852] signal_test.cc:42: SendBusSignalTest: kill pid 99866 with return value=0
PC: @ 0x5608e45461b2 (unknown) ray::TestSendSignal()
@ 0x7f624ca6e85d 64 absl::lts_2019_08_08::WriteFailureInfo()
@ 0x7f624ca6e9ff 96 absl::lts_2019_08_08::AbslFailureSignalHandler()
@ 0x7f623b73a5d0 246824784 (unknown)
@ 0x5608e45463fe 112 ray::SignalTest_SendBusSignalTest_Test::TestBody()
@ 0x7f623ba16475 48 testing::internal::HandleSehExceptionsInMethodIfSupported<>()
@ 0x7f623ba12127 144 testing::internal::HandleExceptionsInMethodIfSupported<>()
@ 0x7f623b9fe678 112 testing::Test::Run()
@ 0x7f623b9fefb0 112 testing::TestInfo::Run()
@ 0x7f623b9ff5fd 112 testing::TestCase::Run()
@ 0x7f623ba09783 112 testing::internal::UnitTestImpl::RunAllTests()
@ 0x7f623ba172fb 48 testing::internal::HandleSehExceptionsInMethodIfSupported<>()
@ 0x7f623ba12e85 144 testing::internal::HandleExceptionsInMethodIfSupported<>()
@ 0x7f623ba082ba 128 testing::UnitTest::Run()
@ 0x5608e45472b8 16 RUN_ALL_TESTS()
@ 0x5608e4546bbd 64 main
@ 0x7f623af64401 (unknown) __libc_start_main
@ 0x412e258d4c544155 (unknown) (unknown)

@kfstorm
Copy link
Member

kfstorm commented Jun 1, 2021

@qicosmos Could you also provide the output if we use glog? One thing I'm concerned about is that the thread ID is missing in your pasted output, so we cannot identify which thread receives/sends the signal. Thread ID is quite useful when we encounter SIGSEGV.

BTW, there's no assertion logic in signal_test.cc. We have to verify the stack trace output manually. Also, the test doesn't write logs to log files, which is what we also care for.

@qicosmos Could you run a simple Ray application and then kill the Raylet and take the stack trace logs from the Raylet log files?

"query": split_on_query[1].split("&") if len(split_on_query) > 1 else None,
"fragment": split_on_anchor[1] if len(split_on_anchor) > 1 else None,
}
"scheme" : split_on_scheme[0],
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please revert unrelated changes in this file

@@ -116,10 +116,13 @@ std::string TestFunctionLevel2() {
#ifndef _WIN32
TEST(PrintLogTest, CallstackTraceTest) {
auto ret0 = TestFunctionLevel0();
std::cout << ret0 << std::endl;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revert this file.

Copy link
Contributor

@rkooo567 rkooo567 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple last comments!

std::string output;
for (auto &stack : local_stack) {
if (absl::Symbolize(stack, buf, buf_size)) {
output.append(" ").append(buf).append("\n");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey is there any good way to add line information using addr2line here? https://linux.die.net/man/1/addr2line

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am just curious if that's possible since it looks like we can access each stack trace

google::InitGoogleLogging(app_name_.c_str());
int level = GetMappedSeverity(static_cast<RayLogLevel>(severity_threshold_));
#endif
#ifdef RAY_USE_SPDLOG
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am okay with just deleting glog to make iteration faster btw. (and we can remove Cerrlog in the separate PR)

EXPECT_TRUE(ret1.find("TestFunctionLevel1") != std::string::npos);
auto ret2 = TestFunctionLevel2();
std::cout << ret2 << std::endl;
EXPECT_TRUE(ret2.find("TestFunctionLevel2") != std::string::npos);
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add a python test? Maybe doing like

Start a raylet -> send a signal -> check log file -> make sure stacktrace is in the .err file

@rkooo567 rkooo567 added the @author-action-required The PR author is responsible for the next step. Remove tag to send back to the reviewer. label Jun 2, 2021
@qicosmos
Copy link
Contributor Author

@qicosmos Could you also provide the output if we use glog? One thing I'm concerned about is that the thread ID is missing in your pasted output, so we cannot identify which thread receives/sends the signal. Thread ID is quite useful when we encounter SIGSEGV.

BTW, there's no assertion logic in signal_test.cc. We have to verify the stack trace output manually. Also, the test doesn't write logs to log files, which is what we also care for.

@qicosmos Could you run a simple Ray application and then kill the Raylet and take the stack trace logs from the Raylet log files?

This PR logging out:

[2021-06-21 16:13:38,663 E 15234 15234] signal_test.cc:42: SendBusSignalTest: kill pid 15236 with return value=0
[2021-06-21 16:13:38,663 E 15234 15234] signal_test.cc:42: SendBusSignalTest: kill pid 15236 with return value=0
PC: @     0x55eedf9a88c0  (unknown)  ray::TestSendSignal()
    @     0x7fc50d3704ed         80  absl::lts_2019_08_08::AbslFailureSignalHandler()
    @     0x7fc50c1a15d0  (unknown)  (unknown)
    @     0x55eedf9a8ad9         80  ray::SignalTest_SendBusSignalTest_Test::TestBody()
    @     0x7fc50c4113b7         96  testing::internal::HandleExceptionsInMethodIfSupported<>()
    @     0x7fc50c4115f2         48  testing::Test::Run()
    @     0x7fc50c4118e8         80  testing::TestInfo::Run()
    @     0x7fc50c411b75         80  testing::TestCase::Run()
    @     0x7fc50c411e18        144  testing::internal::UnitTestImpl::RunAllTests()
    @     0x7fc50c412127         96  testing::internal::HandleExceptionsInMethodIfSupported<>()
    @     0x7fc50c412322        128  testing::UnitTest::Run()
    @     0x55eedf9a7fd2        144  main
    @     0x7fc50b9c9401  (unknown)  __libc_start_main
    @ 0x44fe258d4c544155  (unknown)  (unknown)
[2021-06-21 16:13:38,667 E 15236 15234] logging.cc:299: *** SIGBUS received at time=1624263218 ***
[2021-06-21 16:13:38,667 E 15236 15234] logging.cc:299: *** SIGBUS received at time=1624263218 ***
[2021-06-21 16:13:38,667 E 15236 15234] logging.cc:299: PC: @     0x55eedf9a88c0  (unknown)  ray::TestSendSignal()
[2021-06-21 16:13:38,667 E 15236 15234] logging.cc:299: PC: @     0x55eedf9a88c0  (unknown)  ray::TestSendSignal()
[2021-06-21 16:13:38,668 E 15236 15234] logging.cc:299:     @     0x7fc50d370516         80  absl::lts_2019_08_08::AbslFailureSignalHandler()
[2021-06-21 16:13:38,668 E 15236 15234] logging.cc:299:     @     0x7fc50d370516         80  absl::lts_2019_08_08::AbslFailureSignalHandler()
[2021-06-21 16:13:38,668 E 15236 15234] logging.cc:299:     @     0x7fc50c1a15d0  (unknown)  (unknown)
[2021-06-21 16:13:38,668 E 15236 15234] logging.cc:299:     @     0x7fc50c1a15d0  (unknown)  (unknown)
[2021-06-21 16:13:38,668 E 15236 15234] logging.cc:299:     @     0x55eedf9a8ad9         80  ray::SignalTest_SendBusSignalTest_Test::TestBody()
[2021-06-21 16:13:38,668 E 15236 15234] logging.cc:299:     @     0x55eedf9a8ad9         80  ray::SignalTest_SendBusSignalTest_Test::TestBody()
[2021-06-21 16:13:38,668 E 15236 15234] logging.cc:299:     @     0x7fc50c4113b7         96  testing::internal::HandleExceptionsInMethodIfSupported<>()
[2021-06-21 16:13:38,668 E 15236 15234] logging.cc:299:     @     0x7fc50c4113b7         96  testing::internal::HandleExceptionsInMethodIfSupported<>()
[2021-06-21 16:13:38,668 E 15236 15234] logging.cc:299:     @     0x7fc50c4115f2         48  testing::Test::Run()
[2021-06-21 16:13:38,668 E 15236 15234] logging.cc:299:     @     0x7fc50c4115f2         48  testing::Test::Run()
[2021-06-21 16:13:38,668 E 15236 15234] logging.cc:299:     @     0x7fc50c4118e8         80  testing::TestInfo::Run()
[2021-06-21 16:13:38,668 E 15236 15234] logging.cc:299:     @     0x7fc50c4118e8         80  testing::TestInfo::Run()
[2021-06-21 16:13:38,668 E 15236 15234] logging.cc:299:     @     0x7fc50c411b75         80  testing::TestCase::Run()
[2021-06-21 16:13:38,668 E 15236 15234] logging.cc:299:     @     0x7fc50c411b75         80  testing::TestCase::Run()
[2021-06-21 16:13:38,668 E 15236 15234] logging.cc:299:     @     0x7fc50c411e18        144  testing::internal::UnitTestImpl::RunAllTests()
[2021-06-21 16:13:38,668 E 15236 15234] logging.cc:299:     @     0x7fc50c411e18        144  testing::internal::UnitTestImpl::RunAllTests()
[2021-06-21 16:13:38,668 E 15236 15234] logging.cc:299:     @     0x7fc50c412127         96  testing::internal::HandleExceptionsInMethodIfSupported<>()
[2021-06-21 16:13:38,668 E 15236 15234] logging.cc:299:     @     0x7fc50c412127         96  testing::internal::HandleExceptionsInMethodIfSupported<>()
[2021-06-21 16:13:38,668 E 15236 15234] logging.cc:299:     @     0x7fc50c412322        128  testing::UnitTest::Run()
[2021-06-21 16:13:38,668 E 15236 15234] logging.cc:299:     @     0x7fc50c412322        128  testing::UnitTest::Run()
[2021-06-21 16:13:38,668 E 15236 15234] logging.cc:299:     @     0x55eedf9a7fd2        144  main
[2021-06-21 16:13:38,668 E 15236 15234] logging.cc:299:     @     0x55eedf9a7fd2        144  main
[2021-06-21 16:13:38,668 E 15236 15234] logging.cc:299:     @     0x7fc50b9c9401  (unknown)  __libc_start_main
[2021-06-21 16:13:38,668 E 15236 15234] logging.cc:299:     @     0x7fc50b9c9401  (unknown)  __libc_start_main
[2021-06-21 16:13:38,670 E 15236 15234] logging.cc:299:     @ 0x44fe258d4c544155  (unknown)  (unknown)
[2021-06-21 16:13:38,670 E 15236 15234] logging.cc:299:     @ 0x44fe258d4c544155  (unknown)  (unknown)
[       OK ] SignalTest.SendBusSignalTest (201 ms)
[ RUN      ] SignalTest.SIGABRT_Test

The glog logging out:

[2021-06-10 11:01:45,423 E 94936 94936] signal_test.cc:42: SendBusSignalTest: kill pid 94953 with return value=0
[2021-06-10 11:01:45,423 E 94936 94936] signal_test.cc:42: SendBusSignalTest: kill pid 94953 with return value=0
[2021-06-10 11:01:45,423 E 94953 94936] logging.cc:440: *** Aborted at 1623294105 (unix time) try "date -d @1623294105" if you are using GNU date ***
[2021-06-10 11:01:45,423 E 94953 94936] logging.cc:440: *** Aborted at 1623294105 (unix time) try "date -d @1623294105" if you are using GNU date ***
[2021-06-10 11:01:45,426 E 94953 94936] logging.cc:440: PC: @                0x0 (unknown)
[2021-06-10 11:01:45,426 E 94953 94936] logging.cc:440: PC: @                0x0 (unknown)
[2021-06-10 11:01:45,426 E 94953 94936] logging.cc:440: *** SIGBUS (@0x1f4000172d8) received by PID 94953 (TID 0x7f685213f940) from PID 94936; stack trace: ***
[2021-06-10 11:01:45,426 E 94953 94936] logging.cc:440: *** SIGBUS (@0x1f4000172d8) received by PID 94953 (TID 0x7f685213f940) from PID 94936; stack trace: ***
[2021-06-10 11:01:45,427 E 94953 94936] logging.cc:440:     @     0x7f6838efc5d0 (unknown)
[2021-06-10 11:01:45,427 E 94953 94936] logging.cc:440:     @     0x7f6838efc5d0 (unknown)
[2021-06-10 11:01:45,427 E 94953 94936] logging.cc:440:     @     0x561b23e24710 ray::TestSendSignal()
[2021-06-10 11:01:45,427 E 94953 94936] logging.cc:440:     @     0x561b23e24710 ray::TestSendSignal()
[2021-06-10 11:01:45,427 E 94953 94936] logging.cc:440:     @     0x561b23e24929 ray::SignalTest_SendBusSignalTest_Test::TestBody()
[2021-06-10 11:01:45,427 E 94953 94936] logging.cc:440:     @     0x561b23e24929 ray::SignalTest_SendBusSignalTest_Test::TestBody()
[2021-06-10 11:01:45,427 E 94953 94936] logging.cc:440:     @     0x7f683916ab67 testing::internal::HandleExceptionsInMethodIfSupported<>()
[2021-06-10 11:01:45,427 E 94953 94936] logging.cc:440:     @     0x7f683916ab67 testing::internal::HandleExceptionsInMethodIfSupported<>()
[2021-06-10 11:01:45,427 E 94953 94936] logging.cc:440:     @     0x7f683916ada2 testing::Test::Run()
[2021-06-10 11:01:45,427 E 94953 94936] logging.cc:440:     @     0x7f683916ada2 testing::Test::Run()
[2021-06-10 11:01:45,427 E 94953 94936] logging.cc:440:     @     0x7f683916b098 testing::TestInfo::Run()
[2021-06-10 11:01:45,427 E 94953 94936] logging.cc:440:     @     0x7f683916b098 testing::TestInfo::Run()
[2021-06-10 11:01:45,427 E 94953 94936] logging.cc:440:     @     0x7f683916b325 testing::TestCase::Run()
[2021-06-10 11:01:45,427 E 94953 94936] logging.cc:440:     @     0x7f683916b325 testing::TestCase::Run()
[2021-06-10 11:01:45,427 E 94953 94936] logging.cc:440:     @     0x7f683916b5c8 testing::internal::UnitTestImpl::RunAllTests()
[2021-06-10 11:01:45,427 E 94953 94936] logging.cc:440:     @     0x7f683916b5c8 testing::internal::UnitTestImpl::RunAllTests()
[2021-06-10 11:01:45,427 E 94953 94936] logging.cc:440:     @     0x7f683916b8d7 testing::internal::HandleExceptionsInMethodIfSupported<>()
[2021-06-10 11:01:45,427 E 94953 94936] logging.cc:440:     @     0x7f683916b8d7 testing::internal::HandleExceptionsInMethodIfSupported<>()
[2021-06-10 11:01:45,427 E 94953 94936] logging.cc:440:     @     0x7f683916bad2 testing::UnitTest::Run()
[2021-06-10 11:01:45,427 E 94953 94936] logging.cc:440:     @     0x7f683916bad2 testing::UnitTest::Run()
[2021-06-10 11:01:45,427 E 94953 94936] logging.cc:440:     @     0x561b23e23e52 main
[2021-06-10 11:01:45,427 E 94953 94936] logging.cc:440:     @     0x561b23e23e52 main
[2021-06-10 11:01:45,428 E 94953 94936] logging.cc:440:     @     0x7f6838726401 __libc_start_main
[2021-06-10 11:01:45,428 E 94953 94936] logging.cc:440:     @     0x7f6838726401 __libc_start_main
[2021-06-10 11:01:45,428 E 94953 94936] logging.cc:440:     @     0x561b23e23efa _start
[2021-06-10 11:01:45,428 E 94953 94936] logging.cc:440:     @     0x561b23e23efa _start
[       OK ] SignalTest.SendBusSignalTest (201 ms)
[ RUN      ] SignalTest.SIGABRT_Test

os.kill(pid, SIGKILL)
wait_for_pid_to_exit(pid)
thread = check_thread(raylet_out_path)
thread.start()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Forgot to join the thread.
Q1: Why do we need a thread here?
Q2: Will the exception thrown in the thread be populated to the main thread?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You still didn't answer Q1 and Q2.

class check_thread(threading.Thread):
def __init__(self, raylet_out_path):
threading.Thread.__init__(self)
self._daemonic = True
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why set this?

Copy link
Contributor Author

@qicosmos qicosmos Jun 29, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The _daemonic make the thread detach.
If we use thread.join() here, the log of SIGTERM can not be flushed, and we do not have a log flush interface, use detach thread can avoid the problem.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But in this case, the test will pass without waiting for the thread to finish. How do you ensure the signal is in the log file?

s = f.read()
assert len(s) > 0
print(s)
assert "SIGTERM" in s
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For non-Windows environments, you send a SIGKILL to Raylet. Why do we always assert SIGTERM here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Windows no SIGABRT, but has SIGTERM, use SIGTERM to support windows and linux.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For Linux and macOS, you send SIGKILL according to signal.SIGKILL if sys.platform != "win32" else signal.SIGTERM, right? But you assert SIGTERM here. So I suppose the test will fail on Linux and macOS.

@kfstorm
Copy link
Member

kfstorm commented Jul 8, 2021

@rkooo567 Any more comments?

@kfstorm kfstorm removed the @author-action-required The PR author is responsible for the next step. Remove tag to send back to the reviewer. label Jul 8, 2021
@raulchen raulchen merged commit 298d2af into ray-project:master Jul 12, 2021
@raulchen raulchen deleted the remove_glog_dependency branch July 12, 2021 09:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants