From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Tue, 13 Nov 2018 12:31:11 +0300 From: Vladimir Davydov Subject: Re: [PATCH] box: ensure fiber processing box.cfg doesn't process messages from iproto Message-ID: <20181113093111.mg566ccnzz3ixgqb@esperanza> References: <20181110112436.1118-1-sergepetrenko@tarantool.org> <20181112114033.srhds7nlbmq7oogq@esperanza> <38805B24-8BC1-40C1-9C6B-18A7DD3F9EFB@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <38805B24-8BC1-40C1-9C6B-18A7DD3F9EFB@tarantool.org> To: Serge Petrenko Cc: tarantool-patches@freelists.org List-ID: On Tue, Nov 13, 2018 at 09:54:40AM +0300, Serge Petrenko wrote: > >> diff --git a/src/box/gc.c b/src/box/gc.c > >> index 467eecb91..8f0ecb0b9 100644 > >> --- a/src/box/gc.c > >> +++ b/src/box/gc.c > >> @@ -110,7 +110,7 @@ void > >> gc_set_wal_watcher(void) > >> { > > > > Please add a comment to the code, otherwise the patch looks OK. > > Added the comment, the diff’s below. Pushed to 1.10-features. > > > > >> wal_set_watcher(&gc.wal_watcher, "tx", gc_process_wal_event, > >> - cbus_process, WAL_EVENT_GC); > >> + NULL, WAL_EVENT_GC); > >> } > >> > >> void > > > diff --git a/src/box/gc.c b/src/box/gc.c > index 467eecb91..cefe1553f 100644 > --- a/src/box/gc.c > +++ b/src/box/gc.c > @@ -109,8 +109,18 @@ gc_process_wal_event(struct wal_watcher_msg *); > void > gc_set_wal_watcher(void) > { > + /* > + * Since the function is called from box_cfg() it is > + * important that we do not pass a message processing > + * callback to wal_set_watcher(). Doing so would cause > + * credentials corruption in the fiber executing > + * box_cfg() in case it processes some iproto messages. > + * Besides, by the time the function is called > + * tx_fiber_pool is already set up and it will process > + * all the messages directed to "tx" endpoint safely. > + */ > wal_set_watcher(&gc.wal_watcher, "tx", gc_process_wal_event, > - cbus_process, WAL_EVENT_GC); > + NULL, WAL_EVENT_GC);