Nov
30
2010
--

Zend Framework 1.11.1 Released

The Zend Framework team announces the immediate availability of Zend
Framework 1.11.1, our first maintenance release in the 1.11 series. This
release includes around 80 bug fixes — many due to the highly successful
bug hunt two weeks ago.

You may download ZF 1.11.1 from the Zend Framework site .

Nov
29
2010
--

Data Corruption, DRBD and story of bug

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 tablespace!
InnoDB: The tablespace free space info is corrupt.
InnoDB: You may need to dump your InnoDB tables and recreate the whole
InnoDB: database!

Trash state means that InnoDB won’t start, and you need to use innodb_force_recovery=3 and mysqldump your data. What makes problem even worse is that InnoDB does not report tablename, so you are pretty much blind and need to dump whole dataset, which can be long process.

The moment where DRBD come in play, is if you use DRBD for HA purposes ( as is in the case I worked with), you screwed,
as DRBD mirroring physical data, and MySQL keeping crashing on both instances – active and passive.

So DRBD can’t be considered fully reliable HA solution if there is risk that application corrupts data by itself

Now to bug 55981. It has MySQL version 5.6, but the problem exists in MySQL 5.1.50 or below and in MySQL 5.5, and
corresponding bug is 55543, which you actually can’t see, as
“You do not have access to bug #55543.”, because it is marked as “Security problem”.

And I actually tend to agree that bug can be considered as “security”.
If you running public hosting or your public users can execute direct SQL statements, I strongly recommend to upgrade to
MySQL version 5.1.51+ .

Now another interesting point – how can you be sure that 5.1.51 works.

The bug 55543 is not mentioned in ChangeLog for 5.1.51 nor 5.1.52. However if you look into source code and revision history, you can see that bug 55543 is fixed in MySQL 5.1.51. I assume it is technical problem with ChangeLog process and it will be fixed soon, but I reported it so it is not lost

At the end let me reiterate my points:
- if you have BLOB/TEXT fields in your InnoDB-plugin schema, it is recommended to upgrade to 5.1.51+
- if you provide public access to MySQL instance ( hosting provider, etc) with InnoDB-plugin installed – it is STRONGLY recommended to upgrade to 5.1.51+
- Review your HA schema. DRBD by itself (without additional solutions) can’t guaranty decent level of High Availability. And just to be clear, it is not DRBD problem, DRBD basically can’t help if there is possibility that application corrupts data by itself. For this case regular Master-Slave setup (in addition to DRBD) would protect from such problem.


Entry posted by Vadim |
6 comments

Add to: delicious | digg | reddit | netscape | Google Bookmarks

Nov
29
2010
--

Speaking on San Francisco Meetup 14-Dec : What’s new in XtraDB/InnoDB-plugin 5.1+

Erin and Mike, organizers of SF Meetup generously invited me to talk on coming SF Meetup on Dec-14 about new features in InnoDB in MySQL 5.1 and 5.5 and, what is pay attention to, when you upgrade from MySQL 5.0.
Although I personally mostly in 5.1->5.5 upgrade area, Erin insured me that upgrade from MySQL 5.0 is still actually question for many users, so I accepted invitation. Event details are on Meetup.com page. So if you are up for free pizza, soda and do not mind to listen to me, welcome to join!


Entry posted by Vadim |
No comment

Add to: delicious | digg | reddit | netscape | Google Bookmarks

Nov
28
2010
--

A week of symfony #204 (22->28 November 2010)

Symfony2 development activity exploded this week with thousands of changes, tweaks and additions across most of its components: twig bundle, forms and dependency injection improved their performance; the Output Escaper component was removed; and lots of methods were renamed to follow the new naming convention. Symfony2 is gaining momentum week by week and therefore, the release of PR4 version is around the corner and the first beta version could be published before the end of the year.

Development mailing list

symfony 1 development highlights

Changelog:

  • r31471: [1.3, 1.4] changed the default value for session_cache_limiter to ‘null’

Symfony2 development highlights

