greenplum hang forever when doing any search or insert actions with psql and centos7

三世轮回 提交于 2019-12-11 16:53:11

问题


greenplum version is 5.3.0 centos 7

As title, The following is result of gplogfilter

SELECT pg_catalog.quote_ident(n.nspname) || '.' FROM pg_catalog.pg_namespace n WHERE substring(pg_catalog.quote_ident(n.nspname) || '.',1,7)='test_vb' AND (SELECT pg_catalog.count(*) FROM pg_catalog.pg_namespace WHERE substring(pg_catalog.quote_ident(nspname) || '.',1,7) = substring('test_vb',1,pg_catalog.length(pg_catalog.quote_ident(nspname))+1)) > 1
UNION
SELECT pg_catalog.quote_ident(n.nspname) || '.' || pg_catalog.quote_ident(c.relname) FROM pg_catalog.pg_class c, pg_catalog.pg_namespace n WHERE c.relnamespace = n.oid AND c.relkind IN ('r', 'S', 'v' , 'x') AND substring(pg_catalog.quote_ident(n.nspname) || '.' || pg_catalog.quote_ident(c.relname),1,7)='test_vb' AND substring(pg_catalog.quote_ident(n.nspname) || '.',1,7) = substring('test_vb',1,pg_catalog.length(pg_catalog.quote_ident(n.nspname))+1) AND (SELECT pg_catalog.count(*) FROM pg_catalog.pg_namespace WHERE substring(pg_catalog.quote_ident(nspname) || '.',1,7) = substring('test_vb',1,pg_catalog.length(pg_catalog.quote_ident(nspname))+1)) = 1
LIMIT 1000|0||postgres.c|1629|
2018-01-02 12:21:20.685964 UTC|||p20871|th-636074112||||0|||seg-1|||||LOG: |00000|3rd party error log:
Unexpected exception reached top of execution stack: major=200 minor=14 file=CTranslatorUtils.cpp line=162||||||||SysLoggerMain|syslogger.c|633|
2018-01-02 12:21:20.686005 UTC|gpadmin|testdb|p21604|th-636074112|[local]||2018-01-02 12:13:41 UTC|0|con8|cmd4|seg-1||dx22||sx1|LOG: |00000|Planner produced plan :0||||||SELECT pg_catalog.quote_ident(c.relname) FROM pg_catalog.pg_class c WHERE c.relkind IN ('r', 'S', 'v' , 'x') AND substring(pg_catalog.quote_ident(c.relname),1,7)='test_vb' AND pg_catalog.pg_table_is_visible(c.oid) AND c.relnamespace <> (SELECT oid FROM pg_catalog.pg_namespace WHERE nspname = 'pg_catalog')
UNION
SELECT pg_catalog.quote_ident(n.nspname) || '.' FROM pg_catalog.pg_namespace n WHERE substring(pg_catalog.quote_ident(n.nspname) || '.',1,7)='test_vb' AND (SELECT pg_catalog.count(*) FROM pg_catalog.pg_namespace WHERE substring(pg_catalog.quote_ident(nspname) || '.',1,7) = substring('test_vb',1,pg_catalog.length(pg_catalog.quote_ident(nspname))+1)) > 1
UNION
SELECT pg_catalog.quote_ident(n.nspname) || '.' || pg_catalog.quote_ident(c.relname) FROM pg_catalog.pg_class c, pg_catalog.pg_namespace n WHERE c.relnamespace = n.oid AND c.relkind IN ('r', 'S', 'v' , 'x') AND substring(pg_catalog.quote_ident(n.nspname) || '.' || pg_catalog.quote_ident(c.relname),1,7)='test_vb' AND substring(pg_catalog.quote_ident(n.nspname) || '.',1,7) = substring('test_vb',1,pg_catalog.length(pg_catalog.quote_ident(n.nspname))+1) AND (SELECT pg_catalog.count(*) FROM pg_catalog.pg_namespace WHERE substring(pg_catalog.quote_ident(nspname) || '.',1,7) = substring('test_vb',1,pg_catalog.length(pg_catalog.quote_ident(nspname))+1)) = 1
LIMIT 1000|0||orca.c|60|
2018-01-02 12:21:22.351554 UTC|gpadmin|testdb|p21604|th-636074112|[local]||2018-01-02 12:13:41 UTC|0|con8|cmd6|seg-1||dx23||sx1|LOG: |00000|statement: SELECT * FROM test_vb;||||||SELECT * FROM test_vb;|0||postgres.c|1629|
       in:      77 lines; timestamps from 2018-01-02 11:31:19.698317 to 2018-01-02 12:21:22.351554
      out:      77 lines; timestamps from 2018-01-02 11:31:19.698317 to 2018-01-02 12:21:22.351554
----------  /data/master/gpseg-1/pg_log/gp_era ----------
# Greenplum Database era.
# Do not change the contents of this file.
era = 27c9a01176c70c2c_180102113109
       in:       3 lines; no timestamps found
      out:       3 lines

回答1:


Which version of CentOS 7 are you using? There are known problems with RHEL/CentOS 7.0-7.2 (see Greenplum release notes). You should be using 7.3 or 7.4 - there were kernel problems in the early version 7 of the OS that were fixed in 7.3/4.

Jim McCann Pivotal




回答2:


Greenplum uses TCP connection when starting to active database and tell Segments the address of Master and other operations on database are with UDP connection and master address is got from prior TCP connection. The problem is that the segment only get the modified address of master and try to send messages to modified address if master uses NAT method. Then one of the solve method is to tell segment the address when master send queries by modifying the value of proc->listenerAddr in source code.




回答3:


I was also facing same issue while selecting and inserting but Teddy's last comment worked for me i.e. enable UDP protocol for all hosts (master as well segment). So for greenplum few protocol needs to be enable TCP, UDP, SSH, ICMP.



来源:https://stackoverflow.com/questions/48061128/greenplum-hang-forever-when-doing-any-search-or-insert-actions-with-psql-and-cen

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!