{"push_id":2463719649,"size":2,"distinct_size":2,"ref":"refs/heads/1.10","head":"9ec3b1a445a6335b0e25f9fefdaaaf7f7f17cd7d","before":"62ba7ba762f13a2273f6314121b0352b19c893b6","commits":[{"sha":"3bb5a4b114ca123fc55c59f0e7250c5787a76b64","author":{"name":"Vladimir Davydov","email":"962fd425226003962530d10a2c8ddc4a6d94fb88@gmail.com"},"message":"memtx: do not use space_vtab::commit_alter for freeing tuples\n\nWhen the last index of a memtx space is dropped, we need to delete all\ntuples stored in the space. We do it in space_vtab::commit_alter, but\nthis is wrong, because this function is not rolled back and so we may\nget use-after-free error if we fail to write a DDL operation to WAL.\nTo avoid that, let's delete tuples in index_vtab::commit_drop, which is\ncalled after WAL write.\n\nThere's a nuance here: index_vtab::commit_drop is called if an index is\nrebuilt (because essentially it is drop + create) so we must elevate the\nreference counter of every tuple added to the new index during rebuild\nand, respectively, drop all the references in index_vtab::abort_create,\nwhich is called if index creation is aborted for some reason. This also\nmeans that now we iterate over all tuples twice when a primary key is\nrebuilt - first to build the new index, then to unreference all tuples\nstored in the old index. This is OK as we can make the last step\nasynchronous, which will also speed up the more common case of space\ndrop.\n\nCloses #3289","distinct":true,"url":"https://api.github.com/repos/tarantool/tarantool/commits/3bb5a4b114ca123fc55c59f0e7250c5787a76b64"},{"sha":"9ec3b1a445a6335b0e25f9fefdaaaf7f7f17cd7d","author":{"name":"Vladimir Davydov","email":"962fd425226003962530d10a2c8ddc4a6d94fb88@gmail.com"},"message":"alter: zap space_vtab::commit_alter\n\nspace_vtab::commit_alter is implemented only by memtx, which uses it\nto set bsize for a new space. However, it isn't necessary to use\ncommit_alter for this - instead we can set bsize in prepare_alter and\nreset it in drop_primary_key, along with memtx_space::replace. Let's\ndo it and zap space_vtab::commit_alter altogether, because the callback\nis confusing: judging by its name it should be called after WAL write,\nbut it is called before.","distinct":true,"url":"https://api.github.com/repos/tarantool/tarantool/commits/9ec3b1a445a6335b0e25f9fefdaaaf7f7f17cd7d"}]}
{"actor":{"display_login":"locker"}}