Skip to content
Snippets Groups Projects
user avatar
Vladimir Davydov authored
This patch fixes the following test failure:

 | --- box/push.result	Thu Jan 24 13:10:04 2019
 | +++ var/001_box/push.result	Thu Jan 24 13:13:08 2019
 | @@ -536,17 +536,3 @@
 |  ---
 |  ...
 |  chan_disconnected:get()
 | ----
 | -- true
 | -...
 | -chan_push:put(true)
 | ----
 | -- true
 | -...
 | -chan_push:get()
 | ----
 | -- Session is closed
 | -...
 | -box.schema.func.drop('do_long_and_push')
 | ----
 | -...

The problem occurs because the main fiber may close the connection
before do_long_and_push sets the session.on_disconnect trigger, in
which case chan_disconnected:get() will never return. Fix this by
setting the trigger in the main fiber and adding another channel
to wait for do_long_and_push function to start. Also, don't forget
to clear the trigger once the test is complete.

Fixes commit 43af2de2 ("session: outdate a session of a closed
connection").

Closes #3947
40251c60
History

Tarantool

Build Status Code Coverage Telegram Slack Gitter Google Groups

https://tarantool.io/en/

Tarantool is an in-memory database and application server.

Key features of the application server:

  • 100% compatible drop-in replacement for Lua 5.1, based on LuaJIT 2.1. Simply use #!/usr/bin/tarantool instead of #!/usr/bin/lua in your script.
  • full support for Lua modules and a rich set of own modules, including cooperative multitasking, non-blocking I/O, access to external databases, etc

Key features of the database:

  • MsgPack data format and MsgPack based client-server protocol
  • two data engines: 100% in-memory with optional persistence and a 2-level disk-based B-tree, to use with large data sets
  • multiple index types: HASH, TREE, RTREE, BITSET
  • asynchronous master-master replication
  • authentication and access control
  • the database is just a C extension to the application server and can be turned off

Supported platforms are Linux/x86 and FreeBSD/x86, Mac OS X.

Tarantool is ideal for data-enriched components of scalable Web architecture: queue servers, caches, stateful Web applications.

To download and install Tarantool as a binary package for your OS, please visit https://tarantool.io/en/download/.

To build Tarantool from source, see detailed instructions in the Tarantool documentation at https://tarantool.io/en/doc/2.1/dev_guide/building_from_source/.

Please report bugs at https://github.com/tarantool/tarantool/issues We also warmly welcome your feedback in the discussion mailing list, tarantool@googlegroups.com.

Thank you for your interest in Tarantool!