← Back to team overview

mahara-contributors team mailing list archive

[Bug 1514273] Re: Increase to "longtext" all text columns that hold serialized user data

 

I researched all the serialized/unserialized values from Mahara code (16.04dev - 2016021000) and found out the columns/rows that store serialized data and could potentially errors in MySQL:
* Column: block_instance.configdata
* Column: config.value - Row: config.field IN ("cookieconsent_settings", "filters", "footerlinks", "footercustomlinks", "openssl_history")
* Column: skin_fonts.variants
* Column: skin.viewskin
* Column: skin_favorites.favorites
* Column: usr_registration.extra
* Column: import_entry_requests.duplicateditemids
* Column: import_entry_requests.existingitemids
* Column: import_entry_requests.artefactmapping
* Column: blocktype_externalfeed_data.image
* Column: import_queue.data

As a safety, I think maybe we can change all those columns to the
longtext type even if some of them may never reach over 65kb

-- 
You received this bug notification because you are a member of Mahara
Contributors, which is subscribed to Mahara.
Matching subscriptions: Subscription for all Mahara Contributors -- please ask on #mahara-dev or mahara.org forum before editing or unsubscribing it!
https://bugs.launchpad.net/bugs/1514273

Title:
  Increase to "longtext" all text columns that hold serialized user data

Status in Mahara:
  Confirmed

Bug description:
  We've now had two bugs caused by serialized user data going into a
  text database column, and being truncated to 65KB by MySQL:

  Bug 1474659: import_entry_requests.entrycontent
  Bug 1513851: activity_queue.data

  We should try to get ahead of this issue by similarly increasing the
  size of any other columns in the database that typically store
  serialized user data. For instance, block_instance.configdata. If you
  created a text block that contains exactly 65KB of text, it would
  probably cause this same error, because, when serialized, it would tip
  to just over 65KB.

  I can't recall other serialized data columns off the top of my head,
  but I imagine there's a few.

  Additionally, if we have any other columns that store structured data
  with user content inside of it, we should expand those as well. (Are
  we storing any JSON-encoded values into the DB yet?). HTML is kind of
  an exception, because, while it will break if it's truncated, it won't
  generally cause a fatal error if we have broken HTML in the DB.
  Instead, htmlpurifier will filter it out when it gets displayed.

To manage notifications about this bug go to:
https://bugs.launchpad.net/mahara/+bug/1514273/+subscriptions


References