October 21, 2014

Even minor upgrades are not always safe

I already wrote couple of weeks ago I keep most of my systems on MySQL 4.1 still as they will not benefit from MySQL 5.0 features anyway while I do not want to likely loose a bit of performance and possibly deal with new bugs and changes introduced in MySQL 5.0 (You never know where to expect problems, ie some people reported JOIN breaking by upgrading to 5.0). Yes this stuff is in upgrade notes but if you run third party software it does not really help.

Today I had the yet another confirmation new bugs can be added even with minor updates and they could happen even pretty late in the product life time. In this case during 4.1 upgrade which is old stable version which is not as actively changed as 5.0

I upgraded MySQL 4.1.19 to 4.1.21 couple of weeks ago and later discovered sorting was broken in Mantis – bug tracking application we use for one of our projects. It is interesting it took a while to discover the problem – newly added bugs do not have to Make MySQL to crash or make queries return complete nonsense. Such cases when query results are just a bit wrong are very hard to track down.

This is why I do not rush with updates, keeping old MySQL version for long while if there are no problems with it (including security problems which would affect me)

About Peter Zaitsev

Peter managed the High Performance Group within MySQL until 2006, when he founded Percona. Peter has a Master's Degree in Computer Science and is an expert in database kernels, computer hardware, and application scaling.

Comments

  1. YEah….. joins broke for me too…… makes me mad :-/

    Anyway… if all I have to do is wrap my from clause with parens then thats easy enough…….

    Not sure why they decided to break ALL running mysql applications just for a couple parens. Not a good idea guys.

  2. peter says:

    Well,

    As I understand this was done to make MySQL more standard in handling joins, this required new code which was found to have this problem. It was however decided not to fix it as it break joins which were written not according to SQL standard.

    I think that was bad idea though. Large amount of MySQL users do not care about standard too much… just about their application working.

  3. Sean Chighizola says:

    The same thing happened to me with JOINS from 4.0 to 5.0 but I think it was a good thing to introduce standards. I believe the more advanced users will understand the differences between releases and account for them to ensure a successful upgrade which is always time consuming and requires man hours for testing. So upgrading should never be taken lightly.

  4. Sheeri says:

    It’s not about how much time you take — it’s about reading the release notes.

    And I cannot believe someone didn’t point out how awful comma joins are, and that the query should actually read:

    SELECT c.*, rst.starttimename
    FROM tblcourse c INNER JOIN tblcourse_category_extra ce USING (courseid)
    LEFT JOIN tblref_starttime rst USING (starttimeid)
    ORDER BY c.approveddate DESC

    So much cleaner this way!

Speak Your Mind

*