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

  • Filter
  • Time
  • Show
Clear All
new posts

  • 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?

  • #2
    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.
    Last edited by joepmeloen12; 06-11-2014, 05:11 AM.


    • #3
      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
      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?
      Last edited by psong; 06-13-2014, 07:50 AM.