Changelog:

  • 1bbdb5e:
    [Form, FrameworkBundle, TwigBundle] refactored the PHP and Twig templating layer. Support for theming in PHP templates has been dropped
  • 6a14846:
    [Validator, Form] removed support for match-all group *
  • 940ce9a:
    [Validator] group “Default” is now propagated to validated references when group sequences are validated
  • 46145d8:
    [Validator] fixed exception thrown in Valid constraint to be thrown only when the options are not empty
  • a0f9331, b3ae62e, 7a255fe, db3e12b:
    fixed tests breaking on windows
  • ac0081f:
    switched doctypes to HTML5
  • e204a18:
    [DoctrineBundle] made the task works with vendor bundle namespace
  • d9239d1:
    fixed doctrine command getBundleMetadatas function
  • b6923dd:
    changed Cache-Control default value behavior. The PHP native cache limiter feature has been disabled as this is now managed by the HeaderBag class directly instead (see commit for details)
  • 333504a:
    [OutputEscaper] fixed output escaping when a variable was decorated with SafeDecorator and passed to another part of the system where decoration also happens on the same un-decorated variable
  • 681ce7f:
    [Form] fixed FieldGroup::hasErrors() does not return true if only children have errors
  • 6176063:
    [TwigBundle] fixed variable reference in the errors block of the form.twig template
  • a71cad4:
    [Validator] added @validation:GroupSequence to annotation driver
  • 68cebd6:
    [Validator] Group sequences must now always contain the group and never the group Default since that group is redefined by the group sequence
  • e0d6aad:
    [Form, FrameworkBundle, TwigBundle] introduced class FieldError to wrap form errors
  • 17c500e, e3551b5:
    [TwigBundle] added a yaml filter/encoder
  • 84cf569:
    [TwigBundle] fixed include tag to reflect the new syntax from Twig
  • a323dd0:
    [TwigBundle] added filters from Code helpers
  • cbb22b4:
    [Templating] added an Engine::load() method
  • 67f6889:
    [TwigBundle] added support for Twig_Template instances as argument to include tag
  • 21f088d:
    [DependencyInjection] replaced assertEquals(spl_object_hash()) with assertSame
  • 6fa943a:
    moved Exception and WebProfiler templates to Twig
  • 97d4dce:
    added the ability to configure additional web profiler templates
  • 381347b:
    [WebProfilerBundle] fixed data collector loading (they should always be loaded as you can enable the web profiler without the web debug toolbar)
  • a79ed13:
    [Routing] removed the variable_prefixes and variable_regex Route options
  • f9e830c:
    [Form] added hook method preprocessData() to FieldGroup
  • d95d336:
    [HttpFoundation] fixed class Request to convert empty files to NULL
  • f2f0d04:
    [Form, FrameworkBundle] fixed default values of CheckboxFields
  • e0aa3f3:
    [Form] improved FileField to store files in a temporary location in case validation fails
  • 5b056b2:
    refactored web profiler template definitions to make it easier for bundle developers to add their templates
  • ad68092:
    removed the OutputEscaper component, added escape mechanism in the Templating Engine class
  • 60bbb8f:
    [DependencyInjection] optimized compiled containers: removed the __call() method in Container, removed the $shared variable in the dumped Container classes and optimized the PHP Dumper output
  • 944d91c:
    made some method name changes to have a better coherence throughout the framework
  • 6ab277e:
    added a LazyLoader for the routing
  • 44b8ee3:
    added more classes in the class cache
  • dfe8bb9:
    added more classes to the bootstrap file
  • 1e983a6:
    moved static Form configuration to a new class (avoid loading 7 classes just to enable CSRF — even when no form is present in the page)

Documentation

New job postings

  • Symfony developer at Useweb – full-time based in Rennes (Cesson-Sévigné), France – Contact: cv@useweb.com

New plugins

  • majaxMarkdown: provides a Markdown editor for Symfony, and related rendering tools.
  • majaxPheanstalk: Tools for integrating with Beanstalkd from within Symfony.
  • sfContentArchive: easily generates a ‘blog-style’ content archive in your symfony application.
  • sfNubioAddonFunctions: adds a helper with multiple functions that perform commonly used tasks.
  • sfOPTView: allows the use of Open Power Templates in Symfony.
  • sfPaymentWebMoney: allows you to interact with WebMoney (it’s based on sfPaymentPlugin).
  • sfAdminAjaxTheme: ajaxifies symfony admin generator.
  • sfWidgetWordCounter: a jQuery word counter that counts the words in a given input field and displays the counter in a html tag.

