[Dashboard] Start the new dashboard#10131
Conversation
…w dashboard startup
Co-authored-by: SangBin Cho <rkooo567@gmail.com>
Co-authored-by: SangBin Cho <rkooo567@gmail.com>
|
This still seems to break almost every Windows tests. |
|
Yeah, 7 tests passing 39 failing is quite high. I'm going to check recent master builds to verify, but I think there is actually something in the new backend that is breaking these Windows tests. |
|
@fyrestone I checked another branch in open PR (https://github.com/ray-project/ray/pull/10050/checks?check_run_id=986885497) and it's passing 42 / 46 tests, so it definitely seems like there's something in this build breaking windows functionality. Could you please look into this? |
I reviewed the log of windows CI, many tests just timeout or failed. But, I don't know why the tests fail. I don't have a windows development environment. All I can do is guess. |
|
@mfitton @rkooo567 The Windows CI looks good, the root cause is hi, @mehrdadn Why not use
|
|
@fyrestone because it's not that simple, and Also I should note Note that the current behavior is actually not as weird as it might seem: it's in fact impossible to launch a process with an empty command-line on Windows (at least with normal Win32 APIs like I'm confused about your demand for tests though. I did in fact include extensive tests for this. Please add a test in |
If it is not easy to parse cmdline in different platforms, we can use a json string of cmdline (a list of cmd parts), and json is |
|
I would leave it as is. |
|
We should probably be passing these args base64 encoded to avoid anything
like parsing...
…On Wed, Aug 19, 2020, 11:54 PM fyrestone ***@***.***> wrote:
@fyrestone <https://github.com/fyrestone> Also I should note
parse_command_line requires an array to begin with, but if we had that we
wouldn't need ParseCommandLine in the first place.
If it is not easy to parse cmdline in different platforms, we can use a
json string of cmdline (a list of cmd parts), and json is
platform independent. I think it's better not to implement
platform-related logic.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#10131 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAADUSS44LGBDP337OGRRMTSBTCCDANCNFSM4QAFZDBA>
.
|
My point is one API should behaves the same on different platforms. While
|
|
@fyrestone: I understand. By "as is" I meant after your change. Your change is fine and it addresses that difference. There's no need to switch to JSON. |
| if (s.empty()) { | ||
| return {}; | ||
| } |
There was a problem hiding this comment.
| if (s.empty()) { | |
| return {}; | |
| } |
@fyrestone On a second thought, I think you probably want to remove this block. Instead, change the beginning of the loop from
for (bool stop = false, in_dquotes = false; !stop;) {
to:
while (i < j && (*i == ' ' || *i == '\t')) {
++i; // Skip leading spaces
}
for (bool stop = i >= j, in_dquotes = false; !stop;) {
This is because Windows treats a leading space as 1 empty argument (and hence my implementation did the same). However, considering your goal, I think you want to return 0 arguments in that case as well.
In ray/util/util_test.cc:59, you will need to change the corresponding test case as well:
ASSERT_EQ(ParseCommandLine(R"( a)", win32), ArgList({R"(a)"})); // Differs from Windows
There was a problem hiding this comment.
@fyrestone I really think you want to make this change before merging, otherwise the semantics will become more confusing. Without this change, an empty string will become an empty array, but a single space will become a 1-element array, which is neither here nor there.
There was a problem hiding this comment.
Thanks, I think it's better to fix the ParseCommandLine perfectly in another PR. No one is more familiar with this code than you, and you can do the best fix in your PR. This PR is to start the new dashboard.
Co-authored-by: Robert Nishihara <robertnishihara@gmail.com>
Previous PR was reverted #9860, and I can't reopen that PR. So, here is the new PR.
Checks
scripts/format.shto lint the changes in this PR.