Oracle secrecy threatens open MySQL development
Oracle has been accused of hiding MySQL test cases and obfuscating revision history by MariaDB VP Sergei Golubchik. In a blog post entitled "Disappearing test cases or did another part of MySQL become closed source", Golubchik says they noticed that, according to the release notes, a number of bugs had been fixed in the most recent MySQL 5.5.27 release, but there were no test cases associated with any of the bug fixes – indeed, there are no tests associated with bug 61579 or 60926. When he asked on the MySQL internals mailing list, he was unable to get a response from Oracle as to whether this was new policy or an oversight.
One of the other changes he noted was that the test framework
mysql-test-run had been modified to not only run tests from
mysql-test but also from a new directory,
internal/mysql-test, which has not been published as part of the MySQL source. Golubchik also found commit mail that showed test cases were being put into this internal directory. The MariaDB VP considers test cases to be an "important part of the MySQL source tree" enabling storage engine developers, Linux distributors or even users to verify their patches to MySQL. The policy had always been that any correction for a bug would be accompanied by a test to ensure that once fixed, a bug stayed fixed, and Golubchik suggests that Oracle would not do without that assurance and therefore, something else is going on.
Regarding revision histories, Golubchick pointed to a recent post by Stewart Smith, Director of development at Percona. Smith has noted in his blog that the source code available in the MySQL BZR trees is out of sync with the source tarballs and binaries that Oracle ships. For example, the tree for MySQL 5.1 was last tagged for MySQL 5.1.63 but MySQL 5.1.65 has just been released. The 5.6 tree is further out of sync; MySQL 5.6.6-m9 has just been released but the BZR tree is "somewhere after 5.6.5". Stewart notes that "It is well within the rights of Oracle to not publish a BZR tree at all. What stings is the lack of communication".
Other MySQL developers have complained of bugs that were previously publicly available being set to "private" without Oracle explaining why. The bug in question in this case caused the server to crash and has been fixed in 5.5.27, but the release notes contain no evidence of that change.
Mark Callaghan, who is on the MySQL team at Facebook and was instrumental in accelerating the performance of the MySQL InnoDB plugins at Google, summarised the phenomena as "(less) open source". He noted that "MySQL is much harder to make better when tests are missing and bzr is no longer updated. My teams at Google and Facebook have made MySQL a lot better. I wish we didn't have to deal with problems like this that slow us down". Callaghan, while recalling that Oracle has been productive with MySQL, pointed out that the developer community has also helped improve MySQL, and hoped that Oracle will explain the changes.