Pivotal Knowledge Base

Follow

Greenplum Workload Manager 1.7.3 and Greenplum Database 4.3.13.0

Environment

 Product  Version
 Greenplum (GPDB)  4.3.13.0
 Greenplum Workload Manager (WLM)  1.7.3

Symptom

Rules that use the vmem datums will not work for the below combinations:

WLM < 1.7.3 with GPDB 4.3.13.0

WLM 1.7.3 with GPDB < 4.3.13.0 

Cause

The new column, idle_start added to session_state.session_level_memory_consumption causes this issue.

Analysis
 
The session_level_memory_consumption view provides information about memory consumption as well as the idle time for sessions that are running SQL queries. Detailed documentation can be found here. WLM query's this view when determining whether it can trigger the rules written using the vmem datums. For detailed documentation of how to use the vmem datum click here.
 
In Greenplum version 4.3.13, this view has a new column, idle_start. In WLM 1.7.3, before a rule based on the vmem datum triggers, WLM query's off this view which causes it to fail as the new column is not accounted for. The messages below can be seen in the WLM logs: 
[gpadmin@ip-172-31-12-65 ~]$ tail -f gp-wlm/var/log/agent/agent.log

[Thu Apr 27 18:40:56 UTC 2017] [gpdb_stats.so] [err] gp_vmem.c:176 unable to submit query: 'SELECT SUM(vmem_mb) AS vmem_segment_sum FROM session_state.session_state_memory_entries_f() AS (segid int,sessionid int,vmem_mb int,runaway_status int,qe_count int,active_qe_count int,dirty_qe_count int,runaway_vmem_mb int,runaway_command_cnt int)'
[Thu Apr 27 18:40:56 UTC 2017] [gpdb_stats.so] [err] gp_vmem.c:176 unable to submit query: 'SELECT SUM(vmem_mb) AS vmem_segment_sum FROM session_state.session_state_memory_entries_f() AS (segid int,sessionid int,vmem_mb int,runaway_status int,qe_count int,active_qe_count int,dirty_qe_count int,runaway_vmem_mb int,runaway_command_cnt int)'
[Thu Apr 27 18:40:56 UTC 2017] [gpdb_stats.so] [err] gp_vmem.c:177 result: ERROR: function return row and query-specified return row do not match
DETAIL: Returned row contains 10 attributes, but query expects 9.

[Thu Apr 27 18:40:56 UTC 2017] [gpdb_stats.so] [err] gp_vmem.c:177 result: ERROR: function return row and query-specified return row do not match
DETAIL: Returned row contains 10 attributes, but query expects 9.

[Thu Apr 27 18:40:56 UTC 2017] [gpdb_stats.so] [err] gp_vmem.c:176 unable to submit query: 'SELECT SUM(vmem_mb) AS vmem_segment_sum FROM session_state.session_state_memory_entries_f() AS (segid int,sessionid int,vmem_mb int,runaway_status int,qe_count int,active_qe_count int,dirty_qe_count int,runaway_vmem_mb int,runaway_command_cnt int)'
[Thu Apr 27 18:40:56 UTC 2017] [gpdb_stats.so] [err] gp_vmem.c:177 result: ERROR: function return row and query-specified return row do not match
DETAIL: Returned row contains 10 attributes, but query expects 9.

Resolution

Currently, there is no fix for this issue as WLM 1.7.3 can only run with 4.3.13 and vice versa. However, the future releases of WLM will fix this issue and work for lower versions also.

Support matrix

  1. WLM < 1.7.3 against GPDB < 4.3.13 [Works]
  2. WLM 1.7.3 version against GPDB < 4.3.13 [Fails]
  3. WLM < 1.7.3 against GPDB 4.3.13 [Fails]
  4. WLM 1.7.3 against GPDB 4.3.13 [Works]

Comments

Powered by Zendesk