Open
Description
The сache in the module DLL does not respect module hot reloads.
This entails an on_replace trigger duplication if hot reload occurs:
tarantool> box.space._ddl_sharding_func:on_replace()
---
- - 'function: 0x41d07030'
...
tarantool> for k in pairs(package.loaded) do if k:startswith('ddl') then package.loaded[k]=nil end end
---
...
tarantool> ddl = require('ddl')
---
...
tarantool> ddl.bucket_id('users', 42)
---
- 42
...
tarantool> box.space._ddl_sharding_func:on_replace()
---
- - 'function: 0x41d07030'
- 'function: 0x41dccaf8'
...
There are some ideas how to keep a state between reloads in Consider protecting the default instance from well known hot reload implementations conf#2 (at end of the issue description).