Home |  MySQL Buzz |  FAQ |  Feeds |  Submit your blog feed |  Feedback |  Archive |  Aggregate feed RSS 2.0 English Deutsch Español Français Italiano 日本語 Русский Português 中文
Showing entries 1 to 30 of 33 Next 3 Older Entries

Displaying posts with tag: QA (reset)

Making the MTR rpl suite GTID_MODE Agnostic
Employee_Team +1 Vote Up -0Vote Down

In MySQL 5.6 we introduced GTID_MODE as a new server option. A global transaction identifier (GTID) is a unique identifier created and associated with each transaction when it is committed on the server of origin (master). This identifier is unique not only to the server on which it originated, but is unique across all servers in a given replication setup. There is a 1-to-1 mapping between all transactions and all GTIDs. For additional information, please refer to the MySQL manual.

Prior to 5.6.17 and 5.7.4, we had GTID specific replication (referred to as “rpl” within the MTR suite) regression tests, and we had to separately run

  [Read more...]
Test improvements in 5.7.4
Employee_Team +2 Vote Up -0Vote Down

Here is a summary of the improvements to MTR test tool and suite in 5.7.4

New Tests

Added 69 new tests and enhanced several existing tests in the MTR suite.

Test Suite migration

Test suite migration activity is continuing and in 5.7.4 we completed migration of replication suites rpl/binlog and about 75% of main suite. Relevant WLs are:

  • WL#6921  Migrate rpl suite to run with innodb engine
  • WL#6922  Migrate binlog suite to run with innodb storage engine
  • WL#7263 Migrate myisam specific tests
  • WL#7405 Migrate partition tests
  [Read more...]
MySQL Server Maintenance Releases
Employee_Team +6 Vote Up -0Vote Down

After a version of MySQL Server has been declared GA, Oracle releases regular maintenance updates: the 5.6 GA was 5.6.10 and we are now at 5.6.17.

A lot of work goes into the maintenance releases. The purpose of this blog post is to show you a little bit of what happens on behind the curtains in the Oracle sweatshop that actually produces a maintenance release and to give you an insight into our thinking around testing, quality and bug fixing.

What goes into a maintenance release?
The short answer is “bug fixes”. These fall roughly into two classes,

  • The majority of bugs are chosen by Support for their relevance to customers and community and worked on by the

  [Read more...]
Migration of MTR suites to use InnoDB (continued …)
Employee_Team +2 Vote Up -0Vote Down

This is a continuation of my post on migration-of-mtr-suites-to-use-innodb . To set the context here is a quick recap.

MySQL 5.5 had the following changes with respect to the default engine

  • Default engine in the server changed from MyISAM to InnoDB
  • MTR modified to start server with the old default MyISAM. (This was required because historically most test results were recorded with MyISAM and many of them would fail if tests were run with the new server default,  InnoDB)
  • Tests retained as is in 5.5 and planned to migrate them to run with default engine in a future release

In MySQL 5.7 release we have started the migration project. Right in the beginning we realized that the switch of default engine had an unexpected side effect. MTR tests that

  [Read more...]
Migration of MTR suites to use Innodb
Employee_Team +4 Vote Up -0Vote Down

In MySQL 5.7.2 a new include file “–source include/force_myisam_default.inc“ made its appearance in most of the .test files in the MTR suite. If you were wondering about this read on.

I will explain this change in two blogs. The first will describe why we are doing this and the next will explain how it is being done.

In order to set the context let me delve a bit into history. Starting from MySQL 5.5, the default storage engine for new tables is InnoDB. This change was coupled with a reverse switch in mysql-test-run, which made MyISAM the default storage engine for the server started through MTR(mysql-test-run). As a result default storage engine in the server was innodb, but most tests were run with the old default MyISAM.

Let me explain why such a switch was required. The usual practice in MTR test development was to not specify an engine in create

  [Read more...]