Updated plugins

  • sfThrift:

    • fixed bug in TSocketPool
    • moved server transport classes to its own directory
  • isicsBreadcrumbs:

    • added symfony 1.3 and 1.4 compatibility
  • sfDoctrineRestGenerator:

    • fixed routes names in order to match the documentation
    • added some explanations about the API location
    • added a YAML serializer
    • added the formats_strict option
    • improved the deserialization abstraction
    • improved the documentation
    • added cleanupParameters() method to avoid code duplication
    • added the capacity to serialize single objects
    • improved the performance of the XML serializer
    • added a basic show action
    • added setFieldVisibility() and configureFields() methods in order to share code between index and show actions
    • fixed executeUpdate() so that the content is not a parameter of the request but the content of the PUT request
    • have the XML serializer return a PHP array
    • allow to create or update related objects in the very same request
    • updated documentation
    • enabled the show route by default
    • have executeDelete() refer to the primary key and not systematically the previously hardcoded “id”
    • fixed the way relation fields are hidden, particularly in the case of many-to-many relationships
    • fixed warning when there are no related objects for a n-n relation delcared in the configuration key
  • sfDoctrinePoll:

    • added the Poll for the question into the admin generator
  • sfAmf:

    • updated Doctrine template
  • pmSuperfishMenu:

    • added options managements
    • added autoinclusion of stylesheets and javascripts feature depending on selected options
    • added _authenticated_ menu condition
  • pmPropelGenerator:

    • added the pre_list partial
  • sfHttpHeaderCache:

    • added a new session storage class based on sfCacheSessionStorage for selectively enabling/disabling the cache based on the “no_session” parameter of a given route
  • sfDoctrineRestBasic:

    • added sfDoctrineRestBasicRoute which cleans up the routing by extending the sfRequestRoute to handle the requested actions
    • namespaced the helper classes to stop potential issues
    • added a very important executePut method
    • cleaned up logger code kill multiple instantiation
  • ddOnlineStore:

    • added the color option in the products
  • idlErrorManagement:

    • added a show error page in the admin module
    • switched to use the Doctrine Abstraction layer when saving PHP_errors to be compatible with any database engine
  • sfTangoIcons:

    • added a new animation function
    • updated documentation
  • apostrophe:

    • fixed apostrophe bug that couldn’t find the taggable script for media items
    • renamed our richtext and date/time widgets and removed obsolete versions to avoid conflicts with other parties’ Symfony plugins (especially sfFormExtrasPlugin)
    • always disable filters for tag admin (otherwise it breaks in its default configuration)
    • added app.yml options to optionally disable the is_active and password fields in user admin, removing the need for separate admin gen modules just because you have Shibboleth or LDAP auth
    • fixed a bug in executeMoveSlot that prevented correct permission checking
    • fixed a bug in executeDeleteSlot that ignored aTools::getAreaOptions
    • password, is_active and permissions fields in user admin can be disabled via app.yml for convenience
    • fixed the description wasn’t shown when image was set to false
    • moved the disqus code into the globalJavascripts partial (it should live there, and it keeps layout.php clean)
    • added the escaping stuff to the top of the defaultTemplate in the button thing
    • implemented use_bundled_javascripts similar to use_bundled_stylesheets, allowing you to specify exactly which javascripts you want to override
    • styling fix for validation errors on date and time widgets in event form
  • apostropheBlog:

    • fixed bug where categories and tags with periods would cause mayhem with the routing system
    • fixed a routing problem involving tags + categories with periods
    • fixed a blog migration bug unsetting categories array
    • end date/time is now validated so you can’t set the end prior to the beginning
  • sfDoctrineActAsCommentable:

    • made actions and components easier to override
    • removed groupBy in retrieveCommentCountForObject
  • apostropheFormBuilder:

    • form builder plugin migrations for moving from pkFormBuilderPlugin

New symfony bloggers

They talked about us


Be trained by symfony experts
Jan 24 Paris – Feb 21 Paris – Mar 21 Paris – Apr 18 Paris – May 23 Paris

Written by in: Zend Developer |
Nov
26
2010
--

Webinar: Introduction to Percona Server, XtraDB and Xtrabackup

