1
1
local fio = require (' fio' )
2
+ local fiber = require (' fiber' )
2
3
3
4
local t = require (' luatest' )
4
5
@@ -176,7 +177,7 @@ pgroup.test_gc_on_storage = function(g)
176
177
})
177
178
end
178
179
179
- pgroup .test_close_gc_on_router = function (g )
180
+ pgroup .test_gc_rv_not_referenced_on_router = function (g )
180
181
local _ , err = g .cluster .main_server .net_box :eval ([[
181
182
local crud = require('crud')
182
183
local foo, err = crud.readview({name = 'foo'})
@@ -187,17 +188,65 @@ pgroup.test_close_gc_on_router = function(g)
187
188
collectgarbage("collect")
188
189
collectgarbage("collect")
189
190
]] )
191
+ fiber .sleep (1 )
190
192
t .assert_equals (err , nil )
191
193
local res = {}
192
- helpers .call_on_storages (g .cluster , function (server , replicaset , res )
194
+ helpers .call_on_storages (g .cluster , function (server )
193
195
local instance_res = server .net_box :eval ([[
194
196
return box.read_view.list()]] )
195
- res [ replicaset . alias ] = instance_res
196
- end , res )
197
- t .assert_equals (res , {[ " s-1 " ] = {}, [ " s-2 " ] = {}})
197
+ table.insert ( res , instance_res )
198
+ end , res )
199
+ t .assert_equals (res , {{}, {}, {}, {}})
198
200
199
201
end
200
202
203
+ pgroup .test_gc_rv_referenced_on_router = function (g )
204
+ helpers .insert_objects (g , ' customers' , {
205
+ {
206
+ id = 1 , name = " Elizabeth" , last_name = " Jackson" ,
207
+ age = 12 , city = " New York" ,
208
+ }, {
209
+ id = 2 , name = " Mary" , last_name = " Brown" ,
210
+ age = 46 , city = " Los Angeles" ,
211
+ }, {
212
+ id = 3 , name = " David" , last_name = " Smith" ,
213
+ age = 33 , city = " Los Angeles" ,
214
+ }, {
215
+ id = 4 , name = " William" , last_name = " White" ,
216
+ age = 81 , city = " Chicago" ,
217
+ },
218
+ })
219
+
220
+ local _ , err = g .cluster .main_server .net_box :eval ([[
221
+ local crud = require('crud')
222
+ local foo, err = crud.readview({name = 'foo'})
223
+ if err ~= nil then
224
+ return nil, err
225
+ end
226
+ collectgarbage("collect")
227
+ collectgarbage("collect")
228
+ rawset(_G, 'foo', foo)
229
+ ]] )
230
+ fiber .sleep (1 )
231
+ t .assert_equals (err , nil )
232
+ local obj , err = g .cluster .main_server .net_box :eval ([[
233
+ local crud = require('crud')
234
+ local foo = rawget(_G, 'foo')
235
+ local result, err = foo:select('customers', nil, {fullscan = true})
236
+
237
+ foo:close()
238
+ return result, err
239
+ ]] )
240
+
241
+ t .assert_equals (err , nil )
242
+ t .assert_equals (obj .rows , {
243
+ {1 , 477 , " Elizabeth" , " Jackson" , 12 , " New York" },
244
+ {2 , 401 , " Mary" , " Brown" , 46 , " Los Angeles" },
245
+ {3 , 2804 , " David" , " Smith" , 33 , " Los Angeles" },
246
+ {4 , 1161 , " William" , " White" , 81 , " Chicago" },
247
+ })
248
+ end
249
+
201
250
pgroup .test_close = function (g )
202
251
local _ , err = g .cluster .main_server .net_box :eval ([[
203
252
local crud = require('crud')
@@ -209,12 +258,12 @@ pgroup.test_close = function(g)
209
258
]] )
210
259
t .assert_equals (err , nil )
211
260
local res = {}
212
- helpers .call_on_storages (g .cluster , function (server , replicaset , res )
261
+ helpers .call_on_storages (g .cluster , function (server )
213
262
local instance_res = server .net_box :eval ([[
214
263
return box.read_view.list()]] )
215
- res [ replicaset . alias ] = instance_res
216
- end , res )
217
- t .assert_equals (res , {[ " s-1 " ] = {}, [ " s-2 " ] = {}})
264
+ table.insert ( res , instance_res )
265
+ end , res )
266
+ t .assert_equals (res , {{}, {}, {}, {}})
218
267
219
268
end
220
269
0 commit comments