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]
- 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 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]
- 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]
- Add new documentation for bosh2 + gobosh deployment procedure: new-deployment-procedure
- galera healthcheck logs should go to syslog [#131564453]
- 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 --sha1 a41bb2cadd4311bc9977ccc2c1fca07ba41ccef2
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