We’ve had such a large number of signups to our Migrating MyISAM to InnoDB webinar, that we decided to hold one more before the year is out:

December, 8th 9AM PST: Introduction to Percona Server, XtraDB and Xtrabackup.

As the title suggests: this presentation is an introduction.  We will be running through the main aspects that change, and where you can expect to get the most benefit.

This will be a technical talk, but perhaps less technical than some of our other posts. I recommend inviting a few friends & colleagues that are already familiar with MySQL, but perhaps not regular readers of our blog.

(Time for Q&A will follow the main presentation).


Entry posted by Morgan Tocker |
2 comments

Add to: delicious | digg | reddit | netscape | Google Bookmarks

Nov
24
2010
--

Twitter Weekly Updates for 2010-11-25

  • Karaoke'd for the first time in a long time tonight.. ahh the soft afterglow of my 4 minutes of fame.. #
  • Twitter just allowed me to not freak out because I heard what sounded like Shock and Awe in #LosAngeles .. #fireworks at The Grove #
  • We're not going to use the release cycle anymore? http://is.gd/hIo2s To extract a point though, this does make sense for apps.. #

Powered by Twitter Tools



Written by in: Zend Developer |
Nov
23
2010
--

Percona Server 5.1.52-rel11.6

Percona Server version 5.1.52-rel11.6 is now available for download.

The main purpose of this release is to update the current Percona stable release to the latest version of MySQL 5.1.

Functionality Added or Changed

  •  Percona Server 5.1.52-rel11.6 is now based on MySQL 5.1.52.
  •  New Features Added: None
  •  Other Changes: None

Bugs Fixed

  • Bug #671764innochecksum wasn’t distributed with RPM and .DEB packages. (Aleksandr Kuzminsky)
  • Bug #673426 – Use of some system variables as command-line options caused a crash or undefined behavior. (Oleg Tsarev)
  • Bug #673929 – Query cache misses were being reported for some queries when hits were actually occurring. (Oleg Tsarev)
  • Bug #676146 – The development environment test of log_slow_verbosity=innodb on a slave for row-based replication was not working correctly. (Oleg Tsarev)
  • Bug #676147 – The development environment test of option log_slow_slave_statements for row-based replication was not working correctly. (Oleg Tsarev)
  • Bug #676148 – Similar to Bug #676147. A check is now made for the replication type to test. (Oleg Tsarev)
  • Bug #676158 – Setting the query cache size to 512M caused test failure on low memory systems. (Aleksandr Kuzminsky)

Release Notes for this and previous releases can be found in our Wiki.

The latest downloads are available on our website. The latest source code for Percona Server, including the development branch, can be found on Launchpad.

Please report any bugs found at Bugs in Percona Server.

For general questions, use our Percona Discussions Group, and for development questions our Percona Development Group.

For support, commercial, and sponsorship inquiries, contact Percona.


Entry posted by Fred Linhoss |
2 comments

Add to: delicious | digg | reddit | netscape | Google Bookmarks

Nov
23
2010
--

Announcing The Zend Framework Bug Hunt Champions

In just 3 short days, contributors managed to resolve exactly 111 issues . Fitting though, if you think about it, since this is the 1.11 branch for Zend Framework: 111 issues, 1.11 branch release… I’d like to say we planned it that way, but alas, it was merely coincidental the way these numbers worked out.

Nov
22
2010
--

Moving from MyISAM to Innodb or XtraDB. Basics

I do not know if it is because we’re hosting a free webinar on migrating MyISAM to Innodb or some other reason but recently I see a lot of questions about migration from MyISAM to Innodb.

Webinar will cover the process in a lot more details though I would like to go over basics in advance. You can also check my old post on this topic about Moving MyISAM to Innodb as well as searching the blog – We’ve blogged so much on this topic.

So what are the basics ?

Regression Benchmarks – Make sure to run regression benchmarks in particular in terms of concurrent behavior. You may have hidden dependencies of MyISAM table lock behavior in your applications, also check if your application handled deadlocks well. MyISAM will not produce deadlocks for Innodb you should always see deadlocks as a probability as long as you write to the database. They may be rate but it is rather hard to guaranty you will never run into them.

