• 1
    • 4
    • Our product teams collect and evaluate feedback from a number of different sources. To learn more about how we use customer feedback in the planning process, check out our new feature policy.

      This encoding in MySQL is helpful to support emojis and 4-byte UTF-8 characters.

            [BAM-18703] Support MySQL utf8mb4 encoding

            njohnson added a comment -

            njohnson added a comment - https://imgur.com/a/mltssfC

            njohnson added a comment - - edited

            I was able to successfully work around this issue by updating my jdbc driver to 5.1.48, changing the session character set to utf8mb4 in the jdbc connection string in bamboo.cfg.xml, the  server character set on the database server to utf8mb4, changing the column character set to utf8mb4 and collation to utf8mb4_bin for just COMMIT_COMMENT_CLOB in the user_commit and deployment_version_commit tables, leaving the rest to be utf8.  MySQL supports column-level character sets and collations which can override table and database and system level defaults. It also supports prefix indexes where you might otherwise run into the character limit quicker on utf8mb4. These columns aren't indexed at all, however. Neither is vcs_branch.NAME, for that matter.

            njohnson added a comment - - edited I was able to successfully work around this issue by updating my jdbc driver to 5.1.48, changing the session character set to utf8mb4 in the jdbc connection string in bamboo.cfg.xml, the  server character set on the database server to utf8mb4, changing the column character set to utf8mb4 and collation to utf8mb4_bin for just COMMIT_COMMENT_CLOB in the user_commit and deployment_version_commit tables, leaving the rest to be utf8.  MySQL supports column-level character sets and collations which can override table and database and system level defaults. It also supports prefix indexes where you might otherwise run into the character limit quicker on utf8mb4. These columns aren't indexed at all, however. Neither is vcs_branch.NAME, for that matter.

            Fisheye 4.7.0 just implemented support for 4 byte Unicode characters. Yay, it works great and Code Reviewers are finally able to add Comments containing emoji's that are encoded as 4 byte unicode characters.

            NEED same resolution in Bamboo - else a simple commit message into GitHub containing an emoji causes INSERT failure in MySQL for Bamboo.

            MySQL Database has supported 4 byte Unicode since version 5.7 - MySQL version is now at least 5.24!

            Please implement resolution in same manner as Fisheye 4.7.0 did.

            Jira and Confluence are supposed to soon implement resolution too.

            Craig Solinski added a comment - Fisheye 4.7.0 just implemented support for 4 byte Unicode characters. Yay, it works great and Code Reviewers are finally able to add Comments containing emoji's that are encoded as 4 byte unicode characters. NEED same resolution in Bamboo - else a simple commit message into GitHub containing an emoji causes INSERT failure in MySQL for Bamboo. MySQL Database has supported 4 byte Unicode since version 5.7 - MySQL version is now at least 5.24! Please implement resolution in same manner as Fisheye 4.7.0 did. Jira and Confluence are supposed to soon implement resolution too.

            Also running into this issue. It's really lame that a single commit can break an entire build project in perpetuity. Does Jenkins have this problem?

            Jeff Wozniak added a comment - Also running into this issue. It's really lame that a single commit can break an entire build project in perpetuity. Does Jenkins have this problem?

            Ran into this trouble myself, Bamboo was trying to write a simple log from a separate program that contained an emoji somewhere along the way.

            S Alexandre Lemaire added a comment - Ran into this trouble myself, Bamboo was trying to write a simple log from a separate program that contained an emoji somewhere along the way.

            jmo added a comment -

            I don't know if there is an official workaround, we solved it like you say by editing the commit message so the emoji no longer appeared in the history. I don't believe we had to modify the DB since mysql was not allowing the insert in the first place. Once the Bitbucket history was clean then bamboo just picked up again.

            jmo added a comment - I don't know if there is an official workaround, we solved it like you say by editing the commit message so the emoji no longer appeared in the history. I don't believe we had to modify the DB since mysql was not allowing the insert in the first place. Once the Bitbucket history was clean then bamboo just picked up again.

            Ran into this as well, once Bitbucket started supporting emoji's. What is the work-around, can we git amend an older merged commit or is this involve scrubbing the database?

            David Puchosic added a comment - Ran into this as well, once Bitbucket started supporting emoji's. What is the work-around, can we git amend an older merged commit or is this involve scrubbing the database?

            jmo added a comment -

            Also for future visitors, the last paragraph in this article explains the problems getting Bamboo to support utf8mb4 even though BitBucket supports it: https://confluence.atlassian.com/bamkb/branch-names-with-emoji-or-4-byte-utf8-characters-create-hundreds-of-plan-branches-in-bamboo-826887726.html

            Note: Although MySQL 5.5.3+ supports additional character set and collation options such as utf8mb4 which allow more than 3 bytes per character to be stored in the database, utf8mb4 is not supported in Bamboo. Changing the character set / collation to use utf8mb4 also means that column indexes and key lengths will need to store 4 bytes per character. This pushes many table keys over the default 767 byte-length limit. Whilst you can work around this by setting innodb_large_prefix = ON, this only sets the max length at 3072 which may still be exceeded. In addition, the default {{ROW_FORMAT}} limits the max column index size to 767 bytes and this limit is also exceeded when trying to use utf8mb4. Therefore we do not recommend using anything other than the utf8 character set and utf8_bin collation when using MySQL.
            

            jmo added a comment - Also for future visitors, the last paragraph in this article explains the problems getting Bamboo to support utf8mb4 even though BitBucket supports it: https://confluence.atlassian.com/bamkb/branch-names-with-emoji-or-4-byte-utf8-characters-create-hundreds-of-plan-branches-in-bamboo-826887726.html Note: Although MySQL 5.5.3+ supports additional character set and collation options such as utf8mb4 which allow more than 3 bytes per character to be stored in the database, utf8mb4 is not supported in Bamboo. Changing the character set / collation to use utf8mb4 also means that column indexes and key lengths will need to store 4 bytes per character. This pushes many table keys over the default 767 byte-length limit. Whilst you can work around this by setting innodb_large_prefix = ON, this only sets the max length at 3072 which may still be exceeded. In addition, the default {{ROW_FORMAT}} limits the max column index size to 767 bytes and this limit is also exceeded when trying to use utf8mb4. Therefore we do not recommend using anything other than the utf8 character set and utf8_bin collation when using MySQL.

            jmo added a comment -

            So is utf8mb4 still not supported by Bamboo? We have an emoji in our BitBucket commit history which is causing our utf8 MySQL 5.7 db to throw an error:

            Caused by: java.sql.BatchUpdateException: Incorrect string value: '\xF0\x9F\x8C\xB6\xF0\x9F...' for column 'COMMIT_COMMENT_CLOB' at row 1
            

             But if utf8mb4 isn't supported by Bamboo than I can't just update our database collation to fix this...

            jmo added a comment - So is utf8mb4 still not supported by Bamboo? We have an emoji in our BitBucket commit history which is causing our utf8 MySQL 5.7 db to throw an error: Caused by: java.sql.BatchUpdateException: Incorrect string value: '\xF0\x9F\x8C\xB6\xF0\x9F...' for column 'COMMIT_COMMENT_CLOB' at row 1  But if utf8mb4 isn't supported by Bamboo than I can't just update our database collation to fix this...

              851f15845f55 Mateusz Szmal
              mgardias Marcin Gardias
              Votes:
              30 Vote for this issue
              Watchers:
              32 Start watching this issue

                Created:
                Updated:
                Resolved: