Commit graph

46 commits

Author SHA1 Message Date
Davi Arnaut
2887dd45b7 Bug#48983: Bad strmake calls (length one too long)
MySQL 5.1 specific fixes.
2009-12-18 17:14:09 -02:00
Alexey Kopytov
752cbab9a4 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.

Since we cannot change load_defaults() prototype for API
compatibility reasons, it was renamed my_load_defaults().
Now load_defaults() is a thread-unsafe wrapper around
a thread-safe version, my_load_defaults().
2009-02-27 11:26:06 +02:00
monty@mysql.com/narttu.mysql.fi
088e2395f1 WL#3817: Simplify string / memory area types and make things more consistent (first part)
The following type conversions was done:

- Changed byte to uchar
- Changed gptr to uchar*
- Change my_string to char *
- Change my_size_t to size_t
- Change size_s to size_t

Removed declaration of byte, gptr, my_string, my_size_t and size_s. 

Following function parameter changes was done:
- All string functions in mysys/strings was changed to use size_t
  instead of uint for string lengths.
- All read()/write() functions changed to use size_t (including vio).
- All protocoll functions changed to use size_t instead of uint
- Functions that used a pointer to a string length was changed to use size_t*
- Changed malloc(), free() and related functions from using gptr to use void *
  as this requires fewer casts in the code and is more in line with how the
  standard functions work.
- Added extra length argument to dirname_part() to return the length of the
  created string.
- Changed (at least) following functions to take uchar* as argument:
  - db_dump()
  - my_net_write()
  - net_write_command()
  - net_store_data()
  - DBUG_DUMP()
  - decimal2bin() & bin2decimal()
- Changed my_compress() and my_uncompress() to use size_t. Changed one
  argument to my_uncompress() from a pointer to a value as we only return
  one value (makes function easier to use).
- Changed type of 'pack_data' argument to packfrm() to avoid casts.
- Changed in readfrm() and writefrom(), ha_discover and handler::discover()
  the type for argument 'frmdata' to uchar** to avoid casts.
- Changed most Field functions to use uchar* instead of char* (reduced a lot of
  casts).
- Changed field->val_xxx(xxx, new_ptr) to take const pointers.

Other changes:
- Removed a lot of not needed casts
- Added a few new cast required by other changes
- Added some cast to my_multi_malloc() arguments for safety (as string lengths
  needs to be uint, not size_t).
- Fixed all calls to hash-get-key functions to use size_t*. (Needed to be done
  explicitely as this conflict was often hided by casting the function to
  hash_get_key).
- Changed some buffers to memory regions to uchar* to avoid casts.
- Changed some string lengths from uint to size_t.
- Changed field->ptr to be uchar* instead of char*. This allowed us to
  get rid of a lot of casts.
- Some changes from true -> TRUE, false -> FALSE, unsigned char -> uchar
- Include zlib.h in some files as we needed declaration of crc32()
- Changed MY_FILE_ERROR to be (size_t) -1.
- Changed many variables to hold the result of my_read() / my_write() to be
  size_t. This was needed to properly detect errors (which are
  returned as (size_t) -1).
- Removed some very old VMS code
- Changed packfrm()/unpackfrm() to not be depending on uint size
  (portability fix)
- Removed windows specific code to restore cursor position as this
  causes slowdown on windows and we should not mix read() and pread()
  calls anyway as this is not thread safe. Updated function comment to
  reflect this. Changed function that depended on original behavior of
  my_pwrite() to itself restore the cursor position (one such case).
- Added some missing checking of return value of malloc().
- Changed definition of MOD_PAD_CHAR_TO_FULL_LENGTH to avoid 'long' overflow.
- Changed type of table_def::m_size from my_size_t to ulong to reflect that
  m_size is the number of elements in the array, not a string/memory
  length.
