List:Commits« Previous MessageNext Message »
From:Sergei Golubchik Date:February 26 2009 11:16am
Subject:Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:2812)
Bug#40552
View as plain text  
Hi, Alexey!

On Feb 26, Alexey Kopytov wrote:
> Hi Sergei,
>
> Sergei Golubchik wrote:
>> Hi, Alexey!
>> On Feb 25, Alexey Kopytov wrote:
>>> #At file:///Users/kaa/src/bzr/bugteam/bug40552/my51-bug40552/ based on 
>>> revid:azundris@stripped
>>>
>>>  2812 Alexey Kopytov	2009-02-25
>>>       Fix for bug #40552: Race condition around default_directories       
>>>                      in load_defaults()              load_defaults(), 
>>> my_search_option_files() and       my_print_default_files()  utilized a 
>>> global variable       containing  a pointer to thread local memory. This 
>>> could lead       to race conditions when those functions were called with 
>>> high       concurrency.              Fixed by changing the interface of 
>>> the said functions to avoid       the necessity for using a global 
>>> variable.
>> Not a good idea. load_defaults() is de facto part of the API, we should
>> try to avoid chaning the prototype.
>
> First, I don't see a way to avoid that w/o introducing new locks.
> Second, I don't see how changing the load_defaults() prototype could affect 
> anyone. Yes, it's a part of the mysys "API", but how many programs outside 
> of our source tree use it? Please clarify why you think it's a bad idea.

No, I mean it's a part of the client API. It's documented in the books
and examples (just google for it), as it's the only way for the clients
to implement the compatible command-line option handling.

I wouldn't care about the prototype stability if it would be only used
by our tools.

As for the "a way to avoid"...

For example, rename load_defaults() to my_load_defaults(), fix it your
way - with an argument - and create a new load_defauls() function with
the old prototype, that calls my_load_defaults() with this argument
being global default_directories.

Regards / Mit vielen GrЭъen,
Sergei

-- 
   __  ___     ___ ____  __
  /  |/  /_ __/ __/ __ \/ /   Sergei Golubchik <serg@stripped>
 / /|_/ / // /\ \/ /_/ / /__  Principal Software Engineer/Server Architect
/_/  /_/\_, /___/\___\_\___/  Sun Microsystems GmbH, HRB MЭnchen 161028
       <___/                  Sonnenallee 1, 85551 Kirchheim-Heimstetten
GeschДftsfЭhrer: Thomas Schroeder, Wolfgang Engels, Dr. Roland Boemer
Vorsitzender des Aufsichtsrates: Martin HДring
Thread
bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:2812)Bug#40552Alexey Kopytov25 Feb
  • Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:2812)Bug#40552Sergei Golubchik25 Feb
    • Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:2812)Bug#40552Alexey Kopytov26 Feb
      • Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:2812)Bug#40552Sergei Golubchik26 Feb
        • Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:2812)Bug#40552Paul DuBois26 Feb
    • Re: bzr commit into mysql-5.1-bugteam branch (Alexey.Kopytov:2812)Bug#40552Konstantin Osipov26 Feb