Skip to content

Conversation

@pull
Copy link

@pull pull bot commented Dec 10, 2024

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

@pull pull bot added ⤵️ pull merge-conflict Resolve conflicts manually labels Dec 10, 2024
sqllqq and others added 27 commits December 10, 2024 15:59
I fix clippy warnings
 ^
 |     T_T     |
               v
they add new ones
This is a continuation of work done in commit 52bb62c. This time the
problem arose after a recent change in rustc, and resulted in lua
exceptions stopping being intercepted by tarantool. I don't know yet
what's the specific cause of this, what changed in rust and how did it
affect the seemingly unrelated functionality of tarantool, but this
change seems to help.

Here's how the problem showcased in the tests:

running 1 test
test tlua::functions_write::error ... #1  0x16378a7 in tarantool_panic_handler+103
 #2  0x183eaf5 in lj_err_throw+117
 #3  0x183ee65 in lj_err_run+277
 #4  0x183f63f in lua_error+15
 #5  0x7673285fc50a in ??+0
 #6  0x1834373 in lj_BC_FUNCC+70
 #7  0x183b295 in lua_pcall+117
 #8  0x76732868f87d in ??+0
 #9  0x7673286adea5 in ??+0
 #10 0x7673289e1acc in ??+0
 #11 0x7673289e15ae in ??+0
 #12 0x7673289e0f9c in ??+0
 #13 0x7673289dedfb in ??+0
 #14 0x7673289ced2c in ??+0
 #15 0x76732858b414 in ??+0
 #16 0x7673285a1659 in ??+0
 #17 0x16920eb in module_func_call+139
 #18 0x17b4ba3 in lbox_func_call+307
 #19 0x1834373 in lj_BC_FUNCC+70
 #20 0x183b295 in lua_pcall+117
 #21 0x16411ef in luaT_call+15
 #22 0x16381f1 in lua_main+97
 #23 0x1638ab1 in run_script_f+2193
 #24 0x165c3e1 in fiber_cxx_invoke(int (*)(__va_list_tag*), __va_list_tag*)+17
 #25 0x15beea7 in fiber_loop+55
 #26 0x1618f68 in coro_init+72
2025-02-10 19:39:05.410 [3087063] main/104/run_tests.lua C> your message: my message
Prior to version 2.11.5.225, the picodata fork of tarantool allowed
preparing the same query multiple times in a single session via the
custom C API. Beginning with 2.11.5.225, this is no longer supported.
Therefore, we must clear the statement cache after each test.
Кирилл Безуглый and others added 30 commits May 7, 2025 17:45
Just fixing some warnings about mutable static references from compiler
with a macros that creates a reference on a raw pointer, fixing a warning
from a Clippy about creating a reference on a raw pointer :D
In Picodata, there is a need to just hash data, without encoding (e.g.
interoperation with Tarantool from Picoplugin SDK). This commit splits
authentication functions into separate functions: hashing implementation
and hashing with encoding.

Close: none.
Follow-up: picodata!1835.
BREAKING CHANGE!: the argument type in `lua_dump` has changed from
`*mut LuaState` to `*mut lua_State`.

The `lua_dump` signature was incorrectly implemented as
`*mut LuaState` (i.e., ``*mut (*mut lua_State)`) instead of the
required `*mut lua_State`. With the wrong signature, the method
was non-functional, while picodata needs it to migrate the SQL
executor to the new port API.

Also add a convenience constructor for the virtual table and
improve its test coverage.
…` with default generic parameters

The implementation re-uses code from serde's `ImplGenerics` `ToTokens` impl, which already handle this correctly, but cannot be used in this macro.
… is found in picodata CI

The mismatch is due to different versions of clippy used (0.1.82 vs 0.1.85)
…ndex::Part`

This makes the types follow the api more closely, removes some error condition and makes it easier to implement column renaming
Bump tarantool version should've happened in e35a923
Bump tlua & tlua-derive version should've happened in 801abc2
It was originally pinned for MSRV reasons, but right now `time` MSRV is well behind the MSRV in module (1.67.1 vs 1.82)

This gets us two years of bug fixes, including a fix for picodata#1945
We had a few unmaintaned or archived dependencies in our workspace, or
their versions were too old to continue their living in modern Rust.

This commit introduces the following changes:

* `dlopen` (`0.1.8`) -> `libloading` (`0.8`)

* `linkme` (`0.3.29`) -> `linkme` (`0.3`)

* `proc-macro-error` (`1`) -> `proc-macro-error2` (`2`)
Adjust vtab methods to fit in with tarantool.
Previously, multiple versions of `linkme` (`0.2` and `0.3`) were used
across the workspace.  Version `0.2` contains a critical vulnerability
(RUSTSEC-2024-0407). This was fixed  in version `0.3`.

This commit standardizes all crates in the workspace to use `linkme` of
version `0.3`, resolving the  version inconsistency and eliminating the
security vulnerability. As a result, `cargo-deny` audit step now passes
successfully across the entire workspace.

See also: <https://rustsec.org/advisories/RUSTSEC-2024-0407.html>
IPROTO authentication implementation does not send an information about
method used for the specified user (e.g., MD5) to the client. That
means, we have to try every possible method by hand, including LDAP. If
the user does not use LDAP, warning about unsecured attempt to connect
will still be printed, which is not expected behavior, even if LDAP will
be the last method used in enumeration (i.e., invalid password still
need to try all methods). In addition, if we run out of attempts to
enter the password, the user may be blocked.

For more context, look at PostgreSQL authentication protocol, which
sends the appropriate authentication method for the specified user, and
does not require a client to iterate through all available methods.

Note that this change will only affect `picodata` feature flag.

Addresses: !1833, #1734.
This patch enables sending IPROTO_ID message containing cluster_uuid
specified in client Config. This is needed to ensure that we connect
to the instance in the same cluster. This feature is specific to
picodata and requires changes to tarantool itself. For server side
validation see 7b838d71.
According to audit and library sources, the `async-std` is not maintained
anymore. This commit removes this library as a dependency, it's public
re-exports, and an implicit feature flag it adds to the workspace.

BREAKING CHANGE: see <https://rustsec.org/advisories/RUSTSEC-2025-0052.html>.

Addresses: picodata!2269.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

⤵️ pull merge-conflict Resolve conflicts manually

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants