release: github.com/cloudfoundry/cf-mysql-release / 32

Github source: 6c0314b or master branch

In v32, we continue our efforts to solve issues and polish the release. v32 also continues our efforts to protect users from Galera’s limitations. We hope that these changes will make it explicit, upon moving to the service, that this is a clustered MySQL solution, and is not exactly the same a single-node deployments of MySQL/MariaDB.

The anchor change for this release is the addition of the default to disallow attempts to lock tables. This could be considered a breaking change for new applications, so please notify your users. It’s important to know, however, that table locks were never guaranteed to succeed, we’re just now making it explicit.

Deprecation Notice: This release does not remove the privilege to lock tables from existing bindings, so it won’t break any applications that are currently deployed. We plan to retroactively remove this permission in v33. [#131408317]

Features

  • service-broker created users should not be able to lock tables [#131223773]
  • Preseeded users should not be able to lock tables [#131576399]

Table-level locks are not distributed by Galera, so LOCK TABLES is not supported. Rather than mysteriously let an app appear to successfully get a lock, cf-mysql v32 will now explicitly reject those attempts.

Here’s how an app would see the interaction on previous versions of cf-mysql: MariaDB [cf_b236bd8f_38a4_4ee4_bf72_079fda8a6e47]> LOCK TABLES fruit WRITE ; Query OK, 0 rows affected (0.00 sec) MariaDB [cf_b236bd8f_38a4_4ee4_bf72_079fda8a6e47]> UNLOCK TABLES ; Query OK, 0 rows affected (0.00 sec)

And here’s what new applications bound to v32 and later will see: MariaDB [cf_eedd5768_9c6c_4388_ae0b_dc64f4022bf4]> LOCK TABLES fruit WRITE; ERROR 1044 (42000): Access denied for user 'uoY64cqdw6qyMtNl'@'%' to database 'cf_eedd5768_9c6c_4388_ae0b_dc64f4022bf4' MariaDB [cf_eedd5768_9c6c_4388_ae0b_dc64f4022bf4]> UNLOCK TABLES; Query OK, 0 rows affected (0.00 sec)

Switchboard Changes

  • Switchboard should not expose the profiling port by default [#129555175]
  • When switchboard is being stopped, the other node should be able to acquire the consul lock quickly. [#130918367]

When embedded in projects such as Diego, which use consul to choose a proxy to write to, failover is now on the order of one second.

Bug Fixes

  • Quota Enforcer should not block other queries from running [#131579997]
  • Proxy doesn’t have privilege to clear arp cache? [#130781143]
  • Arbitrator should be optional [PR 131]
  • verify-cluster-schemas errand is now using bosh links [PR 132]

As we move to BOSH 2.0, a user noted that the verify-cluster-schemas errand didn’t take advantage of bosh links properly. Merged, and thank you!

  • Actually attach persistent disk in bosh2 manifests [a549b36]

New Documentation

Logging Changes

  • galera healthcheck logs should go to syslog [#131564453]

Interestings

  • Allow override of interrupt_notify_cmd [#132017893]

Upload this release version to the Director:

$ bosh upload release https://bosh.io/d/github.com/cloudfoundry/cf-mysql-release?v=32

Modify deployment manifest to use this release in addition to any other used releases:

releases:
- {name: cf-mysql, version: "32"}

Finally add needed deployment jobs and specify values for required properties.

Optionally download sha1: a41bb2cadd4311bc9977ccc2c1fca07ba41ccef2 release tarball locally:

# ...or download it directly using curl
$ curl -L -J -O https://bosh.io/d/github.com/cloudfoundry/cf-mysql-release?v=32

# or with wget...
$ wget --content-disposition https://bosh.io/d/github.com/cloudfoundry/cf-mysql-release?v=32