~mathiaz/ubuntu/lucid/mysql-dfsg-5.1/zap-bug-552053

« back to all changes in this revision

Viewing changes to storage/innobase/srv/srv0srv.c

  • Committer: Bazaar Package Importer
  • Author(s): Mathias Gug
  • Date: 2009-06-25 12:55:45 UTC
  • mfrom: (1.1.2 upstream) (0.1.3 experimental)
  • Revision ID: james.westby@ubuntu.com-20090625125545-m8ogs96zzsri74xe
Tags: 5.1.34-1ubuntu1
* Merge from debian experimental (and 5.0 from main), remaining changes:
  - debian/mysql-server-5.1.config:
    + ask for MySQL root password at priority high instead of medium so
      that the password prompt is seen on a default install. (LP: #319843)
    + don't ask for root password when upgrading from a 5.0 install.
  - debian/control:
    + Make libmysqlclient16-dev a transitional package depending on
      libmysqlclient-dev.
    + Make libmysqlclient-dev conflict with libmysqlclient15-dev.
    + Don't build mysql-server, mysql-client, mysql-common and
      libmysqlclient15-dev binary packages since they're still provided
      by mysql-dfsg-5.0.
    + Make mysql-{client,server}-5.1 packages conflict and
      replace mysql-{client,server}-5.0, but not provide
      mysql-{client,server}.
    + Depend on a specific version of mysql-common rather than the src
      version of mysql-dfsg-5.1 since mysql-common is currently part of
      mysql-dfsg-5.0.
    + Lower mailx from a Recommends to a Suggests to avoid pulling in
      a full MTA on all installs of mysql-server. (LP: #259477)
  - debian/rules:
    + added -fno-strict-aliasing to CFLAGS to get around mysql testsuite
      build failures.
    + install mysql-test and sql-bench to /usr/share/mysql/ rather than
      /usr/.
  - debian/additions/debian-start.inc.sh: support ANSI mode (LP: #310211)
  - Add AppArmor profile:
    - debian/apparmor-profile: apparmor profile.
    - debian/rules, debian/mysql-server-5.0.files: install apparmor profile.
    - debian/mysql-server-5.0.dirs: add etc/apparmor.d/force-complain
    - debian/mysql-server-5.0.postrm: remove symlink in force-complain/ on
      purge.
    - debian/mysql-server-5.1.README.Debian: add apparmor documentation.
    - debian/additions/my.cnf: Add warning about apparmor. (LP: #201799)
    - debian/mysql-server-5.1.postinst: reload apparmor profiles.
  - debian/additions/my.cnf: remove language option. Error message files are
    located in a different directory in MySQL 5.0. Setting the language
    option to use /usr/share/mysql/english breaks 5.0. Both 5.0 and 5.1
    use a default value that works. (LP: #316974)
  - debian/mysql-server-5.1.mysql.init:
    + Clearly indicate that we do not support running multiple instances
      of mysqld by duplicating the init script.
      (closes: #314785, #324834, #435165, #444216)
    + Properly parameterize all existing references to the mysql config
      file (/etc/mysql/my.cnf).
  - debian/mysql-server-5.0.postinst: Clear out the second password
    when setting up mysql. (LP: #344816)
  - mysql-server-core-5.1 package for files needed by Akonadi:
    + debian/control: create mysql-server-core-5.1 package.
    + debian/mysql-server-core-5.1.files, debian/mysql-server-5.1.files:
      move core mysqld files to mysql-server-core-5.1 package.
  - Don't package sql-bench and mysql-test file.
* Dropped changes:
  - debian/patches/92_ssl_test_cert.dpatch: certificate expiration in
    test suite (LP: #323755). Included upstream.
* Dropped from 5.0:
  - apparmor profile:
    - debian/control: Recommends apparmor >= 2.1+1075-0ubuntu6. All version
      of apparmor-profile (>hardy) are higher than this version.
    - debian/mysql-server-5.0.preinst: create symlink for force-complain/
      on pre-feisty upgrades, upgrades where apparmor-profiles profile is
      unchanged (ie non-enforcing) and upgrades where the profile
      doesn't exist. Support for pre-hardy upgrades is no longer needed.
* debian/mysql-server-5.1.postinst: fix debian-sys-maint user creation.

Show diffs side-by-side

added added

removed removed

Lines of Context:
283
283
 
284
284
os_fast_mutex_t srv_conc_mutex;         /* this mutex protects srv_conc data
285
285
                                        structures */
286
 
lint    srv_conc_n_threads      = 0;    /* number of OS threads currently
287
 
                                        inside InnoDB; it is not an error
288
 
                                        if this drops temporarily below zero
289
 
                                        because we do not demand that every
290
 
                                        thread increments this, but a thread
291
 
                                        waiting for a lock decrements this
292
 
                                        temporarily */
 
286
lint    srv_conc_n_threads      = 0;    /* number of transactions that
 
287
                                        have declared_to_be_inside_innodb
 
288
                                        set. It used to be a non-error
 
289
                                        for this value to drop below
 
290
                                        zero temporarily. This is no
 
291
                                        longer true. We'll, however,
 
292
                                        keep the lint datatype to add
 
293
                                        assertions to catch any corner
 
294
                                        cases that we may have
 
295
                                        missed. */
293
296
ulint   srv_conc_n_waiting_threads = 0; /* number of OS threads waiting in the
294
297
                                        FIFO for a permission to enter InnoDB
295
298
                                        */
328
331
/* Generate a innodb_status.<pid> file */
329
332
ibool   srv_innodb_status       = FALSE;
330
333
 
331
 
ibool   srv_stats_on_metadata   = TRUE;
332
 
 
333
334
ibool   srv_use_doublewrite_buf = TRUE;
334
335
ibool   srv_use_checksums = TRUE;
335
336
 
1022
1023
                return;
1023
1024
        }
1024
1025
 
 
1026
        ut_ad(srv_conc_n_threads >= 0);
 
1027
 
1025
1028
        if (srv_conc_n_threads < (lint)srv_thread_concurrency) {
1026
1029
 
1027
1030
                srv_conc_n_threads++;
1148
1151
                return;
1149
1152
        }
1150
1153
 
 
1154
        ut_ad(srv_conc_n_threads >= 0);
 
1155
 
1151
1156
        os_fast_mutex_lock(&srv_conc_mutex);
1152
1157
 
1153
1158
        srv_conc_n_threads++;
1169
1174
{
1170
1175
        srv_conc_slot_t*        slot    = NULL;
1171
1176
 
1172
 
        if (UNIV_LIKELY(!srv_thread_concurrency)) {
1173
 
 
1174
 
                return;
1175
 
        }
1176
 
 
1177
1177
        if (trx->mysql_thd != NULL
1178
1178
            && thd_is_replication_slave_thread(trx->mysql_thd)) {
1179
1179
 
1187
1187
 
1188
1188
        os_fast_mutex_lock(&srv_conc_mutex);
1189
1189
 
 
1190
        ut_ad(srv_conc_n_threads > 0);
1190
1191
        srv_conc_n_threads--;
1191
1192
        trx->declared_to_be_inside_innodb = FALSE;
1192
1193
        trx->n_tickets_to_enter_innodb = 0;