The importance of backup verification
+1 Vote Up -0Vote Down
I have recently moved to HP's Advanced Technology Group which is a new group in HP and as part of that I will be blogging a lot more about the Open Source things I and others in HP work on day to day.  I thought I would kick this off by talking about work that a colleague of mine, Patrick Crews, worked on several months ago.

For those who don't know Patrick, he is a great Devops Engineer and QA.  He will find new automated ways of breaking things that will torture applications (and the Engineers who write them). I don't know if I am proud or ashamed to say he has found many bugs in code that I have written by doing the software equivalent of beating it with a sledgehammer.

Every Devops Engineer worth his salt knows that backups are important, but one thing that is regularly forgotten about is



  [Read more...]
Fun with Bugs #28 - regression bugs in MySQL 5.6
+0 Vote Up -0Vote Down
2013 was a great year for MySQL Community. New MySQL 5.6 GA release with its increased throughput, scalability and new features as well as more interaction and cooperation with MySQL Community from Oracle side brought us a lot of new perspectives and good feelings over the year.

Unfortunately new MySQL 5.6 GA release also reminded about old and well known problem with new MySQL versions. They all introduce new regression bugs. MySQL 5.6 had not become an exception.

Note that according to good old tradition (that I hope will be followed in 2014) bugs that demonstrate a regression (make some feature that previously worked stop functioning as intended in a new release) are marked with "regression" tag at http://bugs.mysql.com.



  [Read more...]
New Feature Qualification
Employee_Team +0 Vote Up -0Vote Down

Early this year Oracle released  MySQL 5.6 – Best MySQL Release Ever. This release delivered not only quality, but also quantity in terms of number of features. See a comprehensive list here . The blogs below also refer to the massive changes introduced in 5.6
http://www.mysqlperformanceblog.com/2013/01/27/mysql-5-6-improvements-in-the-nutshell/
http://www.flamingspork.com/blog/2013/03/05/mysql-code-size/

It is no mean task to deliver so many features with high quality that too for a feature rich product like MySQL. This was made possible by the



  [Read more...]
Fun with Bugs #12 - MySQL Cluster 7.3 GA
+0 Vote Up -0Vote Down
I had always tried to avoid all kinds of clusters, from Oracle RAC to MySQL NDB Cluster and Percona XtraDB Cluster, as much as possible. But these days clusters become common and it seems new developments in this area can not be just ignored. So, I decided to devote this issue of "Fun with Bugs" to MySQL Cluster 7.3, that was released as GA this week and still is in the news.

The release was mostly about adding foreign keys support (one of the features that some users were missing for years comparing to InnoDB and other cluster database solutions). At the same time, MySQL Cluster is now based on MySQL Server 5.6 code. I've decided to quickly check how community adopted 7.3 and what it means in terms of bug reports.

If one would just search for active bugs in version "7.3" at the public bugs



  [Read more...]
Fun with bugs #7, still mostly about 5.6.11
+1 Vote Up -0Vote Down
It looks like now Oracle will release new 5.6.x every 2 months, so while I'd happily write about bugs fixed in 5.6.12 we still have to wait for the official release to happen. I am too impatient to wait for 5.6.12, so let me write this post of a classical kind - just a summary of my MySQL bugs' related posts on Facebook since the previous one.

I have to start with replication-related bugs in 5.6.11 pointed out by Giuseppe Maxia:
  • Bug #69095 -  replication fails with GTID enabled and master changes from SBR to RBR. This bug is



  [Read more...]
