Problem with mysql/upgrade from 4.4.4

Hi everyone

I running RT since 2010 and follow all the upgrade without really issue.

Now I’m trying to upgrade from 4.4.4 to 5.0.3, and got this error

Proceed [y/N]:y
Processing 4.4.5
Now inserting data.
Processing 4.4.6
[51303] [Wed Sep 28 17:16:30 2022] [warning]: DBD::mysql::st execute failed: Data too long for column 'Content' at row 1 at /usr/local/lib/perl5/site_perl/DBIx/SearchBuilder/Handle.pm line 622. (/usr/local/lib/perl5/site_perl/DBIx/SearchBuilder/Handle.pm:622)
[51303] [Wed Sep 28 17:16:30 2022] [warning]: RT::Handle=HASH(0x80875afa8) couldn't execute the query 'UPDATE Attributes SET Content=? WHERE id=? ' at /usr/local/lib/perl5/site_perl/DBIx/SearchBuilder/Handle.pm line 635.
	DBIx::SearchBuilder::Handle::SimpleQuery(RT::Handle=HASH(0x80875afa8), "UPDATE Attributes SET Content=? WHERE id=? ", "BQsDAAAAAQQCAAAAcAQDAAAABQokMzk4RERGQTAtOTRGOC0xMUUzLTk5MkQtN"..., 14320) called at /usr/local/lib/perl5/site_perl/DBIx/SearchBuilder/Handle.pm line 487
	DBIx::SearchBuilder::Handle::UpdateRecordValue(RT::Handle=HASH(0x80875afa8), "Column", "Content", "Value", "BQsDAAAAAQQCAAAAcAQDAAAABQokMzk4RERGQTAtOTRGOC0xMUUzLTk5MkQtN"..., "IsSQLFunction", undef, "PrimaryKeys", ...) called at /usr/local/lib/perl5/site_perl/DBIx/SearchBuilder/Record.pm line 871
	DBIx::SearchBuilder::Record::__Set(RT::Attribute=HASH(0x808b84090), "Field", "Content", "Value", "BQsDAAAAAQQCAAAAcAQDAAAABQokMzk4RERGQTAtOTRGOC0xMUUzLTk5MkQtN"..., "IsSQL", undef) called at /usr/local/lib/perl5/site_perl/DBIx/SearchBuilder/Record/Cachable.pm line 140
	DBIx::SearchBuilder::Record::Cachable::__Set(RT::Attribute=HASH(0x808b84090), "Field", "Content", "Value", "BQsDAAAAAQQCAAAAcAQDAAAABQokMzk4RERGQTAtOTRGOC0xMUUzLTk5MkQtN"..., "IsSQL", undef) called at /usr/local/lib/perl5/site_perl/DBIx/SearchBuilder/Record.pm line 744
	DBIx::SearchBuilder::Record::_Set(RT::Attribute=HASH(0x808b84090), "Field", "Content", "Value", "BQsDAAAAAQQCAAAAcAQDAAAABQokMzk4RERGQTAtOTRGOC0xMUUzLTk5MkQtN"..., "IsSQL", undef) called at /usr/local/lib/perl5/site_perl/RT/Record.pm line 462
	RT::Record::_Set(RT::Attribute=HASH(0x808b84090), "Field", "Content", "Value", "BQsDAAAAAQQCAAAAcAQDAAAABQokMzk4RERGQTAtOTRGOC0xMUUzLTk5MkQtN"...) called at /usr/local/lib/perl5/site_perl/RT/Attribute.pm line 501
	RT::Attribute::_Set(RT::Attribute=HASH(0x808b84090), "Field", "Content", "Value", "BQsDAAAAAQQCAAAAcAQDAAAABQokMzk4RERGQTAtOTRGOC0xMUUzLTk5MkQtN"...) called at /usr/local/lib/perl5/site_perl/RT/Attribute.pm line 317
	RT::Attribute::SetContent(RT::Attribute=HASH(0x808b84090), HASH(0x808d5d990)) called at /usr/local/lib/perl5/site_perl/RT/Record.pm line 212
	RT::Record::SetAttribute(RT::System=HASH(0x808693648), "Name", "UpgradeHistory", "Content", HASH(0x808d5d990)) called at /usr/local/lib/perl5/site_perl/RT/System.pm line 315
	RT::System::AddUpgradeHistory(RT::System=HASH(0x808693648), "RT", HASH(0x801698fa8)) called at /usr/local/sbin/rt-setup-database line 316
	main::action_indexes("datafile", undef, "package", "RT", "prompt-for-dba-password", 1, "backcompat", ARRAY(0x8016c37b0), ...) called at /usr/local/sbin/rt-setup-database line 570
	main::action_upgrade("action", "upgrade", "datadir", "/usr/local/share/doc/rt50/upgrade", "prompt-for-dba-password", 1, "package", "RT", ...) called at /usr/local/sbin/rt-setup-database line 210 (/usr/local/lib/perl5/5.32/Carp.pm:294)
Now inserting database indexes.

and this error

Data too long for column

continue a lot but always with the always the same value

“BQsDAAAAAQQCAAAAcAQDAAAABQokMzk4RERGQTAtOTRGOC0xMUUzLTk5MkQtN”

I try to find this string in the original database and unable to find it in the old and the new database

mysql> select * from attributes where content like "BQsDAAAAAQQCAAAAcAQDAAAABQokMzk4RERGQTAtOTRGOC0xMUUzLTk5MkQtN%";
Empty set (0.18 sec)

mysql> 

I’m test everything possible in the mysql side, currenltly I’m running

innodb_log_file_size = 128M
key_buffer_size = 1024M
log-error = /var/log/mysqld.log
max_allowed_packet = 4096M
max_binlog_size = 4096M
max_connections = 151
pid-file = /var/run/mysql.pid
port = 3306
skip-external-locking
socket = /var/db/mysql/mysql.sock
ssl = false
thread_cache_size = 8
thread_stack = 256K
tmpdir = /tmp
user = mysql
lower_case_table_names = 1
interactive_timeout = 28800
wait_timeout = 28800

The upgrade still continue and the RT seem to working but that freak me out…RT are central on our IT so if in sometime I find a big error…

Any idea ?

Ok. Find the problem.

It’s the «Upgradehistory» inside the attributes tables who reach the 64ko.

After a “ALTER TABLE attributes CHANGE Content Content LONGBLOB" everything work again.

I will report a bug in the rt bug-report system

Regards