[Tarantool-patches] [PATCH v2 0/3] Fiber storage leak

Vladislav Shpilevoy v.shpilevoy at tarantool.org
Fri Jan 17 00:54:20 MSK 2020


The patchset makes fiber.storage be always deleted. Regardless of
where was it created - in a fiber born in the Lua land, or in a
fiber serving IProto requests and accessing Lua.

That removes

  - a leak occurred each time when fiber storage was created for
    an IProto request;

  - a possibility to see previous request's artifacts left in
    fiber.storage;

And makes possible to use fiber.storage as request-local data.

Branch: http://github.com/tarantool/tarantool/tree/gerold103/gh-4662-fiber-storage-leak
Issue: https://github.com/tarantool/tarantool/issues/4662

Changes in v2:
- Renamed back fiber.on_cleanup -> fiber.on_stop;
- Removed dead code from box_process_call/eval(), which is now
  handled by iproto.

Vladislav Shpilevoy (3):
  fiber: unref fiber.storage via global Lua state
  fiber: destroy fiber.storage created by iproto
  box: remove dead code from box_process_call/eval()

 src/box/call.c                               | 28 +------
 src/box/iproto.cc                            | 44 ++++++++--
 src/box/txn.c                                |  1 +
 src/lib/core/fiber.c                         | 18 +++-
 src/lib/core/fiber.h                         | 14 +++-
 src/lua/fiber.c                              | 35 ++++++--
 test/app/gh-4662-fiber-storage-leak.result   | 88 ++++++++++++++++++++
 test/app/gh-4662-fiber-storage-leak.test.lua | 43 ++++++++++
 8 files changed, 230 insertions(+), 41 deletions(-)
 create mode 100644 test/app/gh-4662-fiber-storage-leak.result
 create mode 100644 test/app/gh-4662-fiber-storage-leak.test.lua

-- 
2.21.1 (Apple Git-122.3)



More information about the Tarantool-patches mailing list