-
Notifications
You must be signed in to change notification settings - Fork 391
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
Latest sync (0.651) causes segfault specifically on ubuntu-20.04 #1515
Comments
Can also reproduce this with
|
@JohnnyMorganz this is a sneaky bug — I believe I have a fix on my end, but I want to make sure there isn't something else going on.
Editing the previous solution I had posted before (not sure it was safe). Try going to luau/Config/include/Luau/Config.h Lines 24 to 27 in 53e6e4b
Also, remove the Line 20 in 53e6e4b
Line 43 in 53e6e4b
If that works for you, I'll put in a PR (let me know). |
Thanks @vrn-sn, I've tested with removing the noexcept in Config on ubuntu-20.04 via WSL and it seems to be working for me! diff --git a/Config/include/Luau/Config.h b/Config/include/Luau/Config.h
index d6016229..64b76f07 100644
--- a/Config/include/Luau/Config.h
+++ b/Config/include/Luau/Config.h
@@ -21,10 +21,10 @@ constexpr const char* kConfigName = ".luaurc";
struct Config
{
Config();
- Config(const Config& other) noexcept;
- Config& operator=(const Config& other) noexcept;
- Config(Config&& other) noexcept = default;
- Config& operator=(Config&& other) noexcept = default;
+ Config(const Config& other);
+ Config& operator=(const Config& other);
+ Config(Config&& other) = default;
+ Config& operator=(Config&& other) = default;
Mode mode = Mode::Nonstrict;
diff --git a/Config/src/Config.cpp b/Config/src/Config.cpp
index 3760fd9e..345e039c 100644
--- a/Config/src/Config.cpp
+++ b/Config/src/Config.cpp
@@ -17,7 +17,7 @@ Config::Config()
enabledLint.setDefaults();
}
-Config::Config(const Config& other) noexcept
+Config::Config(const Config& other)
: mode(other.mode)
, parseOptions(other.parseOptions)
, enabledLint(other.enabledLint)
@@ -40,7 +40,7 @@ Config::Config(const Config& other) noexcept
}
}
-Config& Config::operator=(const Config& other) noexcept
+Config& Config::operator=(const Config& other)
{
if (this != &other)
{ |
Fix is merged. Let me know if you have any other issues! |
Attempting to sync to Luau 0.651 for luau-lsp causes a crash on ubuntu-20.04 when executing the binary: JohnnyMorganz/luau-lsp#813
Running in gdb gives:
which repeats for several stackframes (snipped), indicating a problem in the implementation for
Luau::Config::operator=(Luau::Config const&) ()
https://github.com/luau-lang/luau/blob/e6bf71871a6b9f601545dba8a42ce89c6069675c/Config/src/Config.cpp#L43C1-L51C2
The text was updated successfully, but these errors were encountered: