Bug #76956 Threads table PROCESSLIST_INFO truncate query
Submitted: 6 May 2015 14:34 Modified: 6 May 2015 18:28
Reporter: Marcin Szalowicz Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: Performance Schema Severity:S2 (Serious)
Version:5.6, 8.0.13 OS:Any
Assigned to: Chris Powers CPU Architecture:Any
Tags: processlist_info, query, truncate

[6 May 2015 14:34] Marcin Szalowicz
Description:
There's inconsistency between P_S.threads.PROCESSLIST_INFO and I_S.PROCESSLIST.INFO column. 
The first one max size is 1024, the second one is 65535.
This makes it hard to use as replacement. 

How to repeat:
in first connection run:

select sleep(15),'##################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################-truncated';

in the second check and compare the output of:
SELECT PROCESSLIST_INFO FROM performance_schema.threads
and 
SELECT INFO from information_schema.PROCESSLIST;
the first query will output truncated info

Suggested fix:
Make both queries output the same information (i.e not truncated)
[6 May 2015 18:28] Umesh Shastry
Hello Marcin,

Thank you for the report.
Confirmed this with 5.6.24.

Thanks,
Umesh
[6 May 2015 18:29] Umesh Shastry
// 5.6.24

mysql> SELECT INFO from information_schema.PROCESSLIST\G
*************************** 1. row ***************************
INFO: select sleep(15),'##################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################-truncated'
*************************** 2. row ***************************
INFO: SELECT INFO from information_schema.PROCESSLIST
2 rows in set (0.00 sec)

mysql> SELECT PROCESSLIST_INFO FROM performance_schema.threads\G
*************************** 1. row ***************************
PROCESSLIST_INFO: INTERNAL DDL LOG RECOVER IN PROGRESS
.
.
PROCESSLIST_INFO: NULL
*************************** 19. row ***************************
PROCESSLIST_INFO: select sleep(15),'##############################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################
*************************** 20. row ***************************
PROCESSLIST_INFO: SELECT PROCESSLIST_INFO FROM performance_schema.threads
20 rows in set (0.00 sec)
[31 Oct 2018 6:34] Shane Bester
still seems truncated to 1024 in 8.0.13, even when running server with: 

--performance_schema_max_sql_text_length=4096 --max-digest-length=4096 --performance-schema-max-digest-length=4096
[31 Oct 2018 7:02] Shane Bester
I looked in debugger now.   Here the info_len is set to 1024...

#define COL_INFO_SIZE 1024
char m_processlist_info[COL_INFO_SIZE];

....

void pfs_set_thread_info_v1(const char *info, uint info_len) {
  pfs_dirty_state dirty_state;
  PFS_thread *pfs = my_thread_get_THR_PFS();

  DBUG_ASSERT((info != NULL) || (info_len == 0));

  if (likely(pfs != NULL)) {
    if ((info != NULL) && (info_len > 0)) {
      if (info_len > sizeof(pfs->m_processlist_info)) {
        info_len = sizeof(pfs->m_processlist_info);  <------- here...
      }
[31 Oct 2018 7:36] Shane Bester
This bug was mentioned in a comment on 
https://mysqlserverteam.com/using-sys-session-as-an-alternative-to-show-processlist/