List:Commits« Previous MessageNext Message »
From:He Zhenxing Date:April 15 2009 3:27am
Subject:Re: bzr commit into mysql-6.0-rpl branch (zhenxing.he:2841) Bug#38468
View as plain text  
Rafal Somla wrote:
> Hi Jason,
> 
> Here is my review in the format we use in backup team. We consider requests 
> compulsory - you have to address them somehow (by e.g., discussing if they are 
> reasonable). The suggestions are optional for you - it is fine to ignore them 
> completely.
> 
> STATUS
> ------
> Requested missing update for test result file.
> 
> REQUESTS
> --------
> 
> 1. You extend mysqlbinlog.test but I don't see the corresponding changes in the 
> result file (forgot to --record new results?). This should be fixed.
> 

The test code I added does not generate any output in the result file, I
did this on purpose, the 'diff_files' line checks weather this part of
the test passed or not.

> SUGGESTIONS
> -----------
> 
> 2. Declare **defaults_argv as static variable to discourage its use from other 
> modules.
> 3. I don't like that main() is using defaults_argv variable which is not 
> assigned within it. This obscures the logic and makes code harder to 
> understand/maintain. I suggest to go around this by declaring a new function 
> with the following specification:
> 
>   /**
>     @function free_args()
> 
>     @short Frees memory allocated by parse_args(). Should be always called after
>     a call to parse_args().
>   */
> 
> Then this function would be called from within main(). Of course you still need 
> a global variable to communicate between free_args() and parse_args(), but the 
> use of that variable would be limited to these two functions and this will be 
> easier to understand.
> 

I am thinking about another way now, moving the load_defaults out of
parse_args() to main(), so that we do not need to make defaults_argv
global.

> Rafal
> 
> He Zhenxing wrote:
> > #At file:///media/sdb2/hezx/work/mysql/bzrwork/b38468/6.0-rpl/ based on
> revid:alfranio.correia@stripped
> > 
> >  2841 He Zhenxing	2009-04-14
> >       BUG#38468 Memory leak detected when using mysqlbinlog utility
> >       
> >       There were two memory leaks in mysqlbinlog command, one was already
> >       fixed by previous patches, another one was that defaults_argv was
> >       set to the value of argv after parse_args, in which called
> >       handle_options after calling load_defaults and changed the value
> >       of argv, and caused the memory allocated for defaults arguments
> >       not freed.
> >       
> >       Fixed the problem by setting defaults_argv right after calling
> >       load_defaults.
> >      @ client/mysqlbinlog.cc
> >         change defaults_argv to global, and set its value right after
> load_defaults
> > 
> >     M  client/mysqlbinlog.cc
> >     M  mysql-test/t/mysqlbinlog.test

Thread
bzr commit into mysql-6.0-rpl branch (zhenxing.he:2841) Bug#38468He Zhenxing14 Apr
  • Re: bzr commit into mysql-6.0-rpl branch (zhenxing.he:2841) Bug#38468Rafal Somla14 Apr
    • Re: bzr commit into mysql-6.0-rpl branch (zhenxing.he:2841) Bug#38468He Zhenxing15 Apr
      • Re: bzr commit into mysql-6.0-rpl branch (zhenxing.he:2841) Bug#38468Rafal Somla15 Apr
  • Re: bzr commit into mysql-6.0-rpl branch (zhenxing.he:2841) Bug#38468Luís Soares17 Apr
    • Re: bzr commit into mysql-6.0-rpl branch (zhenxing.he:2841) Bug#38468He Zhenxing20 Apr