- Moved THD::max_row_length() to table.cc (as it's not depending on THD).
  Inlined max_row_length_blob() into this function.
- More function comments
- Fixed some compiler warnings when compiled without partitions.
- Removed setting of LEX_STRING() arguments in declaration (portability fix).
- Some trivial indentation/variable name changes.
- Some trivial code simplifications:
  - Replaced some calls to alloc_root + memcpy to use
    strmake_root()/strdup_root().
  - Changed some calls from memdup() to strmake() (Safety fix)
  - Simpler loops in client-simple.c
2007-05-10 12:59:39 +03:00
malff/marcsql@weblab.(none)
0055056c91 Merge weblab.(none):/home/marcsql/TREE/mysql-5.1-base
into  weblab.(none):/home/marcsql/TREE/mysql-5.1-merge
2007-01-02 14:18:13 -07:00
kent@kent-amd64.(none)
be15e3bc15 Merge mysql.com:/home/kent/bk/main/mysql-5.0
into  mysql.com:/home/kent/bk/main/mysql-5.1
2006-12-23 20:20:40 +01:00
kent@mysql.com/kent-amd64.(none)
226a5c833f Many files:
Changed header to GPL version 2 only
2006-12-23 20:17:15 +01:00
anozdrin/alik@booka.
b534ca4bc0 Fix for the following bugs:
- BUG#22306: STOP INSTANCE can not be applied for instances in Crashed,
    Failed and Abandoned;
  - BUG#23476: DROP INSTANCE does not work
  - BUG#23215: STOP INSTANCE takes too much time

BUG#22306:
The problem was that STOP INSTANCE checked that mysqld is up and running.
If it was not so, STOP INSTANCE reported an error. Now, STOP INSTANCE
reports an error if the instance has been started (mysqld can be down).

BUG#23476:
The problem was that DROP INSTANCE tried to stop inactive instance. The fix is
trivial.

BUG#23215:
The problem was that locks were not acquired properly, so the
instance-monitoring thread could not acquire the mutex, holded by the
query-processing thread.

The fix is to simplify locking scheme by moving instance-related information to
Instance-class out of Guardian-class. This allows to get rid of storing a
separate list of Instance-information in Guardian and keeping it synchronized
with the original list in Instance_map.
2006-11-30 12:23:55 +03:00
anozdrin/alik@booka.
3e042c6d7b Polishing:
- change some return types from int to bool;
  - add [ERROR] tag to log_error() output;
  - add [INFO] tag to log_info() output;
  - change log messages to be more consistent.
2006-11-21 17:47:14 +03:00
kostja@bodhi.local
2fc4562d63 Port cleanups, trivial refactoring and code rearrangements from
Alik's patch for BUG#22306: STOP INSTANCE can not be applied for 
instances in Crashed, Failed and Abandoned" to ease review process.
Evaluate global variable linuxthreads before starting threads to avoid
a race.
2006-11-18 01:34:44 +03:00
kostja@bodhi.local
2f69dfb28f Cleanup: manually port the polishing parts from Alik's changeset for
BUG#22306: STOP INSTANCE can not be applied for instances in Crashed,
Failed and Abandoned
2006-11-16 23:36:20 +03:00
anozdrin/alik@alik.
f40a9d2ece Fix for BUG#17486: IM: race condition on exit.
The problem was that IM stoped guarded instances on shutdown,
but didn't wait for them to stop.

The fix is to wait for guarded instances to stop before exitting
from the main thread.

The idea is that Instance-monitoring thread should add itself
to Thread_registry so that it will be taken into account on shutdown.
However, Thread_registry should not signal it on shutdown in order to
not interrupt wait()/waitpid().
2006-10-24 18:23:16 +04:00
kostja@bodhi.local
2fecf79536 Merge bodhi.local:/opt/local/work/mysql-5.0-runtime
into  bodhi.local:/opt/local/work/mysql-5.1-runtime-merge
2006-10-23 12:35:56 +04:00
petr/cps@mysql.com/owlet.local
96c6f6f5c2 Fix Bug #19368 Failure in "flush_instances" causes assert in Thread_registry
Stop guardian and all the rest of threads before shutdown in case of an error
2006-10-05 22:07:21 +04:00
anozdrin@mysql.com
42ef881906 Merge mysql.com:/home/alik/MySQL/devel/5.0-to-be-merged
into  mysql.com:/home/alik/MySQL/devel/5.1-merged
2006-06-20 18:28:28 +04:00
anozdrin@mysql.com
a992833d83 The second fix for BUG#19391: IM fails to start after two executions. 2006-06-19 14:16:10 +04:00
anozdrin@mysql.com
b551722333 Fix compilation problems on Windows and SUN Solaris. 2006-05-19 04:51:23 +04:00
anozdrin@mysql.com
c1113af15c This is an implementation of two WL items:
- WL#3158: IM: Instance configuration extensions;
  - WL#3159: IM: --bootstrap and --start-default-instance modes

The following new statements have been added:
  - CREATE INSTANCE;
  - DROP INSTANCE;

The behaviour of the following statements have been changed:
  - SET;
  - UNSET;
  - FLUSH INSTANCES;
  - SHOW INSTANCES;
  - SHOW INSTANCE OPTIONS;
2006-05-18 18:57:50 +04:00
petr@mysql.com
ce4fd24da2 Merge pchardin@bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/cps/mysql/devel/im/5.0-im-fix-race
2006-02-21 15:59:41 +03:00
petr@mysql.com
cb5e54e1bd Fix race condition: instance map wasn't locked for the
duration of the whole 'flush instances'. As a consequence,
it was possible to query instance map, while it is in the
inconsistent state. The patch was reworked after review.
2006-02-21 15:57:56 +03:00
petr@mysql.com
1c7bc08537 a bunch of IM fixes from the GUI team 2006-02-10 02:15:55 +03:00
jani@a193-229-222-105.elisa-laajakaista.fi
8d3036c35e Some minor fixes revealed as warnings by
Intel compiler.
2005-09-23 21:28:56 +03:00
konstantin@mysql.com
344144ad14 Cleanup the instance manager code. 2005-08-29 23:29:35 +04:00
petr@mysql.com
a64f264e4b IM port fixes: fix crash on startup, add more error checking, get rid of unnecessary code. 2005-08-05 14:35:30 +04:00
reggie@fedora.(none)
72c0a021e9 Merge rburnett@bk-internal.mysql.com:/home/bk/mysql-5.0
into  fedora.(none):/home/reggie/bk/im_patch
2005-08-04 09:33:44 -05:00
reggie@fedora.(none)
8cb3bd41c8 alot of formatting changes that came out of JimW's review 2005-08-03 16:20:27 -05:00
petr@mysql.com
9644bc3e2b Post-review fixes for WL#2713 "Change IM behaviour so, that it only reads and alters one config file only." 2005-07-21 22:40:53 +04:00
petr@mysql.com
b9fcdfbb0f WL #2713 Change IM behaviour so, that it only reads and alters one config file only.
Implemented on brian's request.
2005-07-21 14:21:23 +04:00
reggie@fedora.(none)
f3de5d6b69 initial import of Windows port of IM. 2005-07-20 10:55:40 -05:00
petr@mysql.com
65d79b9d83 post-review fixes 2005-06-07 15:47:02 +04:00
petr@mysql.com
180d0ed620 post-review fixes 2005-05-16 01:54:02 +04:00
petr@mysql.com
b072eaa3da Fix for AIX compilation failure: sacred knowledge of my_global.h nature (it should be
included before any other include) was hidden from me.
2005-03-22 02:04:14 +03:00
petr@mysql.com
912dfdfa34 post-review fixes + cleanup + some minor fixes 2005-02-27 18:41:34 +03:00
petr@mysql.com
dbc0937dd0 made IM to work with --defaults-file smoothly 2005-02-18 14:58:30 +03:00
petr@mysql.com
59d8e51150 some more cleanups and fixes 2005-02-15 04:38:33 +03:00
petr@mysql.com
6b50b5b087 Post-review fixes + some bugs fixed + several minor features 2005-02-11 14:21:59 +03:00
petr@mysql.com
63acf2a8be Various fixes (cleanups, valgrind, makefiles, ...) 2005-02-03 20:48:58 +03:00
petr@mysql.com
84d5b3a332 more fixes for IM to substitude mysqld_safe in startup scripts 2005-01-31 23:54:08 +03:00
petr@mysql.com
ee08b749dd IM mostly fixed according to Brian's directions. Will need to do some additional option handling and cleanups 2005-01-25 13:54:56 +03:00
petr@mysql.com
d40e0935ce fix autobuild failures 2004-12-12 20:59:15 +03:00
petr@mysql.com
d2115d133d Some minor IM fixes 2004-11-15 14:53:30 +03:00
petr@mysql.com
b2e3626e52 fix for the IM linking problem 2004-11-06 02:14:56 +03:00
petr@mysql.com
13570dcf9f linking problem fix 2004-11-04 02:42:22 +03:00
petr@mysql.com
d3dc041dd1 post-review fixes 2004-11-02 10:11:03 +03:00
petr@mysql.com
3c33df381f more review fixes 2004-10-27 10:21:48 +04:00
petr@mysql.com
73aeeaf4ed Various post-review fixes 2004-10-26 23:22:12 +04:00
petr@mysql.com
a8e2db4ecd Intermediate commit - just to make new files visible to bk in the new
tree
2004-10-23 11:32:52 +04:00