Quick benchmarking trick
+3 Vote Up -0Vote Down
I have been doing quite a lot of benchmarking recently.
I needed to find a safe way of measuring the time spend by the database doing a long task, like catching up on a huge backlog of accumulated replication updates. The problem with measuring this event is that I can record when it starts, but I can't easily detect when it finishes. My initial approach was to monitor the database and count the tables rows to see when the task was done, but I ended up affecting the task performance with my additional queries. So I thought of another method.
Since I had control on what was sent from the master to the slave, I used the following:
The initial time is calculated as the minimum creation time of the databases that I know are created during the exercise. Let's say that I had 5 databases named from db1 to db5:
set @START = (select min(create_time) from




  [Read more...]
beware of the log
+3 Vote Up -0Vote Down
The MySQL general log is one of my favorite features for a quick debug. I especially like the ability of starting and stopping it on demand, which was introduced in MySQL 5.1.
However, using the general log has its drawbacks.
Today I was debugging a nasty bug that results from two statements that should be applied sequentially, but that were instead concurrent. These kind of problems are hard to cope with, as they are intermittent. Sometimes all goes well, and you get the expected result. And then, sometimes the statements fly on different directions and I stare at the screen, trying to understand where did they stray.
After some try-and-fail, I decided to enable the general log just before the offending statements, and to turn it down immediately after. Guess what? With the general log on, the test


  [Read more...]
Continuent is hiring - Support and QA engineers wanted
+3 Vote Up -0Vote Down
Continuent is hiring. The business is growing, the opportunities are piling up nicely, and we need to beef up the team with the addition of some new professionals.
The mist urgent posts to fill are a
QA Engineer and a Support Engineer, both experts of their specific trades and of database clustering.
We are looking at the matter without borders. Although it would be preferable to find candidates in


  [Read more...]
How to create a private cloud in your laptop
+4 Vote Up -0Vote Down
Everybody is moving to cloud architectures, although not all agree on what cloud computing is. In my limited understanding, and for the purpose of my work, cloud computing is a quick and versatile availability of virtual machines.
Now, if my purpose was deploying these machines, a private cloud in one host (namely, my laptop) would not make sense. But to create a flexible testing environment, it works very well.
Users of virtual machines software such as VMWare or VirtualBox may ask what's new here. You can create many virtual machines and use them within the same host.
True, but creating a new virtual machine in one minute without duplication of resources is not so easy. This is what this article


  [Read more...]
QA at Continuent. A serendipitous job.
+12 Vote Up -2Vote Down
A few days ago, I left the MySQL team at Oracle, after more than 4 years of work dedicated mostly to the MySQL community.
Someone will probably remember that, when I joined MySQL in 2006, I started my work in the QA team. It was no coincidence. My previous work as a consultant was very much focused on database development quality, even when my customers had approached me for different reasons.
Let's be frank. I am a minority. It's not common to find someone who is passionate about QA. I am aware of being a rare bird, who likes testing and bug searching, and doing all the little steps that all together improve the overall quality of a software

  [Read more...]
MySQL Workbench 5.2 – Code Statistics
Employee_Team +0 Vote Up -0Vote Down

A community member recently noted, that it takes quite a long time to compile MySQL Workbench. So he started wondering about how big the project actually is and asked for the Lines Of Code we have in our MySQL Workbench 5.2 repository.

We did not have this information at hand and therefore Alfredo ran some scripts during the weekend and generated this nice breakdown.

As you can see, we almost have 700k lines of code to maintain. Given that the MySQL Server itself has about 900k lines of code this is a pretty decent number I think, especially for a small team of 7.

Failing by choice. Another bug-vs-feature debate ends
+3 Vote Up -1Vote Down

A long standing bug

Among the many outstanding bugs for MySQL, there is one that has sparked a fierce discussion, not only in the bug report itself, but also in blogs, forums, mailing lists.
Bug #19027: MySQL 5.0 starts even with Fatal InnoDB errors was neglected for long time, until finally it got fixed, and it is available in MySQL 5.1.36.
First off, what is it about?
In short, if an engine doesn't initialize correctly, the MySQL server starts anyway, without the offending engine. Depending on how you use the failing engine, this could be either a minor annoyance or a complete disaster.
Annoyance: ARCHIVE fails to initialize, and you create tables with the default engine (usually MyISAM), and after a while you realize that the disk is filling up faster than you expected. You will find



  [Read more...]
some useful additions to query generator
Employee +0 Vote Up -0Vote Down
I've been on vacation this week, and decided to fine-tune some old QA code. Opened the manual to see the syntax for a select statement, and afterwards added to my random select generator the following:

  • all index hints (force, use, ignore, for join, for order by, for group by)
  • lock in share mode, for update
  • key_block_size for individual indexes
  • hash, btree, rtree for individual indexes
  • unique, fulltext, spatial for indexes
Especially important is the 'lock in share mode' addition. The reason is InnoDB
has many serious bugs with this locking mode (insert ... select, and others) in read committed mode.

So, I don't need multitable delete or update to reproduce those bugs, since I can just do a simple select locking in share mode. For example, the following bugs previously went without proper testcase




  [Read more...]
PHP 5.3.0 RC 2 released
Employee +0 Vote Up -0Vote Down
As others wrote, or as you can read on php.net or in my twitter feed we've released the second, long awaited, release candidate of PHP 5.3.0.

5.3 is  rather big release including support for namespaces, closures, phar archives, internatioalization support via the new intl extension, improved SQLite support, mysqlnd as backend for the MySQL exensions, impressive performance improvements, ... and tons of other bigger and minor things.

Even though this server is running 5.3 already it's not suggested to be used in production evironments, yet but I'd really like to encourage everybody to test it and give feedback! I'm also interested in positive feedback, not


  [Read more...]
MySQL QA at the Users Conference
Employee_Team +0 Vote Up -0Vote Down

If you liked the article on QA before releasing, you may want to mark your calendars for this session at the MySQL Users Conference and Expo 2009, where Omer BarNir and Trim Pershad will tell everything about Software Quality and Testing in MySQL.

Trim and Omer are veteran QA engineers, whose main goal is to improve the quality of MySQL products. Their session will tell you how the QA process evolved and what is going on right now.

How MySQL tests server binaries before a release
Employee +0 Vote Up -0Vote Down

What happens when the binary files of a fresh MySQL version is published on the web?

You may have noticed that the date on the release notes is not the same as the date the downloads are available. Sometimes there is a two weeks gap, sometimes more. Many people in the community have asked what is going on in the meantime.

The answer is a lot of hard work. The code is built for all the operating systems supported by MySQL, and tested in each platform (1). During this process, portability problems, test case glitches, and other things not caught in the normal daily build and test are fixed.

This task involves QA engineers, Build engineers, the Maintenance team, with help and cooperation from the Services, Development, and

  [Read more...]
How MySQL tests server binaries before a release
Employee +0 Vote Up -0Vote Down

What happens when the binary files of a fresh MySQL version is published on the web?

You may have noticed that the date on the release notes is not the same as the date the downloads are available. Sometimes there is a two weeks gap, sometimes more. Many people in the community have asked what is going on in the meantime.

The answer is a lot of hard work. The code is built for all the operating systems supported by MySQL, and tested in each platform (1). During this process, portability problems, test case glitches, and other things not caught in the normal daily build and test are fixed.

This task involves QA engineers, Build engineers, the Maintenance team, with help and cooperation from the Services, Development, and

  [Read more...]
How MySQL tests server binaries before a release
Employee +0 Vote Up -0Vote Down

What happens when the binary files of a fresh MySQL version is published on the web?

You may have noticed that the date on the release notes is not the same as the date the downloads are available. Sometimes there is a two weeks gap, sometimes more. Many people in the community have asked what is going on in the meantime.

The answer is a lot of hard work. The code is built for all the operating systems supported by MySQL, and tested in each platform (1). During this process, portability problems, test case glitches, and other things not caught in the normal daily build and test are fixed.

This task involves QA engineers, Build engineers, the Maintenance team, with help and cooperation from the Services, Development, and

  [Read more...]
Guest Post: Philip Stoev. If you love it break it. Getting started with the RQG
+0 Vote Up -0Vote Down



I am glad to host in these pages a post by Philip Stoev, a remarkable QA engineer, creative, resourceful, and a notorious troublemaker.
I met Philip by email in 2007, when I was exploring his Perl modules, which I used for one of my most rewarding articles. A few months later, when we met in person during the MySQL Developers Meeting, Philip was hired as a QA engineers, with my warmest recommendations.
This post is about the




  [Read more...]
Next MySQL Workbench 5.0.20 Release Almost Ready To Ship
Employee_Team +0 Vote Up -0Vote Down

As promised we are continuing our strong efforts after reaching GA and our announcement at the MySQL Users Conference (find a nice press article here).

Alfredo managed to fix a serious bug that almost seemed to be of random nature and happened on certain OnMouseDown and OnMouseUp events on the canvas.

Another thing that got improved is the drawing order of connections between table figures on the canvas. Previously the connections would be drawn on top of tables, resulting in a messy image. Now connections are always drawn behind tables. To make that work we had to remove the nesting of layers - a feature that does not really make sense for a database tool anyway.

The team will meet in the week of May 12th in Kiev where we are going to define the detailed plans for Workbench 5.1

  [Read more...]
MySQL Sandbox: Easily Using Multiple Database Servers in Isolation by Giuseppe Maxia
+0 Vote Up -0Vote Down

Here are my liveblogging notes from MySQL Sandbox: Easily Using Multiple Database Servers in Isolation by Giuseppe Maxia

Giuseppe has been a community member since 2001, and in the past year or so, a MySQL Employee.

He likes to give things away for free — he gave away T-shirts to the early arrivers to the workshop, and that’s why he’s giving away the sandbox as well. The sandbox is NOT an official MySQL product. It is released from GPL, available from http://sf.net/projects/mysql-sandbox.

Why the sandbox? To be able to set up 1 server in under 10 seconds. And to be able to set up multiple MySQL instances very

  [Read more...]
What Happens After Workbench 5.0 Becomes GA?
Employee_Team +0 Vote Up -0Vote Down

We have just officially released the WB 5.0 RC3 build and are planning the GA build to happen soon. One might ask, what is our criteria to call something GA? Well, it means that there must not be any known and verified P1 (crashing) and P2 (very serious bug with no workaround) bugs. Does it means that there are no bugs left or that we have implemented every feature request? No.

Therefore our efforts will not stop after the GA build. We still plan to get a new release out every 3rd week including all fixes and improvements that are necessary. This is a first list of things we are planning to release in a future GA release.

  • Bug fixes
    Most important are bug fixes of course. Please keep reporting bugs, you did a great job in the past - and if you do so, we will keep closing those bug reports as fast as we can.
  • Enable connection-end points dragging/reordering
    This

  [Read more...]
Tell me what your code looks like?
Employee_Team +0 Vote Up -0Vote Down

From time to time it is necessary to get a bigger picture of your project in terms of size, test coverage, code vs. comments ratio and others (aka metrics). While it is quite difficult to find a good (and free) code coverage tool for C++ there is already a very nice tool package called DPack, which is not only freely available but also gives us some very useful additions in our IDE. One of those features is code statistics.

(more…)

Section related to bug reporting was added to FAQ
Employee_Team +0 Vote Up -0Vote Down

For all new contributors devoted to quality, FAQ was slightly updated with new section.

putting it all together
Employee +0 Vote Up -0Vote Down
Last post was about Rainbow testing. So that's old news, and I lost count of the number of bugs it found, and have been fixed. Probably 30+ crashes.

Now, I have to put together all these odds & ends of code I wrote disparately over the last 18 months into a single collection to enable complete end-to-end testing.

I have now got roughly the following:

o) random table maker
o) query maker based on any tables, (using predefined rules)
o) data generator for any tables
o) complete charset collection for each valid character
o) database of mysql functions, data types
o) multi-threaded testing environment for any queries
o) query results comparer for any queries
o) rainbow, which will provide help in making good coverage of functions, etc.

What's needed still? Well, I would like 56 hours in a day ... More














  [Read more...]
Showing entries 1 to 30 of 33 Next 3 Older Entries

Planet MySQL © 1995, 2014, Oracle Corporation and/or its affiliates   Legal Policies | Your Privacy Rights | Terms of Use

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.