Performance Benchmarks – Innodb and MyISAM have different performance properties and you can’t really say one is faster than other it is very much workload dependent, and again concurrent tests should be important here. Innodb also may result in different plans for some queries which is rather easy to check with mk-upgrade

Feature Differences – There are some feature differences between MyISAM and Innodb though well it is typically easily spotted by converting tables to Innodb on restored backup. Full text search indexes, GIS, multi-column auto increment keys are great examples. There are also different limits for MyISAM and Innodb – it is possible to have some rows which can be stored in MyISAM but would not fit to Innodb, though this is an exception.

Space Innodb Tables tend to be larger. Again converting schema will show you some of this. Though the best is to take a look at the size after stressing system with load for a while as depending on the schema and usage Innodb tables may increase in size significantly due to fragmentation.

Usage Differences What works well for MyISAM may not work for Innodb and vice versa. You may benefit from different index structure for Innodb, including different primary key setup, as well as you may want to structure workload differently. With MyISAM it is often for people to do updates in small chunks, almost row by row to avoid holding table lock for long time in Innodb you want larger updates to reduce cost of transaction commit. You also may want to avoid excessive SELECT COUNT(*) FROM TBL (with no where clause) which is very fast for MyISAM but does table/index scan for Innodb.

Defaults You need to know two things about defaults for Innodb. First Depending on MySQL version they may be somewhere from suboptimal to absolutely disastrous, you do not want to try to run Innodb or XtraDB with them. Second Innodb is tuned to be ACID by default – if you’re moving from MyISAM often you do not need such strong guarantees and can at least change innodb_flush_log_at_trx_commit=2. It still will be much more secure than storing data in MyISAM. The 3 most important values to check are innodb_flush_log_at_trx_commit, innodb_buffer_pool_size and innodb_log_file_size. There are a lot more options for fine tuning but make sure at least these are right.


Entry posted by peter |
One comment

Add to: delicious | digg | reddit | netscape | Google Bookmarks

Nov
22
2010
--

Percona XtraBackup 1.4

Percona XtraBackup 1.4 is now available for download.

Version 1.4 fixes problems related to incremental backups. If you do incremental backups, it’s strongly recommended that you upgrade to this release.

Functionality Added or Changed

  • Incremental backups have changed and now allow the restoration of full backups containing certain rollback transactions that previously caused problems. Please see Preparing the Backups and the --apply-log-only option. (From innobackupex, the --redo-only option should be used). (Yasufumi Kinoshita)
  • The XtraBackup Test Suite was implemented and is now a standard part of each distribution. (Aleksandr Kuzminsky)
  • Other New Features:
    • The --prepare option now reports xtrabackup_binlog_pos_innodb if the information exists. (Yasufumi Kinoshita)
    • When --prepare is used to restore a partical backup, the data dictionary is now cleaned and contains only tables that exist in the backup. (Yasufumi Kinoshita))
    • The --table option was extended to accept several regular expression arguments, separated by commas. (Yasufumi Kinoshita)
  • Other Changes:
    • Ported to the Percona Server 5.1.47-11 code base. (Yasufumi Kinoshita)
    • XtraBackup now uses the memory allocators of the host operating system, rather than the built-in InnoDB allocators (see Using Operating System Memory Allocators). (Yasufumi Kinoshita)

Bugs Fixed

  • Bug #595770 – Binaries are stripped by rpmbuild, so __os_install_post is redefined to change the default behaviour. (Aleksandr Kuzminsky)
  • Bug #589639 – Fixed a problem of hanging when tablespaces were deleted during the recovery process. (Yasufumi Kinoshita)
  • Bug #611960 – Fixed a segmentation fault in “xtrabackup”. (Yasufumi Kinoshita)
  • Miscellaneous important fixes related to incremental backups.

Release Notes for this and previous releases of Percona Xtrabackup can be found in our Wiki.

The latest downloads are available on our website. The latest source code can be found on Launchpad.

Please report any bugs found at Bugs in Percona XtraBackup.

For general questions, use our Percona Discussions Group, and for development questions our Percona Development Group.

For support, commercial, and sponsorship inquiries, contact Percona.


Entry posted by Fred Linhoss |
5 comments

Add to: delicious | digg | reddit | netscape | Google Bookmarks

Powered by WordPress | Theme: Aeros 2.0 by TheBuckmaker.com