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 中文
Previous 30 Newer Entries Showing entries 31 to 60 of 103 Next 30 Older Entries

Displaying posts with tag: bugs (reset)

Fun with Bugs #6 - MySQL 5.6.11
+2 Vote Up -0Vote Down
Last time I had written about bugs here it was a beginning of February, and hardly somebody could imagine that we were going to have 2 more months of winter, 2 more months to wait for next MySQL 5.6 GA release or that in 2 months and two weeks I'll be speaking about MySQL in public for 50 minutes based on my own presentation, and speaking about bugs (surely)...

In any case, MySQL 5.6.11 looks promising and had got a lot of bugs fixes (check at least this nice post by Todd Farmer). Time for me to get

  [Read more...]
MySQL: Every detail matters
+0 Vote Up -0Vote Down
Some bugs can have a high impact if it causes data corruption, security issues or simply causes MySQL to crash. But what about small bugs and small usability issues?

This entry from the MySQL 5.6.8 release notes is an interesting one:
InnoDB: On startup, MySQL would not start if there was a mismatch between the value of the innodb_log_file_size configuration option and the actual size of the ib_logfile* files that make up the redo log. This behavior required manually removing the redo log files after changing the value of


  [Read more...]
Granting privileges may break replication in MySQL 5.6.10
+2 Vote Up -0Vote Down

MySQL lets database administrators define access rights on many levels – from the ability to run global commands down to access to individual columns. Some rights can be applied to many different objects, such as for example SELECT or UPDATE, which can be granted globally or restricted only to certain databases or tables, while others are only meant for one specific purpose. An example of the latter could be FILE privilege, which permits user to interact with the file system from inside a database instance. It only makes sense as the global right and not anywhere else.

As any other activity that produces changes, GRANT statements are replicated to MySQL slaves. Regardless of the binary log format setting, such events are always logged in STATEMENT format. It is likely because the command needs to handle more than just updating the

  [Read more...]
17 Famous MySQL Bug Reporters
+8 Vote Up -0Vote Down
Every good bug report at http://bugs.mysql.com matters and may have important findings or useful information inside (even if it is declared as "Not a bug" or "Unsupported"), but based on my experience reports from some people should become a mandatory reading for both MySQL users who care about there servers, and Oracle engineers who process bugs.

