From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Tue, 7 Aug 2018 21:09:50 +0300 From: Kirill Yukhin Subject: Re: [tarantool-patches] Re: [PATCH 1/1] Allow to ignore space formats via command line option Message-ID: <20180807180950.vexkeuhfaf7dbwyu@tarantool.org> References: <48493aa9dc94ded22aee27178c342343aa1b8b65.1533300304.git.v.shpilevoy@tarantool.org> <20180803134714.3eosv3bs2l7q5bxw@esperanza> <17a2a616-2e8a-7b2c-0500-78fabbee64d4@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <17a2a616-2e8a-7b2c-0500-78fabbee64d4@tarantool.org> To: tarantool-patches@freelists.org Cc: Vladimir Davydov , kostja@tarantool.org List-ID: Hello Vlad, On 03 авг 16:58, Vladislav Shpilevoy wrote: > On 03/08/2018 16:47, Vladimir Davydov wrote: > > On Fri, Aug 03, 2018 at 03:46:26PM +0300, Vladislav Shpilevoy wrote: > > > It is a common case that an instance is running on a version > > > 1.6.*, then is upgraded to 1.9 with box.schema.upgrade(). But > > > some of users has malformed space formats, and some of them got > > > and ignored errors on box.schema.upgrade(). Such half-upgraded > > > data can not be used to start a new version due to format > > > violations, and can not be rolled back because some of new system > > > spaces managed to be created. And we can not repair raw xlogs and > > > snapshots because we have no such tools and they are zipped. > > > > > > So it would be useful to have a command line option > > > --ignore-space-formats. It would allow to start an instance on > > > the spaces with malformed formats, fix them, create a snapshot > > > and then start with the formats turned on. > > > > > > Closes #3605 > > > > > > @TarantoolBot document > > > Title: Command line option '--ignore-space-formats' > > > The option allows to turn off space formats validation before > > > the instance is started. Usefull to fix malformed formats after > > > an upgrade from version < 1.7.5 to >= 1.7.5. > > > > Why a command line option? Why not a box.cfg parameter? > > Or, even better, box.cfg.force_recovery? > > > > I just do not want to clog box.cfg options with this > pure debug one. Force_recovery should skip violating > records instead of ignoring the format. But I don't > mind, for me all the 3 ways are ok and helps me to > repair customers with broken schemes. So if you want, > I can add a box.cfg option or reuse force_recovery > to always ignore space formats. What should I do? I think adding box.cfg{} parameter is more flexible approach. You can start w/ such option turned ON, and the turn it OFF w/o restart of whole instance. -- Regards, Kirill Yukhin