From: yuval Lifshitz Date: Thu, 9 Jun 2022 15:57:07 +0000 (+0300) Subject: rgw/lua: replace int64_t with "long long int" for the background table X-Git-Tag: v18.0.0~711^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F46568%2Fhead;p=ceph.git rgw/lua: replace int64_t with "long long int" for the background table lua integer is "long long int" which works with GCC 11.2.1 (fedora 36) but fails to compile on centos8 and ubuntu focal Signed-off-by: yuval Lifshitz --- diff --git a/src/rgw/rgw_lua_background.cc b/src/rgw/rgw_lua_background.cc index 0cad7e8f3e24..ea85193edf7c 100644 --- a/src/rgw/rgw_lua_background.cc +++ b/src/rgw/rgw_lua_background.cc @@ -21,7 +21,7 @@ int RGWTable::increment_by(lua_State* L) { const auto index = luaL_checkstring(L, 1); // by default we increment by 1/-1 - const auto default_inc = (decrement ? -1 : 1); + const long long int default_inc = (decrement ? -1 : 1); BackgroundMapValue inc_by = default_inc; if (args == 2) { if (lua_isinteger(L, 2)) { @@ -40,12 +40,12 @@ int RGWTable::increment_by(lua_State* L) { auto& value = it->second; if (std::holds_alternative(value) && std::holds_alternative(inc_by)) { value = std::get(value) + std::get(inc_by); - } else if (std::holds_alternative(value) && std::holds_alternative(inc_by)) { - value = std::get(value) + std::get(inc_by); - } else if (std::holds_alternative(value) && std::holds_alternative(inc_by)) { - value = std::get(value) + static_cast(std::get(inc_by)); - } else if (std::holds_alternative(value) && std::holds_alternative(inc_by)) { - value = static_cast(std::get(value)) + std::get(inc_by); + } else if (std::holds_alternative(value) && std::holds_alternative(inc_by)) { + value = std::get(value) + std::get(inc_by); + } else if (std::holds_alternative(value) && std::holds_alternative(inc_by)) { + value = std::get(value) + static_cast(std::get(inc_by)); + } else if (std::holds_alternative(value) && std::holds_alternative(inc_by)) { + value = static_cast(std::get(value)) + std::get(inc_by); } else { mtx.unlock(); return luaL_error(L, "can increment only numeric values"); diff --git a/src/rgw/rgw_lua_background.h b/src/rgw/rgw_lua_background.h index 7c6e6353de87..5d7eafa39bef 100644 --- a/src/rgw/rgw_lua_background.h +++ b/src/rgw/rgw_lua_background.h @@ -13,14 +13,14 @@ namespace rgw::lua { constexpr const int INIT_EXECUTE_INTERVAL = 5; //Writeable meta table named RGW with mutex protection -using BackgroundMapValue = std::variant; +using BackgroundMapValue = std::variant; using BackgroundMap = std::unordered_map; inline void pushvalue(lua_State* L, const std::string& value) { pushstring(L, value); } -inline void pushvalue(lua_State* L, int64_t value) { +inline void pushvalue(lua_State* L, long long value) { lua_pushinteger(L, value); } @@ -111,7 +111,7 @@ struct RGWTable : EmptyMetaTable { case LUA_TNUMBER: if (lua_isinteger(L, 3)) { value = lua_tointeger(L, 3); - len = sizeof(int64_t); + len = sizeof(long long int); } else { value = lua_tonumber(L, 3); len = sizeof(double); diff --git a/src/test/rgw/test_rgw_lua.cc b/src/test/rgw/test_rgw_lua.cc index 3a2d43af2d35..0e3214211ff9 100644 --- a/src/test/rgw/test_rgw_lua.cc +++ b/src/test/rgw/test_rgw_lua.cc @@ -875,7 +875,7 @@ TEST(TestRGWLuaBackground, TableValues) const auto rc = lua::request::execute(nullptr, nullptr, nullptr, &s, "", request_script, &lua_background); ASSERT_EQ(rc, 0); EXPECT_EQ(get_table_value(lua_background, "key1"), "string value"); - EXPECT_EQ(get_table_value(lua_background, "key2"), 42); + EXPECT_EQ(get_table_value(lua_background, "key2"), 42); EXPECT_EQ(get_table_value(lua_background, "key3"), 42.2); EXPECT_TRUE(get_table_value(lua_background, "key4")); } @@ -894,7 +894,7 @@ TEST(TestRGWLuaBackground, TablePersist) auto rc = lua::request::execute(nullptr, nullptr, nullptr, &s, "", request_script, &lua_background); ASSERT_EQ(rc, 0); EXPECT_EQ(get_table_value(lua_background, "key1"), "string value"); - EXPECT_EQ(get_table_value(lua_background, "key2"), 42); + EXPECT_EQ(get_table_value(lua_background, "key2"), 42); request_script = R"( RGW["key3"] = RGW["key1"] @@ -904,9 +904,9 @@ TEST(TestRGWLuaBackground, TablePersist) rc = lua::request::execute(nullptr, nullptr, nullptr, &s, "", request_script, &lua_background); ASSERT_EQ(rc, 0); EXPECT_EQ(get_table_value(lua_background, "key1"), "string value"); - EXPECT_EQ(get_table_value(lua_background, "key2"), 42); + EXPECT_EQ(get_table_value(lua_background, "key2"), 42); EXPECT_EQ(get_table_value(lua_background, "key3"), "string value"); - EXPECT_EQ(get_table_value(lua_background, "key4"), 42); + EXPECT_EQ(get_table_value(lua_background, "key4"), 42); } TEST(TestRGWLuaBackground, TableValuesFromRequest) @@ -929,7 +929,7 @@ TEST(TestRGWLuaBackground, TableValuesFromRequest) const auto rc = lua::request::execute(nullptr, nullptr, nullptr, &s, "", request_script, &lua_background); ASSERT_EQ(rc, 0); - EXPECT_EQ(get_table_value(lua_background, "key1"), -99); + EXPECT_EQ(get_table_value(lua_background, "key1"), -99); EXPECT_EQ(get_table_value(lua_background, "key2"), "hi"); EXPECT_EQ(get_table_value(lua_background, "key3"), -9.9); EXPECT_EQ(get_table_value(lua_background, "key4"), true); @@ -955,7 +955,7 @@ TEST(TestRGWLuaBackground, TableInvalidValue) const auto rc = lua::request::execute(nullptr, nullptr, nullptr, &s, "", request_script, &lua_background); ASSERT_NE(rc, 0); EXPECT_EQ(get_table_value(lua_background, "key1"), "val1"); - EXPECT_EQ(get_table_value(lua_background, "key2"), 42); + EXPECT_EQ(get_table_value(lua_background, "key2"), 42); EXPECT_EQ(get_table_value(lua_background, "key3"), 42.2); EXPECT_EQ(get_table_value(lua_background, "key4"), true); } @@ -977,9 +977,9 @@ TEST(TestRGWLuaBackground, TableErase) auto rc = lua::request::execute(nullptr, nullptr, nullptr, &s, "", request_script, &lua_background); ASSERT_EQ(rc, 0); EXPECT_EQ(get_table_value(lua_background, "key1"), "string value"); - EXPECT_EQ(get_table_value(lua_background, "key2"), 42); + EXPECT_EQ(get_table_value(lua_background, "key2"), 42); EXPECT_EQ(get_table_value(lua_background, "key3"), "another string value"); - EXPECT_EQ(get_table_value(lua_background, "size"), 4); + EXPECT_EQ(get_table_value(lua_background, "size"), 4); request_script = R"( -- erase key1 @@ -992,9 +992,9 @@ TEST(TestRGWLuaBackground, TableErase) rc = lua::request::execute(nullptr, nullptr, nullptr, &s, "", request_script, &lua_background); ASSERT_EQ(rc, 0); EXPECT_EQ(get_table_value(lua_background, "key1"), ""); - EXPECT_EQ(get_table_value(lua_background, "key2"), 42); + EXPECT_EQ(get_table_value(lua_background, "key2"), 42); EXPECT_EQ(get_table_value(lua_background, "key3"), "another string value"); - EXPECT_EQ(get_table_value(lua_background, "size"), 3); + EXPECT_EQ(get_table_value(lua_background, "size"), 3); } TEST(TestRGWLuaBackground, TableIterate) @@ -1017,10 +1017,10 @@ TEST(TestRGWLuaBackground, TableIterate) const auto rc = lua::request::execute(nullptr, nullptr, nullptr, &s, "", request_script, &lua_background); ASSERT_EQ(rc, 0); EXPECT_EQ(get_table_value(lua_background, "key1"), "string value"); - EXPECT_EQ(get_table_value(lua_background, "key2"), 42); + EXPECT_EQ(get_table_value(lua_background, "key2"), 42); EXPECT_EQ(get_table_value(lua_background, "key3"), 42.2); EXPECT_TRUE(get_table_value(lua_background, "key4")); - EXPECT_EQ(get_table_value(lua_background, "size"), 5); + EXPECT_EQ(get_table_value(lua_background, "size"), 5); } TEST(TestRGWLuaBackground, TableIncrement)