Let me name a few of these people, "Top 17" of them based on my totally non-scientific, experience-based approach. You can click on the name to see the list of all bugs reported by this person, started from the recent ones (this may help to understand why I consider their input important).
  • Shane



  •   [Read more...]
    Fun with Bugs, Issue #5, February 2013
    +0 Vote Up -0Vote Down
    This week we had finally got MySQL 5.6.10 released as GA. It's a big deal, first MySQL GA release with the entire development process happened in Oracle from day one, quantum leap (as every second blog post says these days) in many areas, from scalability to replication performance, with InnoDB fulltext indexes and PERFORMANCE_SCHEMA improvements in between... So, this week it makes sense to concentrate on 5.6 GA and nothing else.

    As one of my former colleagues noted, no GA is bug free. Surely there are known and verified bugs in 5.6.10, but not that many. Let me just give you a list to check, in case you plan to upgrade/switch to 5.6 in production:

    Bug #68300 (crash when password expire is set for a user, in a corner case)





      [Read more...]
    Fun with Bugs, Issue #4, January 2013
    +3 Vote Up -3Vote Down
    This post will cover bugs I've "escalated" on Facebook during the period from January 28 till January 31. There were several serious bug reports noted, but many were taken from this great page that was created by Hartmut and updates every day. I had to find new source of fun, as Oracle reduced number of open and unassigned server bugs even more and processes new ones really fast this week. So, let's speak about some "Oldies but Goldies"...

    I'd like to start with Bug #39489 ("In progress" for 2 years) from one of my former bosses, Dean. I've noted recently that I still can see private comments made by me in older  reports, so I know

      [Read more...]
    Fun with Bugs, Issue #3, January 2013
    +2 Vote Up -3Vote Down
    This week in my posts on Facebook I paid attention mostly to bugs in MySQL 5.6.x, as I really expected to see 5.6 GA announcement soon. Maybe some of the bugs were the reason to postpone release a bit. Anyway, let's start with serious bug reports and some trends I've noted.

    I've noted that some of "Verified" bug reports somehow silently miss comments about their status in MySQL 5.6. Check Bug #68137, for example. It is repeatable on 5.5.31 (yet to be released, but it means 5.5.30 is cloned off and will be released soon) and 5.7.1. But 5.6.x is not mentioned anywhere. Does it mean 5.6.x is not affected? Surely, no. I hope it does NOT mean any attempt by Oracle to pretend that 5.6 is bugs free. Looks like Sveta had

      [Read more...]
    Fun with Bugs, Issue #2, January 2013
    +4 Vote Up -0Vote Down
    Looks like Issue #1 was popular enough based on number of reviews, so let me continue and tell you what kinds of fun I had with MySQL bug reports between January 12 and today. Once again, this is a kind of digest for my bugs related posts on Facebook during this period.

    I'd like to start with the latest open bug at the moment, Bug #68127. Looks like one can easily crash MySQL 5.6.9 by running few concurrent  SELECT * from threads queries against PERFORMANCE_SCHEMA. As PERFORMANCE_SCHEMA is enabled by default in 5.6.9 (now even such an ignorant person as me knows this, thanks to readers of my previous posts), this is a serious problem IMHO. Comparing to this, some missing or unclear information in the

      [Read more...]
    Life cycle of a MySQL bug
    +4 Vote Up -0Vote Down
    I had already written once on how to report bugs to http://bugs.mysql.com to have high chances for the bug report to be noted and processed fast. But why this matters at all? Because chances are high that bug report will never be opened and read by any MySQL developer in Oracle while its status is just "Open"! This is a short answer.

    If you are surprised (the story is different with, say, Percona Server bug reports, where just reported "New" bugs are often reviewed and commented on by many engineers) let me present more details on how bugs processing worked at least since 2005 when I joined MySQL AB and what important changes

      [Read more...]
    How to use PERFORMANCE_SCHEMA to check InnoDB mutex waits
    +4 Vote Up -0Vote Down

    Summary

    To set up InnoDB mutex waits monitoring via PERFORMANCE_SCHEMA in general with MySQL 5.6.9 you should do at least the following:
  • Start MySQL server with all mutex related instruments enabled at startup (performance_schema=ON by default on recent 5.6.x), like this:

    mysqld_safe --performance_schema_instrument='wait/synch/mutex/innodb/%=on' &
  • Connect to server and set up proper consumers explicitly, like this:

    UPDATE performance_schema.setup_consumers SET enabled = 'YES' WHERE name like 'events_waits%';
  • Run your problematic load.
  • Check waits using whatever tables you need, like this:

    mysql>  select event_name, count_star, sum_timer_wait from performance_schema.events_waits_summary_global_by_event_name where event_name like 'wait/synch/mutex/innodb%' and count_star






  •   [Read more...]
    MySQL, the strange case of a timestamp field
    +0 Vote Up -5Vote Down

    I discovered a feature (or bug) of MySQL timestamp fields. Maybe is documented in some place what I not read yet:

    When I add a new timestamp field to a table, MySQL magically adds some features to new timestamp field like a “trigger” and a default value to CURRENT_TIMESTAMP.

    There is test-case script:

    -- CREATING TABLE AND INSERT SOME DUMMY DATA
    mysql> CREATE TABLE t(
        -> id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
        -> val VARCHAR(50)
        -> );
    Query OK, 0 ROWS affected (0.15 sec)
     
    mysql> INSERT INTO t (val) VALUES ("foo") ,("var");
    Query OK, 2 ROWS affected (0.08 sec)
    Records: 2  Duplicates: 0  Warnings: 0
     
    mysql> SELECT * FROM t;
    +----+------+
    | id | val  |
    +----+------+
    |  1 | foo  |
    |  2 | var  |
    +----+------+
    2
      [Read more...]
    My take on privatized MySQL security bugs
    +4 Vote Up -0Vote Down

    A couple weeks ago I submitted Bug #67315: Crashing server by stored function referencing user defined variable in query. If you press that link, you can't see the bug (though I can as I submitted it).

    This is due to Oracle's policy for security-related bugs. Tomas Ulin, Vice President MySQL Development at Oracle , was kind enough to discuss Oracle's policy with me, and these are the key points as I understand them:

    Oracle's basic approach is to protect its customers. By publicizing security-bugs, Oracle's customers are vulnerable to black hatters attacks. Therefore Oracle takes measures and privatizes security bugs (crashing bugs can be treated as security bugs since a crash is a form of Denial of Service).

    But what of a bug reported in a RC version, as was in my case? There is no strict policy

      [Read more...]
    SkySQL and MariaDB Working Together to Keep MySQL an Open Ecosystem
    +8 Vote Up -9Vote Down

    I pledged, in my first post last month, that SkySQL will do its part to promote the best of MySQL and its community. Given the recent discovery that Oracle is no longer publishing test cases for bug fixes, and the dialogue surrounding it, it feels like the right time to share my thoughts on what this means to the open source collective, and what we can do – and are doing – about it.

    read more

    MySQL 5.6 replication gotchas (and bugs)
    +8 Vote Up -0Vote Down

    There has been a lot of talk about MySQL 5.6 replication improvements. With few exceptions, what I have seen was either marketing messages or hearsay. This means that few people have really tried out the new features to see whether they meet the users needs.

    As usual, I did try the new version in my environment. I like to form my own opinion based on experiments, and so I have been trying out these features since they have appeared in early milestones.

    What follows is a list of (potentially) surprising results that you may get when using MySQL 5.6.
    All the examples are made using MySQL 5.6.6.

    Gotcha #1 : too much noise

    I have already mentioned that MySQL 5.6 is too verbose when creating data directory. This also means that your error


      [Read more...]
    Security fixes in MySQL & critical patch updates
    +4 Vote Up -0Vote Down

    This is the third time MySQL has made an entry into the Oracle Critical Patch Update Advisory service. The first time, we at Team MariaDB came up with an analysis: Oracle’s 27 MySQL security fixes and MariaDB.

    Security is important to a DBA. Having vague explanations does no one any good. Even Oracle ACE Director Ronald Bradford chooses to ask some tough questions on this issue. Recently we found a bug in MySQL & MariaDB and did some

      [Read more...]
    The hidden mistake
    +5 Vote Up -0Vote Down

    There are mistakes that drive you crazy when you try to understand what went wrong.

    One of the most annoying and hard to catch was this, apparently harmless line:

    tungsten-sandbox -m 5.5.24 --topology all-masters -n 2 -p 7300 -l 12300 -r 10300 –t $HOME/mm -d tsb-mm

    The person reporting the error told me that the installation directory (indicated by "-t") was not taken into account.

    I usually debug by examples, so I copied the line, and pasted it into one of my servers. Sure enough, the application did not take trat option into account. The installation kept happening in the default directory.

    I knew that I had done a good job at making the application configurable, but I checked the code nonetheless. The only place where the default directory is mentioned is when the related variable is initialized. Throughout the code, there are no


      [Read more...]
    pt-diskstats 2.1 may return bad results
    +2 Vote Up -0Vote Down

    Do you rely on pt-diskstats from Percona Toolkit instead of the standard iostat a lot? There appears to be a nasty bug in pt-diskstats 2.1, which makes it produce bad results.

    I noticed some of the numbers I was getting weren’t right, so I tried running iostat and two different releases of pt-diskstat side by side. Here’s what I got:

    I can understand the slight differences between the lines in iostat and pt-diskstats 2.0 as they probably weren’t reading /proc/diskstats contents in the same moments, so the values they were seeing could be a bit different. However both lines practically show the same thing.

    On the other hand, the line based on the pt-diskstats

      [Read more...]
    MySQL must improve error messages
    +3 Vote Up -0Vote Down

    I just finished a database modification, a new foreign key creation  shouldn’t be take more than 5 mins, but I spent 2 hours because MySQL still have some useless error messages.

    There is a way to create a new foreign key:

    -- Create two tables foo and bar
    CREATE TABLE foo (
    	id INTEGER NOT NULL PRIMARY KEY,
    	bar_id INT NOT NULL    -- foreign key
    );
    CREATE TABLE bar (
    	id INTEGER NOT NULL PRIMARY KEY
    );
    -- Try to create a foreign key on `foo`
    ALTER TABLE foo
    	ADD FOREIGN KEY(bar_id) REFERENCES bar(SOME_FIELD) ;

    The last sentence returns a generic error message:

    Error Code: 1005. Can't create table 'temp.#sql-4bd7_11' (errno: 150)

    Everything would have been easier if I had noticed that wrong field name bar(SOME_FIELD), sometimes happens,  but if MySQL would have shown

      [Read more...]
    How to submit a good database bug report
    +2 Vote Up -0Vote Down
    When an open source project becomes popular, bug reports start flocking in. This is both good and bad news for the project developers. The good news is that someone is using the product, and they are finding ways of breaking it that we didn't think of. The bad news is that most of the times the reporters assume that the developers have super human powers, and that they will find what's wrong by the simple mentioning that a given feature is not working as expected. Unfortunately, it doesn't work that way. An effective bug report should have enough information that the ones in charge will be able to reproduce it and examine in lab conditions to find the problem. When dealing with databases and database tools, there are several cases, from simple to complex. Let's cover them in order.

    Installation issues

    This is often a straightforward case of lack of  [Read more...]
    Maatkit’s mk-query-digest filters
    +4 Vote Up -2Vote Down

    Have you ever seen BIG weird numbers in mk-query-digest report that just seem wrong? I have! Here’s one report I got today:

    ...
    # Attribute          total     min     max     avg     95%  stddev  median
    # ============     ======= ======= ======= ======= ======= ======= =======
    # Exec time          5088s     1us    171s     2ms   467us   104ms    28us
    # Lock time            76s       0      3s    26us    69us     3ms       0
    # Rows sent          9.80M       0   1.05M    3.50    0.99  642.32       0
    # Rows examine       5.59G       0  82.56M   2.00k    0.99  97.41k       0
    # Rows affecte     457.30k       0   2.62k    0.16    0.99    1.68       0
    # Rows read          2.16G       0  82.56M  788.53   21.45  82.91k    0.99
    # Bytes sent         2.14T       0   4.00G 781.27k   3.52k  47.84M   84.10
    #

      [Read more...]
    The MySQL Council addresses the public bug database issue
    +39 Vote Up -1Vote Down
    When I announced the MySQL Council, I said that among its roles there is that of being a bridge between the MySQL community and Oracle.
    It has come the time where we put this role to good use. Recently, there have been some concerns about the MySQL bugs database, which could be summarized in Mark Callaghan's post Where have the bugs gone?.
    The gist of the concerns is that there has been a change in the bugs handling, although we don't know what was changed and how. In short, there has been a total lack of communication. The MySQL Council has addressed the concerns about the public bug database in a recent meeting, and has taken several steps, like

      [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...]
    Data Corruption, DRBD and story of bug
    +2 Vote Up -0Vote Down

    Working with customer, I faced pretty nasty bug, which is actually not rare situation , but in this particular there are some lessons I would like to share.

    The case is pretty much described in bug 55981, or
    in pastebin.

    Everything below is related to InnoDB-plugin/XtraDB, but not to regular InnoDB ( i.e in MySQL 5.0)

    In short, if you use big BLOBS ( TEXT, MEDIUMBLOB, etc) (that allocated in external segment in InnoDB), you can get your database in trash state just executing update on row with blob and rolling back transaction twice ( on the same row)

    The keywords that diagnose you hit this bug is

    InnoDB: Serious error! InnoDB is trying to free page N
    InnoDB: though it is already marked as free in the



      [Read more...]
    How MySQL Workbench breaks itself
    +6 Vote Up -0Vote Down
    Once upon a time, there was a policy in MySQL not to add new features after the beta stage.
    To my surprise, MySQL Workbench 5.2.30 introduces a new feature, the query formatter. I gave it a try. The results are not extremely encouraging. Granted, it's a plugin and not a feature in the core application, but nonetheless one would expect something more stable in a GA release, especially since the plugin features are displayed in the main menu, and unless you have read the announcement, you couldn't easily tell the core from the plugins.
    This is what I have got in just a few minutes:

    Bug #58356: beautify function fails on CREATE TABLE
    Bug #58357: beutify function erases statement on CREATE




      [Read more...]
    Warnings are now actual problems
    +0 Vote Up -0Vote Down

    Yesterday, I reached a happy milestone in HailDB development. All compiler warnings left in the api/ directory (the public interface to the database engine) are now either probable/possible bugs (that we need to look at closely) or are warnings due to unfinished code (that we should finish).

    There’s still a bunch of compiler warnings that we’ve inherited (HailDB compiles with lots of warnings enabled) that we have to get through, but a lot will wait until after we update the core to be based on InnoDB 1.1.

    Federated tables bug
    +0 Vote Up -0Vote Down

    Scenario
    Recently came across this bug when trying out the federated storage engine for the first time in MySQL 5.1. Had a security table with user information on a remote server & database that needed to be joined to a local table housing site-specific permissions but only containing user IDs. I definitely wanted to use the “create server” method for the new table in case we later decided to link to a different table in the same remote database. A terrific little feature of the MySQL federated storage engine, to be sure.

    Problem
    The local server was the master in a replication pair. After executing the create server statement on the master, I proceeded to create the new federated table pointed to the new remote server. That’s when my mysql replication


      [Read more...]
    Two subtle bugs in OUTER JOIN queries
    +7 Vote Up -0Vote Down

    OUTER JOIN queries in SQL are susceptible to two very subtle bugs that I’ve observed a number of times in the real world. Daniel and I have been hammering out ways to automatically detect queries that suffer from these bugs, in a relatively new Maatkit tool called mk-query-advisor. It’s part of our series of advisor tools for MySQL. I wrote a blog post about it a while ago. Automated analysis of bad query patterns is a good thing to write tools to do, because catching buggy queries is hard work if you do it manually.

    Let’s dive right in and analyze these subtle bugs. Warning: if you don’t understand how SQL handles NULL, you’re not going to understand the following. Many

      [Read more...]
    Joining on range? Wrong!
    +4 Vote Up -0Vote Down

    The problem I am going to describe is likely to be around since the very beginning of MySQL, however unless you carefully analyse and profile your queries, it might easily go unnoticed. I used it as one of the examples in our talk given at phpDay.it conference last week to demonstrate some pitfalls one may hit when designing schemas and queries, but then I thought it could be a good idea to publish this on the blog as well.

    To demonstrate the issue let’s use a typical example – a sales query. Our data is a tiny store directory consisting of three very simple tables:

    PLAIN TEXT SQL:
  • CREATE TABLE `products` (
  •   `prd_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  •   `prd_name` varchar(32) NOT NULL,
  •   [Read more...]
    mysql_upgrade and Innodb Tables
    +1 Vote Up -1Vote Down

    Upgrading from MySQL 5.0 to MySQL 5.1 or Percona Server 5.1 you may run into issues with mysql_upgrade - it will identify some tables to be upgraded and will attempt to run REPAIR TABLE for them. This will fail with "The storage engine for the table doesn't support repair" error message. This seems to confuse a lot of people and I've seen people doing failsafe upgrade path of dumping and reloading complete database confused by this error message, which of course works, but can take quite a lot of time.

    Another solution is to simply run ALTER TABLE tbl ENGINE=INNODB which will rebuild table with new MySQL version and normally will fix issues identified by mysql_upgrade.
    You can use mysqlcheck -A --check-upgrade to identify tables which need to be fixed such a way.

    With Oracle intentions to


      [Read more...]
    The Linux Bloke chuckles that Linux runs some Windows software (including Windows itself!) better than Windows does!!!
    +0 Vote Up -0Vote Down

    Our Universe is full of ironies. But some ironies are just too hard to take.

    As you may have guessed (!!!), I am an avid Linux developer and user. Though once upon a time I did develop under Windows. Yes, believe it. And on one particular case, I got to be on a first-name basis with some of the Microsoft Software Engineers to resolve issues we were having with their OLE crap — what the Holy Gods of Microsoft decided to redub as “Active-X”.

    But I digress. For the past 10 years, I have been solid Linux and have defenestrated Windows for the most part. But as you know, you can never really completely eliminate Windows.  Despite your best efforts, it will always be (for now, at least) the 500 pound gorilla in any room you care to be in. The installed software base there is just staggering, and most have no Linux options.

    But then that’s why projects like Wine and the


      [Read more...]
    Previous 30 Newer Entries Showing entries 31 to 60 of 103 Next 30 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.