Skip to content
Snippets Groups Projects
  1. Apr 13, 2022
    • Vladimir Davydov's avatar
      box: add internal box_on_call trigger · d6c1e597
      Vladimir Davydov authored
      The trigger is invoked on IPROTO CALL/EVAL. The trigger callback is
      passed a context with function name or eval expression and arguments
      (MsgPack data). It will be used for auditing CALL/EVAL events in the EE
      version.
      
      NO_TEST=ee
      NO_DOC=internal
      NO_CHANGELOG=internal
      d6c1e597
  2. Jun 24, 2019
    • Kirill Shcherbatov's avatar
      box: rework box_lua_{call, eval} to use input port · 707e58a3
      Kirill Shcherbatov authored
      Re-factor box_lua_call and box_lua_eval so that they don't take
      call_request. This approach is more scalable: in case of a
      functional index, the user expects to see a tuple with field
      names so we should be able to pass not only raw msgpack, but
      also a tuple to a Lua call so we need an universal way to pass
      arguments to _call methods.
      
      To pass a tuple msgpack introduced a new port_msgpack: the port
      class with dump_lua method.
      A new method get_msgpack returns a content of a port as a
      msgpack data. The lifecycle of the returned value is
      implementation-specific: it may either be returned directly from
      the port, in which case the data will stay alive as long as the
      port is alive, or it may be allocated on the fiber()->gc, in
      which case the caller is responsible for cleaning up.
      
      Needed for #4182, #1260
      707e58a3
  3. Jul 13, 2018
    • Kirill Shcherbatov's avatar
      box: support reload whole module · 3aec485d
      Kirill Shcherbatov authored
      Closes #2946.
      
      @TarantoolBot document
      Title: fixed module reload
      There was a bug in tarantool documentation:
      https://tarantool.io/en/doc/1.7/book/box/
      box_schema/#lua-function.box.schema.func.reload
      Now it is allowed to reload all functions in loadable
      module via one method. Legacy method including finction
      name is forbidden.
      box.schema.func.reload("utils")       -- ok since now
      box.schema.func.reload("utils.func1") -- forbidden since now
      
      Global reload is still unsupported because it seems
      to be useless.
      box.schema.func.reload()              -- invalid!
      3aec485d
  4. Jan 18, 2018
    • Vladimir Davydov's avatar
      call: separate function invocation from result encoding · d461caf3
      Vladimir Davydov authored
      The iproto subsystem switches between two output buffers once in a while
      in order to reclaim memory so passing a pointer to the output buffer
      directly to box_process_call() or box_process_eval() is incorrect in
      case the called function yields. To fix that, let's make these functions
      return the CALL/EVAL result in a port object, which then can then be
      encoded in msgpack with port_dump().
      
      Needed for #946
      d461caf3
  5. Jan 17, 2018
    • Vladimir Davydov's avatar
      Convert box/call.cc to C · 98189a54
      Vladimir Davydov authored
      We can do it for free now as all functions used by call.cc have already
      been converted to C and there's nothing in call.cc that really needs any
      C++ features.
      98189a54
  6. Aug 15, 2017
    • Georgy Kirichenko's avatar
      Add hot function reload for C procedures · 96938faf
      Georgy Kirichenko authored
      This patch adds ability to reload C procedures on the fly without
      downtime. To achive that, Tarantool loads a new copy of shared
      library and starts routing all new request to the new version.
      The previous version remains active until all started calls
      are finished. All shared libraries are loaded with RTLD_LOCAL,
      therefore two or more copies can co-exist without any problems.
      From now box loads all external modules via an unique symlink to
      avoid caching inside dlopen().
      
      If one of some module function is reloaded then all other functions
      from this module will be reloaded.
      
      Reviewed and heavily patched by Roman Tsisyk.
      
      Closes #910
      96938faf
  7. Aug 09, 2017
  8. Jul 28, 2017
  9. May 20, 2016
  10. Aug 12, 2015
Loading