If, during a transaction, changes are made to a mixture of transaction-capable and transaction-incapable tables, and a ROLLBACK is subsequently issued, changes made to the transaction-incapable tables cannot be rolled back. A corresponding warning is issued only after the ROLLBACK.
This behaviour is a consequence of MySQL's mixed table engine model. Although understandable, it causes problems when a table was mistakenly not defined as transaction-capable (which can easily happen - see section 2.3 "Supported syntax, unsupported feature" and 2.4 "Whoops, no InnoDB table support").
Apparently CREATE INDEX, DROP INDEX and ALTER TABLE operations on InnoDB tables cause the entire table to be rebuilt. Depending on the size of the table this can be a long operation. See: http://lists.mysql.com/list.php?1:mss:139208:jkkcnkbjkhdagmffkcnh