Skip to content

2.1.2

Compare
Choose a tag to compare
@DifferentialOrange DifferentialOrange released this 14 Sep 07:45
· 8 commits to master since this release

Overview

This release adds functionality to the pool that prevents inappropriate use which can cause exit(1) or segmentation fault.

Breaking changes

There are no breaking changes in the release.

Changes

  • Forbid putting connections back to another pool (PR #68).

    local p1 = mysql.pool_create(pool_cfg)
    local p2 = mysql.pool_create(pool_cfg)
    
    local c = p1:get()
    p2:put(c)

    will now result in error throw:

    ---
    - error: 'Trying to put connection from pool table: 0x405b8868 to pool table: 0x40981288'
    ...
    

    Before this release, overflowing pool with put from other pool could result in application getting forever stuck or Tarantool process exit(1) because of fiber yield on garbage collect.

  • Close connection pool if queue overflowed on gc (PR #68).

    Queue overflow results in fiber yield on gc. Yielding in gc is prohibited since Tarantool 2.6.0-138-gd3f1dd720, 2.5.1-105-gc690b3337, 2.4.2-89-g83037df15, 1.10.7-47-g8099cb053. In previous versions yielding in gc resulted in undefined behavior for LuaJit traces compiler and could be the reason for segmentation faults.

Other

  • Publish rockspecs with CD on master update and new tags (PR #69).