pt-online-schema-change 2.2.8 segfaults on column type change

pt-online-schema-change 2.2.8 segfaults when changing a column type. This works, provided the field is already a VARCHAR:
–alter=“CHANGE EFID90 EFID90 VARCHAR(18)”

though when altering to a different type:

–alter=“CHANGE EFID90 EFID90 INT(11)”

The result is:
No slaves found. See --recursion-method if host node1.hostname has slaves.
Not checking slave lag because no slaves were found and --check-slave-lag was not specified.
Operation, tries, wait:
copy_rows, 10, 0.25
create_triggers, 10, 1
drop_triggers, 10, 1
swap_tables, 10, 1
update_foreign_keys, 10, 1
Altering databasename.tablename
Creating new table…
Created new table databasename.tablename_new OK.
Altering new table…
Altered databasename._tablename_new OK.
2014-06-06T20:03:42 Creating triggers…
2014-06-06T20:03:42 Created triggers OK.
2014-06-06T20:03:42 Copying approximately 3 rows…
2014-06-06T20:03:42 Dropping triggers…
2014-06-06T20:03:42 Dropped triggers OK.
2014-06-06T20:03:42 Dropping new table…
2014-06-06T20:03:42 Dropped new table OK.
databasename.tablename was not altered.
Segmentation fault (core dumped)

Any clues?

Bump, any clue? Anyone? This is pretty nasty for us because now we can only issue ALTER TABLE statements on the MySQL monitor which takes ages locking the ENTIRE cluster.

Hi There,

I didn’t reproduce a segmentation fault with pt-osc 2.2.8. What version of MySQL are you using?

In my testing, when the data in the varchar column could be safely converted, the tool finishes fine:


...
Successfully altered `test`.`t2`.

When the data couldn’t be converted, that tool would fail with the corresponding error message:


...
2014-06-13T20:31:26 Error copying rows from `test`.`t2` to `test`.`_t2_new`: 2014-06-13T20:31:26 Copying rows caused a MySQL error 1264: Level: Warning
Code: 1264
Message: Out of range value for column 'name' at row 3

Or
...
2014-06-13T20:30:45 Error copying rows from `test`.`t2` to `test`.`_t2_new`: 2014-06-13T20:30:45 Copying rows caused a MySQL error 1366:
Level: Warning
Code: 1366
Message: Incorrect integer value: 'mimi maya' for column 'name' at row 3

Was the error message you posted from running on a table with 3 rows? Could you send the full command and the content of the table?