From: Tomonari K. <kat...@po...> - 2013-06-04 01:32:19
|
Hi, I have a problem with query executing. I cant't have any response when I execute a query. This problem occurs when some conditions are met. The conditions are below. --------------------------------------------------------------------- 1. Issuing "EXECUTE DIRECT" to Datanode(ofcourse, via Coordinator). 2. The Query Executing on Datanode has subquery on its FROM-clause. 3. In the subquery, it has a JOIN clause. 4. The Join clause is consisted with another subquery. --------------------------------------------------------------------- Simple example query is below. --------------------------------------------------------------- EXECUTE DIRECT ON (data1) $$ SELECT count(*) FROM (SELECT * FROM pg_locks l LEFT JOIN (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a $$ --------------------------------------------------------------- FYI: This query works fine with Postgres-XC 1.0.3. Is this already known bug ? How can I avoid this problem ? And what kind of info do you need to investigate it ? ---------- NTT Software Corporation Tomonari Katsumata |
From: Koichi S. <koi...@gm...> - 2013-06-04 01:59:04
|
Thank you Katsumata-san for the report. Could you provide CREATE TABLE statement for each table involved with some of the data? I will ad this to the bug tracker after I recreate the issue. Best Regards; ---------- Koichi Suzuki 2013/6/4 Tomonari Katsumata <kat...@po...> > Hi, I have a problem with query executing. > > I cant't have any response when I execute a query. > This problem occurs when some conditions are met. > > The conditions are below. > --------------------------------------------------------------------- > 1. Issuing "EXECUTE DIRECT" to Datanode(ofcourse, via Coordinator). > > 2. The Query Executing on Datanode has subquery on its FROM-clause. > > 3. In the subquery, it has a JOIN clause. > > 4. The Join clause is consisted with another subquery. > --------------------------------------------------------------------- > > > Simple example query is below. > --------------------------------------------------------------- > EXECUTE DIRECT ON (data1) $$ > SELECT > count(*) > FROM > (SELECT * FROM pg_locks l LEFT JOIN > (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a > $$ > --------------------------------------------------------------- > > FYI: > This query works fine with Postgres-XC 1.0.3. > Is this already known bug ? > > > How can I avoid this problem ? > And what kind of info do you need to investigate it ? > > ---------- > NTT Software Corporation > Tomonari Katsumata > > > > > ------------------------------------------------------------------------------ > How ServiceNow helps IT people transform IT departments: > 1. A cloud service to automate IT design, transition and operations > 2. Dashboards that offer high-level views of enterprise services > 3. A single system of record for all IT processes > http://p.sf.net/sfu/servicenow-d2d-j > _______________________________________________ > Postgres-xc-developers mailing list > Pos...@li... > https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > |
From: Ashutosh B. <ash...@en...> - 2013-06-04 04:10:19
|
Hi Tomonari, Thanks for the bug report. I am curious to know, what's the purpose of using EXECUTE DIRECT? We discourage using Execute Direct in the applications. It's only for debugging purposes. On Tue, Jun 4, 2013 at 7:28 AM, Koichi Suzuki <koi...@gm...>wrote: > Thank you Katsumata-san for the report. > > Could you provide CREATE TABLE statement for each table involved with some > of the data? > > I will ad this to the bug tracker after I recreate the issue. > > Best Regards; > > ---------- > Koichi Suzuki > > > 2013/6/4 Tomonari Katsumata <kat...@po...> > >> Hi, I have a problem with query executing. >> >> I cant't have any response when I execute a query. >> This problem occurs when some conditions are met. >> >> The conditions are below. >> --------------------------------------------------------------------- >> 1. Issuing "EXECUTE DIRECT" to Datanode(ofcourse, via Coordinator). >> >> 2. The Query Executing on Datanode has subquery on its FROM-clause. >> >> 3. In the subquery, it has a JOIN clause. >> >> 4. The Join clause is consisted with another subquery. >> --------------------------------------------------------------------- >> >> >> Simple example query is below. >> --------------------------------------------------------------- >> EXECUTE DIRECT ON (data1) $$ >> SELECT >> count(*) >> FROM >> (SELECT * FROM pg_locks l LEFT JOIN >> (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a >> $$ >> --------------------------------------------------------------- >> >> FYI: >> This query works fine with Postgres-XC 1.0.3. >> Is this already known bug ? >> >> >> How can I avoid this problem ? >> And what kind of info do you need to investigate it ? >> >> ---------- >> NTT Software Corporation >> Tomonari Katsumata >> >> >> >> >> ------------------------------------------------------------------------------ >> How ServiceNow helps IT people transform IT departments: >> 1. A cloud service to automate IT design, transition and operations >> 2. Dashboards that offer high-level views of enterprise services >> 3. A single system of record for all IT processes >> http://p.sf.net/sfu/servicenow-d2d-j >> _______________________________________________ >> Postgres-xc-developers mailing list >> Pos...@li... >> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >> > > > > ------------------------------------------------------------------------------ > How ServiceNow helps IT people transform IT departments: > 1. A cloud service to automate IT design, transition and operations > 2. Dashboards that offer high-level views of enterprise services > 3. A single system of record for all IT processes > http://p.sf.net/sfu/servicenow-d2d-j > _______________________________________________ > Postgres-xc-developers mailing list > Pos...@li... > https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > > -- Best Wishes, Ashutosh Bapat EntepriseDB Corporation The Postgres Database Company |
From: Tomonari K. <kat...@po...> - 2013-06-05 04:28:22
|
Hi Suzuki-san, Ashutosh, >Suzuki-san I don't make any user tables. As the simple example I sent before, I use only system-catalogs. >Ashtosh I'm developing database monitor tool and I use "EXECUTE DIRECT" to get database statistics data from particular coordinator/datanode. regard, --------- NTT Software Corporation Tomonari Katsumata (2013/06/04 13:10), Ashutosh Bapat wrote: > Hi Tomonari, > > Thanks for the bug report. > > I am curious to know, what's the purpose of using EXECUTE DIRECT? We > discourage using Execute Direct in the applications. It's only for > debugging purposes. > > > On Tue, Jun 4, 2013 at 7:28 AM, Koichi Suzuki <koi...@gm...>wrote: > >> Thank you Katsumata-san for the report. >> >> Could you provide CREATE TABLE statement for each table involved with some >> of the data? >> >> I will ad this to the bug tracker after I recreate the issue. >> >> Best Regards; >> >> ---------- >> Koichi Suzuki >> >> >> 2013/6/4 Tomonari Katsumata <kat...@po...> >> >>> Hi, I have a problem with query executing. >>> >>> I cant't have any response when I execute a query. >>> This problem occurs when some conditions are met. >>> >>> The conditions are below. >>> --------------------------------------------------------------------- >>> 1. Issuing "EXECUTE DIRECT" to Datanode(ofcourse, via Coordinator). >>> >>> 2. The Query Executing on Datanode has subquery on its FROM-clause. >>> >>> 3. In the subquery, it has a JOIN clause. >>> >>> 4. The Join clause is consisted with another subquery. >>> --------------------------------------------------------------------- >>> >>> >>> Simple example query is below. >>> --------------------------------------------------------------- >>> EXECUTE DIRECT ON (data1) $$ >>> SELECT >>> count(*) >>> FROM >>> (SELECT * FROM pg_locks l LEFT JOIN >>> (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a >>> $$ >>> --------------------------------------------------------------- >>> >>> FYI: >>> This query works fine with Postgres-XC 1.0.3. >>> Is this already known bug ? >>> >>> >>> How can I avoid this problem ? >>> And what kind of info do you need to investigate it ? >>> >>> ---------- >>> NTT Software Corporation >>> Tomonari Katsumata >>> >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> How ServiceNow helps IT people transform IT departments: >>> 1. A cloud service to automate IT design, transition and operations >>> 2. Dashboards that offer high-level views of enterprise services >>> 3. A single system of record for all IT processes >>> http://p.sf.net/sfu/servicenow-d2d-j >>> _______________________________________________ >>> Postgres-xc-developers mailing list >>> Pos...@li... >>> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >>> >> >> >> ------------------------------------------------------------------------------ >> How ServiceNow helps IT people transform IT departments: >> 1. A cloud service to automate IT design, transition and operations >> 2. Dashboards that offer high-level views of enterprise services >> 3. A single system of record for all IT processes >> http://p.sf.net/sfu/servicenow-d2d-j >> _______________________________________________ >> Postgres-xc-developers mailing list >> Pos...@li... >> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >> >> > -- -------------------------------------------- NTTソフトウェア株式会社 技術開発センター OSS基盤技術部門 勝俣 智成 TEL:045-212-7665 FAX:045-662-7856 E-Mail: kat...@po... -------------------------------------------- |
From: Abbas B. <abb...@en...> - 2013-07-03 03:14:10
|
Since you are getting a crash even without your patch there must be some thing wrong in the deployment. Can you try doing ./configure --enable-debug --enable-cassert CFLAGS='-O0' and then see whether its an assertion failure or not? Also can you see which SQL statement is causing the crash in xmlmap.sql? On Mon, Jul 1, 2013 at 4:51 PM, Tomonari Katsumata < t.k...@gm...> wrote: > Hi, > > I've tried regression test, but I could not > get right result. > Both patched and un-patched Postgres-XC get > same result, so I think my process is bad. > > I run a gtm, a gtm_proxy, a coordinator, a datanode > in one server(CentOS6.4 x86_64 on VMWare), > and hit "make installcheck". > The configure option is [--enable-debug CFLAGS=""]. > > What is right way to run the regression test? > > output is below. > --------------------------------------------------------- > test tablespace ... ok > test boolean ... ok > test char ... ok > test name ... ok > test varchar ... ok > test text ... ok > test int2 ... ok > test int4 ... ok > test int8 ... ok > test oid ... ok > test float4 ... ok > test float8 ... ok > test bit ... ok > test numeric ... ok > test txid ... ok > test uuid ... ok > test enum ... FAILED > test money ... ok > test rangetypes ... ok > test strings ... ok > test numerology ... ok > test point ... ok > test lseg ... ok > test box ... ok > test path ... ok > test polygon ... ok > test circle ... ok > test date ... ok > test time ... ok > test timetz ... ok > test timestamp ... ok > test timestamptz ... ok > test interval ... ok > test abstime ... ok > test reltime ... ok > test tinterval ... ok > test inet ... ok > test macaddr ... ok > test tstypes ... ok > test comments ... ok > test geometry ... ok > test horology ... ok > test regex ... ok > test oidjoins ... ok > test type_sanity ... ok > test opr_sanity ... ok > test insert ... ok > test create_function_1 ... ok > test create_type ... ok > test create_table ... ok > test create_function_2 ... ok > test create_function_3 ... ok > test copy ... ok > test copyselect ... ok > test create_misc ... ok > test create_operator ... ok > test create_index ... FAILED > test create_view ... ok > test create_aggregate ... ok > test create_cast ... ok > test constraints ... FAILED > test triggers ... ok > test inherit ... FAILED > test create_table_like ... ok > test typed_table ... ok > test vacuum ... ok > test drop_if_exists ... ok > test sanity_check ... ok > test errors ... ok > test select ... ok > test select_into ... ok > test select_distinct ... ok > test select_distinct_on ... ok > test select_implicit ... ok > test select_having ... ok > test subselect ... ok > test union ... ok > test case ... ok > test join ... FAILED > test aggregates ... FAILED > test transactions ... ok > test random ... ok > test portals ... ok > test arrays ... FAILED > test btree_index ... ok > test hash_index ... ok > test update ... ok > test delete ... ok > test namespace ... ok > test prepared_xacts ... ok > test privileges ... FAILED > test security_label ... ok > test collate ... FAILED > test misc ... ok > test rules ... ok > test select_views ... ok > test portals_p2 ... ok > test foreign_key ... ok > test cluster ... ok > test dependency ... ok > test guc ... ok > test bitmapops ... ok > test combocid ... ok > test tsearch ... ok > test tsdicts ... ok > test foreign_data ... ok > test window ... ok > test xmlmap ... FAILED (test process exited with exit > code 2) > test functional_deps ... FAILED (test process exited with exit > code 2) > test advisory_lock ... FAILED (test process exited with exit > code 2) > test json ... FAILED (test process exited with exit > code 2) > test plancache ... FAILED (test process exited with exit > code 2) > test limit ... FAILED (test process exited with exit > code 2) > test plpgsql ... FAILED (test process exited with exit > code 2) > test copy2 ... FAILED (test process exited with exit > code 2) > test temp ... FAILED (test process exited with exit > code 2) > test domain ... FAILED (test process exited with exit > code 2) > test rangefuncs ... FAILED (test process exited with exit > code 2) > test prepare ... FAILED (test process exited with exit > code 2) > test without_oid ... FAILED (test process exited with exit > code 2) > test conversion ... FAILED (test process exited with exit > code 2) > test truncate ... FAILED (test process exited with exit > code 2) > test alter_table ... FAILED (test process exited with exit > code 2) > test sequence ... FAILED (test process exited with exit > code 2) > test polymorphism ... FAILED (test process exited with exit > code 2) > test rowtypes ... FAILED (test process exited with exit > code 2) > test returning ... FAILED (test process exited with exit > code 2) > test largeobject ... FAILED (test process exited with exit > code 2) > test with ... FAILED (test process exited with exit > code 2) > test xml ... FAILED (test process exited with exit > code 2) > test stats ... FAILED (test process exited with exit > code 2) > test xc_create_function ... FAILED (test process exited with exit > code 2) > test xc_groupby ... FAILED (test process exited with exit > code 2) > test xc_distkey ... FAILED (test process exited with exit > code 2) > test xc_having ... FAILED (test process exited with exit > code 2) > test xc_temp ... FAILED (test process exited with exit > code 2) > test xc_remote ... FAILED (test process exited with exit > code 2) > test xc_node ... FAILED (test process exited with exit > code 2) > test xc_FQS ... FAILED (test process exited with exit > code 2) > test xc_FQS_join ... FAILED (test process exited with exit > code 2) > test xc_misc ... FAILED (test process exited with exit > code 2) > test xc_triggers ... FAILED (test process exited with exit > code 2) > test xc_trigship ... FAILED (test process exited with exit > code 2) > test xc_constraints ... FAILED (test process exited with exit > code 2) > test xc_copy ... FAILED (test process exited with exit > code 2) > test xc_alter_table ... FAILED (test process exited with exit > code 2) > test xc_sequence ... FAILED (test process exited with exit > code 2) > test xc_prepared_xacts ... FAILED (test process exited with exit > code 2) > test xc_notrans_block ... FAILED (test process exited with exit > code 2) > test xc_limit ... FAILED (test process exited with exit > code 2) > test xc_sort ... FAILED (test process exited with exit > code 2) > test xc_returning ... FAILED (test process exited with exit > code 2) > test xc_params ... FAILED (test process exited with exit > code 2) > ========================= > 55 of 153 tests failed. > ========================= > > > 2013/7/1 Tomonari Katsumata <kat...@po...> > >> Hi Ashutosh, >> >> OK, I'll try regression test. >> Please wait for the result. >> >> regards, >> ------------ >> NTT Software Corporation >> Tomonari Katsumata >> >> (2013/07/01 17:06), Ashutosh Bapat wrote: >> > Hi Tomonori, >> > >> > >> > >> > On Mon, Jul 1, 2013 at 1:33 PM, Tomonari Katsumata < >> > kat...@po...> wrote: >> > >> >> Hi Ashutosh and all, >> >> >> >> Sorry for late response. >> >> I made a patch for resolving the problem I mentioned before. >> >> >> >> I thought the reason of this problem is parsing query twice. >> >> because of this, the rtable is made from same Lists and become >> >> cycliced List. >> >> I fixed this problem with making former List empty. >> >> >> >> I'm not sure this fix leads any anothre problems but >> >> the problem query I mentioned before works fine. >> >> >> >> This patch is against for >> "**a074cac9b6b507e6d4b58c5004673f**6cc65fcde1". >> >> >> >> >> > You can check the robustness of patch by running regression. Please let >> me >> > know what you see. >> > >> > >> >> regards, >> >> ------------------ >> >> NTT Software Corporation >> >> Tomonari Katsumata >> >> >> >> >> >> (2013/06/17 18:53), Ashutosh Bapat wrote: >> >> >> >>> Hi Tomonari, >> >>> In which function have you taken this debug info? What is list1 and >> list2? >> >>> >> >>> >> >>> On Mon, Jun 17, 2013 at 10:13 AM, Tomonari Katsumata < >> >>> kat...@po....**jp <kat...@po... >> >> >> >>> wrote: >> >>> >> >>> Hi Ashtosh, >> >>>> Sorry for slow response. >> >>>> >> >>>> I've watched the each lists at list_concat function. >> >>>> >> >>>> This function is called several times, but the lists before >> >>>> last infinitely roop are like below. >> >>>> >> >>>> [list1] >> >>>> (gdb) p *list1->head >> >>>> $18 = {data = {ptr_value = 0x17030e8, int_value = 24129768, >> >>>> oid_value = 24129768}, next = 0x170d418} >> >>>> (gdb) p *list1->head->next >> >>>> $19 = {data = {ptr_value = 0x17033d0, int_value = 24130512, >> >>>> oid_value = 24130512}, next = 0x170fd40} >> >>>> (gdb) p *list1->head->next->next >> >>>> $20 = {data = {ptr_value = 0x170ae58, int_value = 24161880, >> >>>> oid_value = 24161880}, next = 0x171e6c8} >> >>>> (gdb) p *list1->head->next->next->next >> >>>> $21 = {data = {ptr_value = 0x1702ca8, int_value = 24128680, >> >>>> oid_value = 24128680}, next = 0x171ed28} >> >>>> (gdb) p *list1->head->next->next->**next->next >> >>>> $22 = {data = {ptr_value = 0x170af68, int_value = 24162152, >> >>>> oid_value = 24162152}, next = 0x171f3a0} >> >>>> (gdb) p *list1->head->next->next->**next->next->next >> >>>> $23 = {data = {ptr_value = 0x170b0a8, int_value = 24162472, >> >>>> oid_value = 24162472}, next = 0x170b7c0} >> >>>> (gdb) p *list1->head->next->next->**next->next->next->next >> >>>> $24 = {data = {ptr_value = 0x17035f0, int_value = 24131056, >> >>>> oid_value = 24131056}, next = 0x1720998} >> >>>> ---- from --- >> >>>> (gdb) p *list1->head->next->next->**next->next->next->next->next >> >>>> $25 = {data = {ptr_value = 0x17209b8, int_value = 24250808, >> >>>> oid_value = 24250808}, next = 0x1721190} >> >>>> (gdb) p >> *list1->head->next->next->**next->next->next->next->next->**next >> >>>> $26 = {data = {ptr_value = 0x17211b0, int_value = 24252848, >> >>>> oid_value = 24252848}, next = 0x1721988} >> >>>> (gdb) p *list1->head->next->next->**next->next->next->next->next->** >> >>>> next->next >> >>>> $27 = {data = {ptr_value = 0x17219a8, int_value = 24254888, >> >>>> oid_value = 24254888}, next = 0x1722018} >> >>>> (gdb) p >> >>>> *list1->head->next->next->**next->next->next->next->next->** >> >>>> next->next->next >> >>>> $28 = {data = {ptr_value = 0x1722038, int_value = 24256568, >> >>>> oid_value = 24256568}, next = 0x1722820} >> >>>> (gdb) p >> >>>> >> >>>> *list1->head->next->next->**next->next->next->next->next->** >> >>>> next->next->next->next >> >>>> $29 = {data = {ptr_value = 0x1722840, int_value = 24258624, >> >>>> oid_value = 24258624}, next = 0x0} >> >>>> ---- to ---- >> >>>> >> >>>> [list2] >> >>>> (gdb) p *list2->head >> >>>> $31 = {data = {ptr_value = 0x17209b8, int_value = 24250808, >> >>>> oid_value = 24250808}, next = 0x1721190} >> >>>> (gdb) p *list2->head->next >> >>>> $32 = {data = {ptr_value = 0x17211b0, int_value = 24252848, >> >>>> oid_value = 24252848}, next = 0x1721988} >> >>>> (gdb) p *list2->head->next->next >> >>>> $33 = {data = {ptr_value = 0x17219a8, int_value = 24254888, >> >>>> oid_value = 24254888}, next = 0x1722018} >> >>>> (gdb) p *list2->head->next->next->next >> >>>> $34 = {data = {ptr_value = 0x1722038, int_value = 24256568, >> >>>> oid_value = 24256568}, next = 0x1722820} >> >>>> (gdb) p *list2->head->next->next->**next->next >> >>>> $35 = {data = {ptr_value = 0x1722840, int_value = 24258624, >> >>>> oid_value = 24258624}, next = 0x0} >> >>>> ---- >> >>>> >> >>>> list1's last five elements are same with list2's all elements. >> >>>> (in above example, between "from" and "to" in list1 equal all of >> list2) >> >>>> >> >>>> This is cause of infinitely roop, but I can not >> >>>> watch deeper. >> >>>> Because some values from gdb are optimized and un-displayed. >> >>>> I tried compile with CFLAGS=O0, but I can't. >> >>>> >> >>>> What can I do more ? >> >>>> >> >>>> regards, >> >>>> ------------------ >> >>>> NTT Software Corporation >> >>>> Tomonari Katsumata >> >>>> >> >>>> (2013/06/12 21:04), Ashutosh Bapat wrote: >> >>>> > Hi Tomonari, >> >>>> > Can you please check the list's sanity before calling >> >>>> pgxc_collect_RTE() >> >>>> > and at every point in the minions of this function. My primary >> >>>> suspect >> >>>> is >> >>>> > the line pgxcplan.c:3094. We should copy the list before >> >>>> concatenating it. >> >>>> > >> >>>> > >> >>>> > On Wed, Jun 12, 2013 at 2:26 PM, Tomonari Katsumata < >> >>>> > kat...@po....**jp< >> kat...@po...>> >> >>>> wrote: >> >>>> > >> >>>> >> Hi Ashutosh, >> >>>> >> >> >>>> >> Thank you for the response. >> >>>> >> >> >>>> >> (2013/06/12 14:43), Ashutosh Bapat wrote: >> >>>> >> >> Hi, >> >>>> >> >> > >> >>>> >> >> > I've investigated this problem(BUG:3614369). >> >>>> >> >> > >> >>>> >> >> > I caught the cause of it, but I can not >> >>>> >> >> > find where to fix. >> >>>> >> >> > >> >>>> >> >> > The problem occurs when "pgxc_collect_RTE_walker" is >> called >> >>>> >> infinitely. >> >>>> >> >> > It seems that rtable(List of RangeTable) become cyclic >> List. >> >>>> >> >> > I'm not sure where the List is made. >> >>>> >> >> > >> >>>> >> >> > >> >>>> >> > I guess, we are talking about EXECUTE DIRECT statement that >> you >> >>>> have >> >>>> >> > mentioned earlier. >> >>>> >> >> >>>> >> Yes, that's right. >> >>>> >> I'm talking about EXECUTE DIRECT statement like below. >> >>>> >> --- >> >>>> >> EXECUTE DIRECT ON (data1) $$ >> >>>> >> SELECT >> >>>> >> count(*) >> >>>> >> FROM >> >>>> >> (SELECT * FROM pg_locks l LEFT JOIN >> >>>> >> (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a >> >>>> >> $$ >> >>>> >> --- >> >>>> >> >> >>>> >> > The function pgxc_collect_RTE_walker() is a recursive >> >>>> >> > function. The condition to end the recursion is if the given >> >>>> node is >> >>>> >> NULL. >> >>>> >> > We have to look at if that condition is met and if not why. >> >>>> >> > >> >>>> >> I investigated it deeper, and I noticed that >> >>>> >> the infinitely loop happens at the function >> "range_table_walker()". >> >>>> >> >> >>>> >> Please see below trace. >> >>>> >> =========================== >> >>>> >> Breakpoint 1, range_table_walker (rtable=0x15e7968, >> walker=0x612c70 >> >>>> >> <pgxc_collect_RTE_walker>, context=0x7fffd2de31c0, >> >>>> >> flags=0) at nodeFuncs.c:1908 >> >>>> >> 1908 in nodeFuncs.c >> >>>> >> >> >>>> >> (gdb) p *rtable >> >>>> >> $10 = {type = T_List, length = 5, head = 0x15e7998, tail = >> >>>> 0x15e9820} >> >>>> >> (gdb) p *rtable->head >> >>>> >> $11 = {data = {ptr_value = 0x15e79b8, int_value = 22968760, >> >>>> oid_value = >> >>>> >> 22968760}, next = 0x15e8190} >> >>>> >> (gdb) p *rtable->head->next >> >>>> >> $12 = {data = {ptr_value = 0x15e81b0, int_value = 22970800, >> >>>> oid_value = >> >>>> >> 22970800}, next = 0x15e8988} >> >>>> >> (gdb) p *rtable->head->next->next >> >>>> >> $13 = {data = {ptr_value = 0x15e89a8, int_value = 22972840, >> >>>> oid_value = >> >>>> >> 22972840}, next = 0x15e9018} >> >>>> >> (gdb) p *rtable->head->next->next->**next >> >>>> >> $14 = {data = {ptr_value = 0x15e9038, int_value = 22974520, >> >>>> oid_value = >> >>>> >> 22974520}, next = 0x15e9820} >> >>>> >> (gdb) p *rtable->head->next->next->**next->next >> >>>> >> $15 = {data = {ptr_value = 0x15e9840, int_value = 22976576, >> >>>> oid_value = >> >>>> >> 22976576}, next = 0x15e7998} >> >>>> >> =========================== >> >>>> >> >> >>>> >> The line which starts with "$15" has 0x15e7998 as its next >> data. >> >>>> >> But it is the head pointer(see the line which starts with $10). >> >>>> >> >> >>>> >> And in range_table_walker(), the function is called >> recursively. >> >>>> >> -------- >> >>>> >> ... >> >>>> >> if (!(flags & QTW_IGNORE_RANGE_TABLE)) >> >>>> >> { >> >>>> >> if (range_table_walker(query->**rtable, >> walker, >> >>>> context, >> >>>> >> flags)) >> >>>> >> return true; >> >>>> >> } >> >>>> >> ... >> >>>> >> -------- >> >>>> >> >> >>>> >> We should make rtable right or deal with "flags" properly. >> >>>> >> But I can't find where to do it... >> >>>> >> >> >>>> >> What do you think ? >> >>>> >> >> >>>> >> regards, >> >>>> >> --------- >> >>>> >> NTT Software Corporation >> >>>> >> Tomonari Katsumata >> >>>> >> >> >>>> >> >> >>>> >> >> >>>> >> >> >>>> >> >> >>>> >> >>>> ------------------------------**------------------------------** >> >>>> ------------------ >> >>>> >> This SF.net email is sponsored by Windows: >> >>>> >> >> >>>> >> Build for Windows Store. >> >>>> >> >> >>>> >> http://p.sf.net/sfu/windows-**dev2dev< >> http://p.sf.net/sfu/windows-dev2dev> >> >>>> >> ______________________________**_________________ >> >>>> >> Postgres-xc-developers mailing list >> >>>> >> Postgres-xc-developers@lists.**sourceforge.net< >> Pos...@li...> >> >>>> >> https://lists.sourceforge.net/**lists/listinfo/postgres-xc-** >> >>>> developers< >> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers> >> >>>> >> >> >>>> > >> >>>> > >> >>>> > >> >>>> >> >>>> >> >>>> >> >>>> >> >>>> ------------------------------**------------------------------** >> >>>> ------------------ >> >>>> This SF.net email is sponsored by Windows: >> >>>> >> >>>> Build for Windows Store. >> >>>> >> >>>> http://p.sf.net/sfu/windows-**dev2dev< >> http://p.sf.net/sfu/windows-dev2dev> >> >>>> ______________________________**_________________ >> >>>> Postgres-xc-developers mailing list >> >>>> Postgres-xc-developers@lists.**sourceforge.net< >> Pos...@li...> >> >>>> >> https://lists.sourceforge.net/**lists/listinfo/postgres-xc-**developers< >> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers> >> >>>> >> >>>> >> >>> >> >> >> >> >> ------------------------------------------------------------------------------ >> >> This SF.net email is sponsored by Windows: >> >> >> >> Build for Windows Store. >> >> >> >> http://p.sf.net/sfu/windows-dev2dev >> >> _______________________________________________ >> >> Postgres-xc-developers mailing list >> >> Pos...@li... >> >> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >> >> >> >> >> > >> >> >> >> >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by Windows: >> >> Build for Windows Store. >> >> http://p.sf.net/sfu/windows-dev2dev >> _______________________________________________ >> Postgres-xc-developers mailing list >> Pos...@li... >> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >> > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Windows: > > Build for Windows Store. > > http://p.sf.net/sfu/windows-dev2dev > _______________________________________________ > Postgres-xc-developers mailing list > Pos...@li... > https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > > -- -- *Abbas* Architect Ph: 92.334.5100153 Skype ID: gabbasb www.enterprisedb.co <http://www.enterprisedb.com/>m<http://www.enterprisedb.com/> * Follow us on Twitter* @EnterpriseDB Visit EnterpriseDB for tutorials, webinars, whitepapers<http://www.enterprisedb.com/resources-community>and more<http://www.enterprisedb.com/resources-community> |
From: Tomonari K. <kat...@po...> - 2013-07-05 03:53:53
|
Hi Ashutosh, Abbas, Sorry for slow response.. But still I can not run regression test. >>Ashutosh > see if copying query->rtable solves the issue. The changed code would look > like > > 3112 crte_context->crte_rtable = > list_concat(crte_context->crte_rtable, > 3113 > list_copy(query->rtable)); > I've changed source as you said, and it seems resolving my problem(*). (*) below query falt in endless loop. ------------------------------------------------------------------ EXECUTE DIRECT ON (data1) $$ SELECT count(*) FROM (SELECT * FROM pg_locks l LEFT JOIN (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a $$ ------------------------------------------------------------------ But I couldn't run regression test with this source too. It stoped same test-case(xmlmap.sql). >>Abbas > Since you are getting a crash even without your patch there must be some > thing wrong in the deployment. > Can you try doing > ./configure --enable-debug --enable-cassert CFLAGS='-O0' > and then see whether its an assertion failure or not? > Also can you see which SQL statement is causing the crash in xmlmap.sql? > I've tried the configure you said. I didn't get any assertion failure, but regression test had stoped in "test collate". When Postgres-XC crashed with xmlmap.sql, I found The SQL statement which is causing the crash. ---- DECLARE xc CURSOR WITH HOLD FOR SELECT * FROM testxmlschema.test1 ORDER BY 1, 2; ---- I think these are another problems. Because I get same result with or without patched Postgres-XC. so I want to discuss on another mails. regards, ------------ NTT Software Corporation Tomonari Katsumata (2013/07/03 12:13), Abbas Butt wrote: > Since you are getting a crash even without your patch there must be some > thing wrong in the deployment. > Can you try doing > ./configure --enable-debug --enable-cassert CFLAGS='-O0' > and then see whether its an assertion failure or not? > Also can you see which SQL statement is causing the crash in xmlmap.sql? > > On Mon, Jul 1, 2013 at 4:51 PM, Tomonari Katsumata < > t.k...@gm...> wrote: > >> Hi, >> >> I've tried regression test, but I could not >> get right result. >> Both patched and un-patched Postgres-XC get >> same result, so I think my process is bad. >> >> I run a gtm, a gtm_proxy, a coordinator, a datanode >> in one server(CentOS6.4 x86_64 on VMWare), >> and hit "make installcheck". >> The configure option is [--enable-debug CFLAGS=""]. >> >> What is right way to run the regression test? >> >> output is below. >> --------------------------------------------------------- >> test tablespace ... ok >> test boolean ... ok >> test char ... ok >> test name ... ok >> test varchar ... ok >> test text ... ok >> test int2 ... ok >> test int4 ... ok >> test int8 ... ok >> test oid ... ok >> test float4 ... ok >> test float8 ... ok >> test bit ... ok >> test numeric ... ok >> test txid ... ok >> test uuid ... ok >> test enum ... FAILED >> test money ... ok >> test rangetypes ... ok >> test strings ... ok >> test numerology ... ok >> test point ... ok >> test lseg ... ok >> test box ... ok >> test path ... ok >> test polygon ... ok >> test circle ... ok >> test date ... ok >> test time ... ok >> test timetz ... ok >> test timestamp ... ok >> test timestamptz ... ok >> test interval ... ok >> test abstime ... ok >> test reltime ... ok >> test tinterval ... ok >> test inet ... ok >> test macaddr ... ok >> test tstypes ... ok >> test comments ... ok >> test geometry ... ok >> test horology ... ok >> test regex ... ok >> test oidjoins ... ok >> test type_sanity ... ok >> test opr_sanity ... ok >> test insert ... ok >> test create_function_1 ... ok >> test create_type ... ok >> test create_table ... ok >> test create_function_2 ... ok >> test create_function_3 ... ok >> test copy ... ok >> test copyselect ... ok >> test create_misc ... ok >> test create_operator ... ok >> test create_index ... FAILED >> test create_view ... ok >> test create_aggregate ... ok >> test create_cast ... ok >> test constraints ... FAILED >> test triggers ... ok >> test inherit ... FAILED >> test create_table_like ... ok >> test typed_table ... ok >> test vacuum ... ok >> test drop_if_exists ... ok >> test sanity_check ... ok >> test errors ... ok >> test select ... ok >> test select_into ... ok >> test select_distinct ... ok >> test select_distinct_on ... ok >> test select_implicit ... ok >> test select_having ... ok >> test subselect ... ok >> test union ... ok >> test case ... ok >> test join ... FAILED >> test aggregates ... FAILED >> test transactions ... ok >> test random ... ok >> test portals ... ok >> test arrays ... FAILED >> test btree_index ... ok >> test hash_index ... ok >> test update ... ok >> test delete ... ok >> test namespace ... ok >> test prepared_xacts ... ok >> test privileges ... FAILED >> test security_label ... ok >> test collate ... FAILED >> test misc ... ok >> test rules ... ok >> test select_views ... ok >> test portals_p2 ... ok >> test foreign_key ... ok >> test cluster ... ok >> test dependency ... ok >> test guc ... ok >> test bitmapops ... ok >> test combocid ... ok >> test tsearch ... ok >> test tsdicts ... ok >> test foreign_data ... ok >> test window ... ok >> test xmlmap ... FAILED (test process exited with exit >> code 2) >> test functional_deps ... FAILED (test process exited with exit >> code 2) >> test advisory_lock ... FAILED (test process exited with exit >> code 2) >> test json ... FAILED (test process exited with exit >> code 2) >> test plancache ... FAILED (test process exited with exit >> code 2) >> test limit ... FAILED (test process exited with exit >> code 2) >> test plpgsql ... FAILED (test process exited with exit >> code 2) >> test copy2 ... FAILED (test process exited with exit >> code 2) >> test temp ... FAILED (test process exited with exit >> code 2) >> test domain ... FAILED (test process exited with exit >> code 2) >> test rangefuncs ... FAILED (test process exited with exit >> code 2) >> test prepare ... FAILED (test process exited with exit >> code 2) >> test without_oid ... FAILED (test process exited with exit >> code 2) >> test conversion ... FAILED (test process exited with exit >> code 2) >> test truncate ... FAILED (test process exited with exit >> code 2) >> test alter_table ... FAILED (test process exited with exit >> code 2) >> test sequence ... FAILED (test process exited with exit >> code 2) >> test polymorphism ... FAILED (test process exited with exit >> code 2) >> test rowtypes ... FAILED (test process exited with exit >> code 2) >> test returning ... FAILED (test process exited with exit >> code 2) >> test largeobject ... FAILED (test process exited with exit >> code 2) >> test with ... FAILED (test process exited with exit >> code 2) >> test xml ... FAILED (test process exited with exit >> code 2) >> test stats ... FAILED (test process exited with exit >> code 2) >> test xc_create_function ... FAILED (test process exited with exit >> code 2) >> test xc_groupby ... FAILED (test process exited with exit >> code 2) >> test xc_distkey ... FAILED (test process exited with exit >> code 2) >> test xc_having ... FAILED (test process exited with exit >> code 2) >> test xc_temp ... FAILED (test process exited with exit >> code 2) >> test xc_remote ... FAILED (test process exited with exit >> code 2) >> test xc_node ... FAILED (test process exited with exit >> code 2) >> test xc_FQS ... FAILED (test process exited with exit >> code 2) >> test xc_FQS_join ... FAILED (test process exited with exit >> code 2) >> test xc_misc ... FAILED (test process exited with exit >> code 2) >> test xc_triggers ... FAILED (test process exited with exit >> code 2) >> test xc_trigship ... FAILED (test process exited with exit >> code 2) >> test xc_constraints ... FAILED (test process exited with exit >> code 2) >> test xc_copy ... FAILED (test process exited with exit >> code 2) >> test xc_alter_table ... FAILED (test process exited with exit >> code 2) >> test xc_sequence ... FAILED (test process exited with exit >> code 2) >> test xc_prepared_xacts ... FAILED (test process exited with exit >> code 2) >> test xc_notrans_block ... FAILED (test process exited with exit >> code 2) >> test xc_limit ... FAILED (test process exited with exit >> code 2) >> test xc_sort ... FAILED (test process exited with exit >> code 2) >> test xc_returning ... FAILED (test process exited with exit >> code 2) >> test xc_params ... FAILED (test process exited with exit >> code 2) >> ========================= >> 55 of 153 tests failed. >> ========================= >> >> >> 2013/7/1 Tomonari Katsumata <kat...@po...> >> >>> Hi Ashutosh, >>> >>> OK, I'll try regression test. >>> Please wait for the result. >>> >>> regards, >>> ------------ >>> NTT Software Corporation >>> Tomonari Katsumata >>> >>> (2013/07/01 17:06), Ashutosh Bapat wrote: >>>> Hi Tomonori, >>>> >>>> >>>> >>>> On Mon, Jul 1, 2013 at 1:33 PM, Tomonari Katsumata < >>>> kat...@po...> wrote: >>>> >>>>> Hi Ashutosh and all, >>>>> >>>>> Sorry for late response. >>>>> I made a patch for resolving the problem I mentioned before. >>>>> >>>>> I thought the reason of this problem is parsing query twice. >>>>> because of this, the rtable is made from same Lists and become >>>>> cycliced List. >>>>> I fixed this problem with making former List empty. >>>>> >>>>> I'm not sure this fix leads any anothre problems but >>>>> the problem query I mentioned before works fine. >>>>> >>>>> This patch is against for >>> "**a074cac9b6b507e6d4b58c5004673f**6cc65fcde1". >>>>> >>>> You can check the robustness of patch by running regression. Please let >>> me >>>> know what you see. >>>> >>>> >>>>> regards, >>>>> ------------------ >>>>> NTT Software Corporation >>>>> Tomonari Katsumata >>>>> >>>>> >>>>> (2013/06/17 18:53), Ashutosh Bapat wrote: >>>>> >>>>>> Hi Tomonari, >>>>>> In which function have you taken this debug info? What is list1 and >>> list2? >>>>>> >>>>>> On Mon, Jun 17, 2013 at 10:13 AM, Tomonari Katsumata < >>>>>> kat...@po....**jp <kat...@po... >>>>>> wrote: >>>>>> >>>>>> Hi Ashtosh, >>>>>>> Sorry for slow response. >>>>>>> >>>>>>> I've watched the each lists at list_concat function. >>>>>>> >>>>>>> This function is called several times, but the lists before >>>>>>> last infinitely roop are like below. >>>>>>> >>>>>>> [list1] >>>>>>> (gdb) p *list1->head >>>>>>> $18 = {data = {ptr_value = 0x17030e8, int_value = 24129768, >>>>>>> oid_value = 24129768}, next = 0x170d418} >>>>>>> (gdb) p *list1->head->next >>>>>>> $19 = {data = {ptr_value = 0x17033d0, int_value = 24130512, >>>>>>> oid_value = 24130512}, next = 0x170fd40} >>>>>>> (gdb) p *list1->head->next->next >>>>>>> $20 = {data = {ptr_value = 0x170ae58, int_value = 24161880, >>>>>>> oid_value = 24161880}, next = 0x171e6c8} >>>>>>> (gdb) p *list1->head->next->next->next >>>>>>> $21 = {data = {ptr_value = 0x1702ca8, int_value = 24128680, >>>>>>> oid_value = 24128680}, next = 0x171ed28} >>>>>>> (gdb) p *list1->head->next->next->**next->next >>>>>>> $22 = {data = {ptr_value = 0x170af68, int_value = 24162152, >>>>>>> oid_value = 24162152}, next = 0x171f3a0} >>>>>>> (gdb) p *list1->head->next->next->**next->next->next >>>>>>> $23 = {data = {ptr_value = 0x170b0a8, int_value = 24162472, >>>>>>> oid_value = 24162472}, next = 0x170b7c0} >>>>>>> (gdb) p *list1->head->next->next->**next->next->next->next >>>>>>> $24 = {data = {ptr_value = 0x17035f0, int_value = 24131056, >>>>>>> oid_value = 24131056}, next = 0x1720998} >>>>>>> ---- from --- >>>>>>> (gdb) p *list1->head->next->next->**next->next->next->next->next >>>>>>> $25 = {data = {ptr_value = 0x17209b8, int_value = 24250808, >>>>>>> oid_value = 24250808}, next = 0x1721190} >>>>>>> (gdb) p >>> *list1->head->next->next->**next->next->next->next->next->**next >>>>>>> $26 = {data = {ptr_value = 0x17211b0, int_value = 24252848, >>>>>>> oid_value = 24252848}, next = 0x1721988} >>>>>>> (gdb) p *list1->head->next->next->**next->next->next->next->next->** >>>>>>> next->next >>>>>>> $27 = {data = {ptr_value = 0x17219a8, int_value = 24254888, >>>>>>> oid_value = 24254888}, next = 0x1722018} >>>>>>> (gdb) p >>>>>>> *list1->head->next->next->**next->next->next->next->next->** >>>>>>> next->next->next >>>>>>> $28 = {data = {ptr_value = 0x1722038, int_value = 24256568, >>>>>>> oid_value = 24256568}, next = 0x1722820} >>>>>>> (gdb) p >>>>>>> >>>>>>> *list1->head->next->next->**next->next->next->next->next->** >>>>>>> next->next->next->next >>>>>>> $29 = {data = {ptr_value = 0x1722840, int_value = 24258624, >>>>>>> oid_value = 24258624}, next = 0x0} >>>>>>> ---- to ---- >>>>>>> >>>>>>> [list2] >>>>>>> (gdb) p *list2->head >>>>>>> $31 = {data = {ptr_value = 0x17209b8, int_value = 24250808, >>>>>>> oid_value = 24250808}, next = 0x1721190} >>>>>>> (gdb) p *list2->head->next >>>>>>> $32 = {data = {ptr_value = 0x17211b0, int_value = 24252848, >>>>>>> oid_value = 24252848}, next = 0x1721988} >>>>>>> (gdb) p *list2->head->next->next >>>>>>> $33 = {data = {ptr_value = 0x17219a8, int_value = 24254888, >>>>>>> oid_value = 24254888}, next = 0x1722018} >>>>>>> (gdb) p *list2->head->next->next->next >>>>>>> $34 = {data = {ptr_value = 0x1722038, int_value = 24256568, >>>>>>> oid_value = 24256568}, next = 0x1722820} >>>>>>> (gdb) p *list2->head->next->next->**next->next >>>>>>> $35 = {data = {ptr_value = 0x1722840, int_value = 24258624, >>>>>>> oid_value = 24258624}, next = 0x0} >>>>>>> ---- >>>>>>> >>>>>>> list1's last five elements are same with list2's all elements. >>>>>>> (in above example, between "from" and "to" in list1 equal all of >>> list2) >>>>>>> This is cause of infinitely roop, but I can not >>>>>>> watch deeper. >>>>>>> Because some values from gdb are optimized and un-displayed. >>>>>>> I tried compile with CFLAGS=O0, but I can't. >>>>>>> >>>>>>> What can I do more ? >>>>>>> >>>>>>> regards, >>>>>>> ------------------ >>>>>>> NTT Software Corporation >>>>>>> Tomonari Katsumata >>>>>>> >>>>>>> (2013/06/12 21:04), Ashutosh Bapat wrote: >>>>>>> > Hi Tomonari, >>>>>>> > Can you please check the list's sanity before calling >>>>>>> pgxc_collect_RTE() >>>>>>> > and at every point in the minions of this function. My primary >>>>>>> suspect >>>>>>> is >>>>>>> > the line pgxcplan.c:3094. We should copy the list before >>>>>>> concatenating it. >>>>>>> > >>>>>>> > >>>>>>> > On Wed, Jun 12, 2013 at 2:26 PM, Tomonari Katsumata < >>>>>>> > kat...@po....**jp< >>> kat...@po...>> >>>>>>> wrote: >>>>>>> > >>>>>>> >> Hi Ashutosh, >>>>>>> >> >>>>>>> >> Thank you for the response. >>>>>>> >> >>>>>>> >> (2013/06/12 14:43), Ashutosh Bapat wrote: >>>>>>> >> >> Hi, >>>>>>> >> >> > >>>>>>> >> >> > I've investigated this problem(BUG:3614369). >>>>>>> >> >> > >>>>>>> >> >> > I caught the cause of it, but I can not >>>>>>> >> >> > find where to fix. >>>>>>> >> >> > >>>>>>> >> >> > The problem occurs when "pgxc_collect_RTE_walker" is >>> called >>>>>>> >> infinitely. >>>>>>> >> >> > It seems that rtable(List of RangeTable) become cyclic >>> List. >>>>>>> >> >> > I'm not sure where the List is made. >>>>>>> >> >> > >>>>>>> >> >> > >>>>>>> >> > I guess, we are talking about EXECUTE DIRECT statement that >>> you >>>>>>> have >>>>>>> >> > mentioned earlier. >>>>>>> >> >>>>>>> >> Yes, that's right. >>>>>>> >> I'm talking about EXECUTE DIRECT statement like below. >>>>>>> >> --- >>>>>>> >> EXECUTE DIRECT ON (data1) $$ >>>>>>> >> SELECT >>>>>>> >> count(*) >>>>>>> >> FROM >>>>>>> >> (SELECT * FROM pg_locks l LEFT JOIN >>>>>>> >> (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a >>>>>>> >> $$ >>>>>>> >> --- >>>>>>> >> >>>>>>> >> > The function pgxc_collect_RTE_walker() is a recursive >>>>>>> >> > function. The condition to end the recursion is if the given >>>>>>> node is >>>>>>> >> NULL. >>>>>>> >> > We have to look at if that condition is met and if not why. >>>>>>> >> > >>>>>>> >> I investigated it deeper, and I noticed that >>>>>>> >> the infinitely loop happens at the function >>> "range_table_walker()". >>>>>>> >> >>>>>>> >> Please see below trace. >>>>>>> >> =========================== >>>>>>> >> Breakpoint 1, range_table_walker (rtable=0x15e7968, >>> walker=0x612c70 >>>>>>> >> <pgxc_collect_RTE_walker>, context=0x7fffd2de31c0, >>>>>>> >> flags=0) at nodeFuncs.c:1908 >>>>>>> >> 1908 in nodeFuncs.c >>>>>>> >> >>>>>>> >> (gdb) p *rtable >>>>>>> >> $10 = {type = T_List, length = 5, head = 0x15e7998, tail = >>>>>>> 0x15e9820} >>>>>>> >> (gdb) p *rtable->head >>>>>>> >> $11 = {data = {ptr_value = 0x15e79b8, int_value = 22968760, >>>>>>> oid_value = >>>>>>> >> 22968760}, next = 0x15e8190} >>>>>>> >> (gdb) p *rtable->head->next >>>>>>> >> $12 = {data = {ptr_value = 0x15e81b0, int_value = 22970800, >>>>>>> oid_value = >>>>>>> >> 22970800}, next = 0x15e8988} >>>>>>> >> (gdb) p *rtable->head->next->next >>>>>>> >> $13 = {data = {ptr_value = 0x15e89a8, int_value = 22972840, >>>>>>> oid_value = >>>>>>> >> 22972840}, next = 0x15e9018} >>>>>>> >> (gdb) p *rtable->head->next->next->**next >>>>>>> >> $14 = {data = {ptr_value = 0x15e9038, int_value = 22974520, >>>>>>> oid_value = >>>>>>> >> 22974520}, next = 0x15e9820} >>>>>>> >> (gdb) p *rtable->head->next->next->**next->next >>>>>>> >> $15 = {data = {ptr_value = 0x15e9840, int_value = 22976576, >>>>>>> oid_value = >>>>>>> >> 22976576}, next = 0x15e7998} >>>>>>> >> =========================== >>>>>>> >> >>>>>>> >> The line which starts with "$15" has 0x15e7998 as its next >>> data. >>>>>>> >> But it is the head pointer(see the line which starts with $10). >>>>>>> >> >>>>>>> >> And in range_table_walker(), the function is called >>> recursively. >>>>>>> >> -------- >>>>>>> >> ... >>>>>>> >> if (!(flags & QTW_IGNORE_RANGE_TABLE)) >>>>>>> >> { >>>>>>> >> if (range_table_walker(query->**rtable, >>> walker, >>>>>>> context, >>>>>>> >> flags)) >>>>>>> >> return true; >>>>>>> >> } >>>>>>> >> ... >>>>>>> >> -------- >>>>>>> >> >>>>>>> >> We should make rtable right or deal with "flags" properly. >>>>>>> >> But I can't find where to do it... >>>>>>> >> >>>>>>> >> What do you think ? >>>>>>> >> >>>>>>> >> regards, >>>>>>> >> --------- >>>>>>> >> NTT Software Corporation >>>>>>> >> Tomonari Katsumata >>>>>>> >> >>>>>>> >> >>>>>>> >> >>>>>>> >> >>>>>>> >> >>>>>>> >>>>>>> ------------------------------**------------------------------** >>>>>>> ------------------ >>>>>>> >> This SF.net email is sponsored by Windows: >>>>>>> >> >>>>>>> >> Build for Windows Store. >>>>>>> >> >>>>>>> >> http://p.sf.net/sfu/windows-**dev2dev< >>> http://p.sf.net/sfu/windows-dev2dev> >>>>>>> >> ______________________________**_________________ >>>>>>> >> Postgres-xc-developers mailing list >>>>>>> >> Postgres-xc-developers@lists.**sourceforge.net< >>> Pos...@li...> >>>>>>> >> https://lists.sourceforge.net/**lists/listinfo/postgres-xc-** >>>>>>> developers< >>> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers> >>>>>>> >> >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> ------------------------------**------------------------------** >>>>>>> ------------------ >>>>>>> This SF.net email is sponsored by Windows: >>>>>>> >>>>>>> Build for Windows Store. >>>>>>> >>>>>>> http://p.sf.net/sfu/windows-**dev2dev< >>> http://p.sf.net/sfu/windows-dev2dev> >>>>>>> ______________________________**_________________ >>>>>>> Postgres-xc-developers mailing list >>>>>>> Postgres-xc-developers@lists.**sourceforge.net< >>> Pos...@li...> >>> https://lists.sourceforge.net/**lists/listinfo/postgres-xc-**developers< >>> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers> >>>>>>> >>>>> >>> ------------------------------------------------------------------------------ >>>>> This SF.net email is sponsored by Windows: >>>>> >>>>> Build for Windows Store. >>>>> >>>>> http://p.sf.net/sfu/windows-dev2dev >>>>> _______________________________________________ >>>>> Postgres-xc-developers mailing list >>>>> Pos...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >>>>> >>>>> >>> >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> This SF.net email is sponsored by Windows: >>> >>> Build for Windows Store. >>> >>> http://p.sf.net/sfu/windows-dev2dev >>> _______________________________________________ >>> Postgres-xc-developers mailing list >>> Pos...@li... >>> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >>> >> >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by Windows: >> >> Build for Windows Store. >> >> http://p.sf.net/sfu/windows-dev2dev >> _______________________________________________ >> Postgres-xc-developers mailing list >> Pos...@li... >> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >> >> > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Windows: > > Build for Windows Store. > > http://p.sf.net/sfu/windows-dev2dev > > > _______________________________________________ > Postgres-xc-developers mailing list > Pos...@li... > https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers |
From: Abbas B. <abb...@en...> - 2013-07-16 06:54:14
|
Hi Tomonari, Can you please continue your work by having a cluster configured in such a manner that it has at least two datanodes and one coordinator. This way you can avoid the crash in the regression and proceed with your work. Thanks Regards On Fri, Jul 5, 2013 at 8:53 AM, Tomonari Katsumata < kat...@po...> wrote: > Hi Ashutosh, Abbas, > > Sorry for slow response.. > But still I can not run regression test. > > >>Ashutosh > > > see if copying query->rtable solves the issue. The changed code would > look > > like > > > > 3112 crte_context->crte_rtable = > > list_concat(crte_context->crte_rtable, > > 3113 > > list_copy(query->rtable)); > > > I've changed source as you said, and it seems resolving my problem(*). > (*) below query falt in endless loop. > ------------------------------------------------------------------ > > EXECUTE DIRECT ON (data1) $$ > SELECT > count(*) > FROM > (SELECT * FROM pg_locks l LEFT JOIN > (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a > $$ > ------------------------------------------------------------------ > > But I couldn't run regression test with this source too. > It stoped same test-case(xmlmap.sql). > > >>Abbas > > > Since you are getting a crash even without your patch there must be some > > thing wrong in the deployment. > > Can you try doing > > ./configure --enable-debug --enable-cassert CFLAGS='-O0' > > and then see whether its an assertion failure or not? > > Also can you see which SQL statement is causing the crash in xmlmap.sql? > > > I've tried the configure you said. > I didn't get any assertion failure, but regression test had > stoped in "test collate". > > > When Postgres-XC crashed with xmlmap.sql, > I found The SQL statement which is causing the crash. > ---- > DECLARE xc CURSOR WITH HOLD FOR SELECT * FROM testxmlschema.test1 ORDER BY > 1, 2; > ---- > > I think these are another problems. > Because I get same result with or without patched Postgres-XC. > so I want to discuss on another mails. > > > > regards, > ------------ > NTT Software Corporation > Tomonari Katsumata > > > > > (2013/07/03 12:13), Abbas Butt wrote: > > Since you are getting a crash even without your patch there must be some > thing wrong in the deployment. > Can you try doing > ./configure --enable-debug --enable-cassert CFLAGS='-O0' > and then see whether its an assertion failure or not? > Also can you see which SQL statement is causing the crash in xmlmap.sql? > > On Mon, Jul 1, 2013 at 4:51 PM, Tomonari Katsumata <t.k...@gm...> wrote: > > > Hi, > > I've tried regression test, but I could not > get right result. > Both patched and un-patched Postgres-XC get > same result, so I think my process is bad. > > I run a gtm, a gtm_proxy, a coordinator, a datanode > in one server(CentOS6.4 x86_64 on VMWare), > and hit "make installcheck". > The configure option is [--enable-debug CFLAGS=""]. > > What is right way to run the regression test? > > output is below. > --------------------------------------------------------- > test tablespace ... ok > test boolean ... ok > test char ... ok > test name ... ok > test varchar ... ok > test text ... ok > test int2 ... ok > test int4 ... ok > test int8 ... ok > test oid ... ok > test float4 ... ok > test float8 ... ok > test bit ... ok > test numeric ... ok > test txid ... ok > test uuid ... ok > test enum ... FAILED > test money ... ok > test rangetypes ... ok > test strings ... ok > test numerology ... ok > test point ... ok > test lseg ... ok > test box ... ok > test path ... ok > test polygon ... ok > test circle ... ok > test date ... ok > test time ... ok > test timetz ... ok > test timestamp ... ok > test timestamptz ... ok > test interval ... ok > test abstime ... ok > test reltime ... ok > test tinterval ... ok > test inet ... ok > test macaddr ... ok > test tstypes ... ok > test comments ... ok > test geometry ... ok > test horology ... ok > test regex ... ok > test oidjoins ... ok > test type_sanity ... ok > test opr_sanity ... ok > test insert ... ok > test create_function_1 ... ok > test create_type ... ok > test create_table ... ok > test create_function_2 ... ok > test create_function_3 ... ok > test copy ... ok > test copyselect ... ok > test create_misc ... ok > test create_operator ... ok > test create_index ... FAILED > test create_view ... ok > test create_aggregate ... ok > test create_cast ... ok > test constraints ... FAILED > test triggers ... ok > test inherit ... FAILED > test create_table_like ... ok > test typed_table ... ok > test vacuum ... ok > test drop_if_exists ... ok > test sanity_check ... ok > test errors ... ok > test select ... ok > test select_into ... ok > test select_distinct ... ok > test select_distinct_on ... ok > test select_implicit ... ok > test select_having ... ok > test subselect ... ok > test union ... ok > test case ... ok > test join ... FAILED > test aggregates ... FAILED > test transactions ... ok > test random ... ok > test portals ... ok > test arrays ... FAILED > test btree_index ... ok > test hash_index ... ok > test update ... ok > test delete ... ok > test namespace ... ok > test prepared_xacts ... ok > test privileges ... FAILED > test security_label ... ok > test collate ... FAILED > test misc ... ok > test rules ... ok > test select_views ... ok > test portals_p2 ... ok > test foreign_key ... ok > test cluster ... ok > test dependency ... ok > test guc ... ok > test bitmapops ... ok > test combocid ... ok > test tsearch ... ok > test tsdicts ... ok > test foreign_data ... ok > test window ... ok > test xmlmap ... FAILED (test process exited with exit > code 2) > test functional_deps ... FAILED (test process exited with exit > code 2) > test advisory_lock ... FAILED (test process exited with exit > code 2) > test json ... FAILED (test process exited with exit > code 2) > test plancache ... FAILED (test process exited with exit > code 2) > test limit ... FAILED (test process exited with exit > code 2) > test plpgsql ... FAILED (test process exited with exit > code 2) > test copy2 ... FAILED (test process exited with exit > code 2) > test temp ... FAILED (test process exited with exit > code 2) > test domain ... FAILED (test process exited with exit > code 2) > test rangefuncs ... FAILED (test process exited with exit > code 2) > test prepare ... FAILED (test process exited with exit > code 2) > test without_oid ... FAILED (test process exited with exit > code 2) > test conversion ... FAILED (test process exited with exit > code 2) > test truncate ... FAILED (test process exited with exit > code 2) > test alter_table ... FAILED (test process exited with exit > code 2) > test sequence ... FAILED (test process exited with exit > code 2) > test polymorphism ... FAILED (test process exited with exit > code 2) > test rowtypes ... FAILED (test process exited with exit > code 2) > test returning ... FAILED (test process exited with exit > code 2) > test largeobject ... FAILED (test process exited with exit > code 2) > test with ... FAILED (test process exited with exit > code 2) > test xml ... FAILED (test process exited with exit > code 2) > test stats ... FAILED (test process exited with exit > code 2) > test xc_create_function ... FAILED (test process exited with exit > code 2) > test xc_groupby ... FAILED (test process exited with exit > code 2) > test xc_distkey ... FAILED (test process exited with exit > code 2) > test xc_having ... FAILED (test process exited with exit > code 2) > test xc_temp ... FAILED (test process exited with exit > code 2) > test xc_remote ... FAILED (test process exited with exit > code 2) > test xc_node ... FAILED (test process exited with exit > code 2) > test xc_FQS ... FAILED (test process exited with exit > code 2) > test xc_FQS_join ... FAILED (test process exited with exit > code 2) > test xc_misc ... FAILED (test process exited with exit > code 2) > test xc_triggers ... FAILED (test process exited with exit > code 2) > test xc_trigship ... FAILED (test process exited with exit > code 2) > test xc_constraints ... FAILED (test process exited with exit > code 2) > test xc_copy ... FAILED (test process exited with exit > code 2) > test xc_alter_table ... FAILED (test process exited with exit > code 2) > test xc_sequence ... FAILED (test process exited with exit > code 2) > test xc_prepared_xacts ... FAILED (test process exited with exit > code 2) > test xc_notrans_block ... FAILED (test process exited with exit > code 2) > test xc_limit ... FAILED (test process exited with exit > code 2) > test xc_sort ... FAILED (test process exited with exit > code 2) > test xc_returning ... FAILED (test process exited with exit > code 2) > test xc_params ... FAILED (test process exited with exit > code 2) > ========================= > 55 of 153 tests failed. > ========================= > > > 2013/7/1 Tomonari Katsumata <kat...@po...> <kat...@po...> > > Hi Ashutosh, > > OK, I'll try regression test. > Please wait for the result. > > regards, > ------------ > NTT Software Corporation > Tomonari Katsumata > > (2013/07/01 17:06), Ashutosh Bapat wrote: > > Hi Tomonori, > > > > On Mon, Jul 1, 2013 at 1:33 PM, Tomonari Katsumata <kat...@po...> wrote: > > > Hi Ashutosh and all, > > Sorry for late response. > I made a patch for resolving the problem I mentioned before. > > I thought the reason of this problem is parsing query twice. > because of this, the rtable is made from same Lists and become > cycliced List. > I fixed this problem with making former List empty. > > I'm not sure this fix leads any anothre problems but > the problem query I mentioned before works fine. > > This patch is against for > > "**a074cac9b6b507e6d4b58c5004673f**6cc65fcde1". > > You can check the robustness of patch by running regression. Please let > > me > > know what you see. > > > > regards, > ------------------ > NTT Software Corporation > Tomonari Katsumata > > > (2013/06/17 18:53), Ashutosh Bapat wrote: > > > Hi Tomonari, > In which function have you taken this debug info? What is list1 and > > list2? > > On Mon, Jun 17, 2013 at 10:13 AM, Tomonari Katsumata <kat...@po....**jp <kat...@po... > > wrote: > > Hi Ashtosh, > > Sorry for slow response. > > I've watched the each lists at list_concat function. > > This function is called several times, but the lists before > last infinitely roop are like below. > > [list1] > (gdb) p *list1->head > $18 = {data = {ptr_value = 0x17030e8, int_value = 24129768, > oid_value = 24129768}, next = 0x170d418} > (gdb) p *list1->head->next > $19 = {data = {ptr_value = 0x17033d0, int_value = 24130512, > oid_value = 24130512}, next = 0x170fd40} > (gdb) p *list1->head->next->next > $20 = {data = {ptr_value = 0x170ae58, int_value = 24161880, > oid_value = 24161880}, next = 0x171e6c8} > (gdb) p *list1->head->next->next->next > $21 = {data = {ptr_value = 0x1702ca8, int_value = 24128680, > oid_value = 24128680}, next = 0x171ed28} > (gdb) p *list1->head->next->next->**next->next > $22 = {data = {ptr_value = 0x170af68, int_value = 24162152, > oid_value = 24162152}, next = 0x171f3a0} > (gdb) p *list1->head->next->next->**next->next->next > $23 = {data = {ptr_value = 0x170b0a8, int_value = 24162472, > oid_value = 24162472}, next = 0x170b7c0} > (gdb) p *list1->head->next->next->**next->next->next->next > $24 = {data = {ptr_value = 0x17035f0, int_value = 24131056, > oid_value = 24131056}, next = 0x1720998} > ---- from --- > (gdb) p *list1->head->next->next->**next->next->next->next->next > $25 = {data = {ptr_value = 0x17209b8, int_value = 24250808, > oid_value = 24250808}, next = 0x1721190} > (gdb) p > > *list1->head->next->next->**next->next->next->next->next->**next > > $26 = {data = {ptr_value = 0x17211b0, int_value = 24252848, > oid_value = 24252848}, next = 0x1721988} > (gdb) p *list1->head->next->next->**next->next->next->next->next->** > next->next > $27 = {data = {ptr_value = 0x17219a8, int_value = 24254888, > oid_value = 24254888}, next = 0x1722018} > (gdb) p > *list1->head->next->next->**next->next->next->next->next->** > next->next->next > $28 = {data = {ptr_value = 0x1722038, int_value = 24256568, > oid_value = 24256568}, next = 0x1722820} > (gdb) p > > *list1->head->next->next->**next->next->next->next->next->** > next->next->next->next > $29 = {data = {ptr_value = 0x1722840, int_value = 24258624, > oid_value = 24258624}, next = 0x0} > ---- to ---- > > [list2] > (gdb) p *list2->head > $31 = {data = {ptr_value = 0x17209b8, int_value = 24250808, > oid_value = 24250808}, next = 0x1721190} > (gdb) p *list2->head->next > $32 = {data = {ptr_value = 0x17211b0, int_value = 24252848, > oid_value = 24252848}, next = 0x1721988} > (gdb) p *list2->head->next->next > $33 = {data = {ptr_value = 0x17219a8, int_value = 24254888, > oid_value = 24254888}, next = 0x1722018} > (gdb) p *list2->head->next->next->next > $34 = {data = {ptr_value = 0x1722038, int_value = 24256568, > oid_value = 24256568}, next = 0x1722820} > (gdb) p *list2->head->next->next->**next->next > $35 = {data = {ptr_value = 0x1722840, int_value = 24258624, > oid_value = 24258624}, next = 0x0} > ---- > > list1's last five elements are same with list2's all elements. > (in above example, between "from" and "to" in list1 equal all of > > list2) > > This is cause of infinitely roop, but I can not > watch deeper. > Because some values from gdb are optimized and un-displayed. > I tried compile with CFLAGS=O0, but I can't. > > What can I do more ? > > regards, > ------------------ > NTT Software Corporation > Tomonari Katsumata > > (2013/06/12 21:04), Ashutosh Bapat wrote: > > Hi Tomonari, > > Can you please check the list's sanity before calling > pgxc_collect_RTE() > > and at every point in the minions of this function. My primary > suspect > is > > the line pgxcplan.c:3094. We should copy the list before > concatenating it. > > > > > > On Wed, Jun 12, 2013 at 2:26 PM, Tomonari Katsumata < > > kat...@po....**jp< > > kat...@po...>> > > wrote: > > > >> Hi Ashutosh, > >> > >> Thank you for the response. > >> > >> (2013/06/12 14:43), Ashutosh Bapat wrote: > >> >> Hi, > >> >> > > >> >> > I've investigated this problem(BUG:3614369). > >> >> > > >> >> > I caught the cause of it, but I can not > >> >> > find where to fix. > >> >> > > >> >> > The problem occurs when "pgxc_collect_RTE_walker" is > > called > > >> infinitely. > >> >> > It seems that rtable(List of RangeTable) become cyclic > > List. > > >> >> > I'm not sure where the List is made. > >> >> > > >> >> > > >> > I guess, we are talking about EXECUTE DIRECT statement that > > you > > have > >> > mentioned earlier. > >> > >> Yes, that's right. > >> I'm talking about EXECUTE DIRECT statement like below. > >> --- > >> EXECUTE DIRECT ON (data1) $$ > >> SELECT > >> count(*) > >> FROM > >> (SELECT * FROM pg_locks l LEFT JOIN > >> (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a > >> $$ > >> --- > >> > >> > The function pgxc_collect_RTE_walker() is a recursive > >> > function. The condition to end the recursion is if the given > node is > >> NULL. > >> > We have to look at if that condition is met and if not why. > >> > > >> I investigated it deeper, and I noticed that > >> the infinitely loop happens at the function > > "range_table_walker()". > > >> > >> Please see below trace. > >> =========================== > >> Breakpoint 1, range_table_walker (rtable=0x15e7968, > > walker=0x612c70 > > >> <pgxc_collect_RTE_walker>, context=0x7fffd2de31c0, > >> flags=0) at nodeFuncs.c:1908 > >> 1908 in nodeFuncs.c > >> > >> (gdb) p *rtable > >> $10 = {type = T_List, length = 5, head = 0x15e7998, tail = > 0x15e9820} > >> (gdb) p *rtable->head > >> $11 = {data = {ptr_value = 0x15e79b8, int_value = 22968760, > oid_value = > >> 22968760}, next = 0x15e8190} > >> (gdb) p *rtable->head->next > >> $12 = {data = {ptr_value = 0x15e81b0, int_value = 22970800, > oid_value = > >> 22970800}, next = 0x15e8988} > >> (gdb) p *rtable->head->next->next > >> $13 = {data = {ptr_value = 0x15e89a8, int_value = 22972840, > oid_value = > >> 22972840}, next = 0x15e9018} > >> (gdb) p *rtable->head->next->next->**next > >> $14 = {data = {ptr_value = 0x15e9038, int_value = 22974520, > oid_value = > >> 22974520}, next = 0x15e9820} > >> (gdb) p *rtable->head->next->next->**next->next > >> $15 = {data = {ptr_value = 0x15e9840, int_value = 22976576, > oid_value = > >> 22976576}, next = 0x15e7998} > >> =========================== > >> > >> The line which starts with "$15" has 0x15e7998 as its next > > data. > > >> But it is the head pointer(see the line which starts with $10). > >> > >> And in range_table_walker(), the function is called > > recursively. > > >> -------- > >> ... > >> if (!(flags & QTW_IGNORE_RANGE_TABLE)) > >> { > >> if (range_table_walker(query->**rtable, > > walker, > > context, > >> flags)) > >> return true; > >> } > >> ... > >> -------- > >> > >> We should make rtable right or deal with "flags" properly. > >> But I can't find where to do it... > >> > >> What do you think ? > >> > >> regards, > >> --------- > >> NTT Software Corporation > >> Tomonari Katsumata > >> > >> > >> > >> > >> > > ------------------------------**------------------------------** > ------------------ > >> This SF.net email is sponsored by Windows: > >> > >> Build for Windows Store. > >> > >> http://p.sf.net/sfu/windows-**dev2dev< > > http://p.sf.net/sfu/windows-dev2dev> > > >> ______________________________**_________________ > >> Postgres-xc-developers mailing list > >> Postgres-xc-developers@lists.**sourceforge.net< > > Pos...@li...> > > >> https://lists.sourceforge.net/**lists/listinfo/postgres-xc-** > developers< > > https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers> > > >> > > > > > > > > > > > ------------------------------**------------------------------** > ------------------ > This SF.net email is sponsored by Windows: > > Build for Windows Store. > http://p.sf.net/sfu/windows-**dev2dev< > > http://p.sf.net/sfu/windows-dev2dev> > > ______________________________**_________________ > Postgres-xc-developers mailing listPostgres-xc-developers@lists.**sourceforge.net< > > Pos...@li...> > > https://lists.sourceforge.net/**lists/listinfo/postgres-xc-**developers< > https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers> <https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers> > > ------------------------------------------------------------------------------ > > This SF.net email is sponsored by Windows: > > Build for Windows Store. > http://p.sf.net/sfu/windows-dev2dev > _______________________________________________ > Postgres-xc-developers mailing lis...@li...https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Windows: > > Build for Windows Store. > http://p.sf.net/sfu/windows-dev2dev > _______________________________________________ > Postgres-xc-developers mailing lis...@li...https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Windows: > > Build for Windows Store. > http://p.sf.net/sfu/windows-dev2dev > _______________________________________________ > Postgres-xc-developers mailing lis...@li...https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Windows: > > Build for Windows Store. > http://p.sf.net/sfu/windows-dev2dev > > > > _______________________________________________ > Postgres-xc-developers mailing lis...@li...https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Windows: > > Build for Windows Store. > > http://p.sf.net/sfu/windows-dev2dev > _______________________________________________ > Postgres-xc-developers mailing list > Pos...@li... > https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > > -- -- *Abbas* Architect Ph: 92.334.5100153 Skype ID: gabbasb www.enterprisedb.co <http://www.enterprisedb.com/>m<http://www.enterprisedb.com/> * Follow us on Twitter* @EnterpriseDB Visit EnterpriseDB for tutorials, webinars, whitepapers<http://www.enterprisedb.com/resources-community>and more<http://www.enterprisedb.com/resources-community> |
From: Ashutosh B. <ash...@en...> - 2013-06-05 04:40:01
|
On Wed, Jun 5, 2013 at 9:57 AM, Tomonari Katsumata < kat...@po...> wrote: > Hi Suzuki-san, Ashutosh, > > >Suzuki-san > I don't make any user tables. > As the simple example I sent before, I use only system-catalogs. > > >Ashtosh > I'm developing database monitor tool and > I use "EXECUTE DIRECT" to get database statistics data from > particular coordinator/datanode. > > :) huh I think, monitoring tools should directly query the datanodes or coordinators. You will get snapshot warning, but that can be ignored I guess. If they start querying coordinators, there will be performance drop since coordinators directly handle the clients. Any other thoughts? > regard, > > --------- > NTT Software Corporation > Tomonari Katsumata > > (2013/06/04 13:10), Ashutosh Bapat wrote: > >> Hi Tomonari, >> >> Thanks for the bug report. >> >> I am curious to know, what's the purpose of using EXECUTE DIRECT? We >> discourage using Execute Direct in the applications. It's only for >> debugging purposes. >> >> >> On Tue, Jun 4, 2013 at 7:28 AM, Koichi Suzuki <koi...@gm...> >> **wrote: >> >> Thank you Katsumata-san for the report. >>> >>> Could you provide CREATE TABLE statement for each table involved with >>> some >>> of the data? >>> >>> I will ad this to the bug tracker after I recreate the issue. >>> >>> Best Regards; >>> >>> ---------- >>> Koichi Suzuki >>> >>> >>> 2013/6/4 Tomonari Katsumata <katsumata.tomonari@po.ntts.**co.jp<kat...@po...> >>> > >>> >>> Hi, I have a problem with query executing. >>>> >>>> I cant't have any response when I execute a query. >>>> This problem occurs when some conditions are met. >>>> >>>> The conditions are below. >>>> ------------------------------**------------------------------** >>>> --------- >>>> 1. Issuing "EXECUTE DIRECT" to Datanode(ofcourse, via Coordinator). >>>> >>>> 2. The Query Executing on Datanode has subquery on its FROM-clause. >>>> >>>> 3. In the subquery, it has a JOIN clause. >>>> >>>> 4. The Join clause is consisted with another subquery. >>>> ------------------------------**------------------------------** >>>> --------- >>>> >>>> >>>> Simple example query is below. >>>> ------------------------------**------------------------------**--- >>>> EXECUTE DIRECT ON (data1) $$ >>>> SELECT >>>> count(*) >>>> FROM >>>> (SELECT * FROM pg_locks l LEFT JOIN >>>> (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a >>>> $$ >>>> ------------------------------**------------------------------**--- >>>> >>>> FYI: >>>> This query works fine with Postgres-XC 1.0.3. >>>> Is this already known bug ? >>>> >>>> >>>> How can I avoid this problem ? >>>> And what kind of info do you need to investigate it ? >>>> >>>> ---------- >>>> NTT Software Corporation >>>> Tomonari Katsumata >>>> >>>> >>>> >>>> >>>> ------------------------------**------------------------------** >>>> ------------------ >>>> How ServiceNow helps IT people transform IT departments: >>>> 1. A cloud service to automate IT design, transition and operations >>>> 2. Dashboards that offer high-level views of enterprise services >>>> 3. A single system of record for all IT processes >>>> http://p.sf.net/sfu/**servicenow-d2d-j<http://p.sf.net/sfu/servicenow-d2d-j> >>>> ______________________________**_________________ >>>> Postgres-xc-developers mailing list >>>> Postgres-xc-developers@lists.**sourceforge.net<Pos...@li...> >>>> https://lists.sourceforge.net/**lists/listinfo/postgres-xc-**developers<https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers> >>>> >>>> >>> >>> ------------------------------**------------------------------** >>> ------------------ >>> How ServiceNow helps IT people transform IT departments: >>> 1. A cloud service to automate IT design, transition and operations >>> 2. Dashboards that offer high-level views of enterprise services >>> 3. A single system of record for all IT processes >>> http://p.sf.net/sfu/**servicenow-d2d-j<http://p.sf.net/sfu/servicenow-d2d-j> >>> ______________________________**_________________ >>> Postgres-xc-developers mailing list >>> Postgres-xc-developers@lists.**sourceforge.net<Pos...@li...> >>> https://lists.sourceforge.net/**lists/listinfo/postgres-xc-**developers<https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers> >>> >>> >>> >> > > -- > ------------------------------**-------------- > NTTソフトウェア株式会社 > 技術開発センター OSS基盤技術部門 > 勝俣 智成 > TEL:045-212-7665 > FAX:045-662-7856 > E-Mail: kat...@po....**jp<kat...@po...> > ------------------------------**-------------- > > > -- Best Wishes, Ashutosh Bapat EntepriseDB Corporation The Postgres Database Company |
From: 鈴木 幸市 <ko...@in...> - 2013-06-05 04:48:50
|
Now snapshot warning is disabled. Michael committed this patch. I tested the query with the current master as of this noon and I got (probably) correct result. Here's the result: koichi=# execute direct on (datanode1) $$ select count(*) from (select * from pg_locks) l left join (select * from pg_stat_activity) s on (l.database=s.datid); $$; count ------- 9 (1 row) koichi=# \q … koichi=# execute direct on (datanode1) $$ koichi$# select count(*) from pg_locks l left join pg_stat_activity s koichi$# on (l.database=s.datid); koichi$# $$; count ------- 11 (1 row) koichi=# Second statement is simpler version. Anyway, they seem to work find. Katsumata-san, could you try this with the latest head? It is available both from sourceforge and github. Regards; --- Koichi Suzuki On 2013/06/05, at 13:39, Ashutosh Bapat <ash...@en...> wrote: > > > > On Wed, Jun 5, 2013 at 9:57 AM, Tomonari Katsumata <kat...@po...> wrote: > Hi Suzuki-san, Ashutosh, > > >Suzuki-san > I don't make any user tables. > As the simple example I sent before, I use only system-catalogs. > > >Ashtosh > I'm developing database monitor tool and > I use "EXECUTE DIRECT" to get database statistics data from > particular coordinator/datanode. > > :) huh > > I think, monitoring tools should directly query the datanodes or coordinators. You will get snapshot warning, but that can be ignored I guess. If they start querying coordinators, there will be performance drop since coordinators directly handle the clients. > > Any other thoughts? > regard, > > --------- > NTT Software Corporation > Tomonari Katsumata > > (2013/06/04 13:10), Ashutosh Bapat wrote: > Hi Tomonari, > > Thanks for the bug report. > > I am curious to know, what's the purpose of using EXECUTE DIRECT? We > discourage using Execute Direct in the applications. It's only for > debugging purposes. > > > On Tue, Jun 4, 2013 at 7:28 AM, Koichi Suzuki <koi...@gm...>wrote: > > Thank you Katsumata-san for the report. > > Could you provide CREATE TABLE statement for each table involved with some > of the data? > > I will ad this to the bug tracker after I recreate the issue. > > Best Regards; > > ---------- > Koichi Suzuki > > > 2013/6/4 Tomonari Katsumata <kat...@po...> > > Hi, I have a problem with query executing. > > I cant't have any response when I execute a query. > This problem occurs when some conditions are met. > > The conditions are below. > --------------------------------------------------------------------- > 1. Issuing "EXECUTE DIRECT" to Datanode(ofcourse, via Coordinator). > > 2. The Query Executing on Datanode has subquery on its FROM-clause. > > 3. In the subquery, it has a JOIN clause. > > 4. The Join clause is consisted with another subquery. > --------------------------------------------------------------------- > > > Simple example query is below. > --------------------------------------------------------------- > EXECUTE DIRECT ON (data1) $$ > SELECT > count(*) > FROM > (SELECT * FROM pg_locks l LEFT JOIN > (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a > $$ > --------------------------------------------------------------- > > FYI: > This query works fine with Postgres-XC 1.0.3. > Is this already known bug ? > > > How can I avoid this problem ? > And what kind of info do you need to investigate it ? > > ---------- > NTT Software Corporation > Tomonari Katsumata > > > > > ------------------------------------------------------------------------------ > How ServiceNow helps IT people transform IT departments: > 1. A cloud service to automate IT design, transition and operations > 2. Dashboards that offer high-level views of enterprise services > 3. A single system of record for all IT processes > http://p.sf.net/sfu/servicenow-d2d-j > _______________________________________________ > Postgres-xc-developers mailing list > Pos...@li... > https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > > > > ------------------------------------------------------------------------------ > How ServiceNow helps IT people transform IT departments: > 1. A cloud service to automate IT design, transition and operations > 2. Dashboards that offer high-level views of enterprise services > 3. A single system of record for all IT processes > http://p.sf.net/sfu/servicenow-d2d-j > _______________________________________________ > Postgres-xc-developers mailing list > Pos...@li... > https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > > > > > > -- > -------------------------------------------- > NTTソフトウェア株式会社 > 技術開発センター OSS基盤技術部門 > 勝俣 智成 > TEL:045-212-7665 > FAX:045-662-7856 > E-Mail: kat...@po... > -------------------------------------------- > > > > > > -- > Best Wishes, > Ashutosh Bapat > EntepriseDB Corporation > The Postgres Database Company > ------------------------------------------------------------------------------ > How ServiceNow helps IT people transform IT departments: > 1. A cloud service to automate IT design, transition and operations > 2. Dashboards that offer high-level views of enterprise services > 3. A single system of record for all IT processes > http://p.sf.net/sfu/servicenow-d2d-j_______________________________________________ > Postgres-xc-developers mailing list > Pos...@li... > https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers |
From: Abbas B. <abb...@en...> - 2013-06-05 04:53:40
|
Snapshot warning comes when you connect directly to the datanode and not when an execute direct is issued for a datanode. That warning is still there. if (IS_PGXC_DATANODE && !isRestoreMode && snapshot_source == SNAPSHOT_UNDEFINED && IsPostmasterEnvironment && IsNormalProcessingMode() && !IsAutoVacuumLauncherProcess()) { elog(WARNING, "Do not have a GTM snapshot available"); } On Wed, Jun 5, 2013 at 9:48 AM, 鈴木 幸市 <ko...@in...> wrote: > Now snapshot warning is disabled. Michael committed this patch. > > I tested the query with the current master as of this noon and I got > (probably) correct result. > > Here's the result: > > koichi=# execute direct on (datanode1) $$ > select count(*) from (select * from pg_locks) l left join > (select * from pg_stat_activity) s on (l.database=s.datid); > $$; > count > ------- > 9 > (1 row) > > koichi=# \q > … > > koichi=# execute direct on (datanode1) $$ > koichi$# select count(*) from pg_locks l left join pg_stat_activity s > koichi$# on (l.database=s.datid); > koichi$# $$; > count > ------- > 11 > (1 row) > > koichi=# > > Second statement is simpler version. Anyway, they seem to work find. > > Katsumata-san, could you try this with the latest head? It is available > both from sourceforge and github. > > Regards; > --- > Koichi Suzuki > > > > On 2013/06/05, at 13:39, Ashutosh Bapat <ash...@en...> > wrote: > > > > > On Wed, Jun 5, 2013 at 9:57 AM, Tomonari Katsumata < > kat...@po...> wrote: > >> Hi Suzuki-san, Ashutosh, >> >> >Suzuki-san >> I don't make any user tables. >> As the simple example I sent before, I use only system-catalogs. >> >> >Ashtosh >> I'm developing database monitor tool and >> I use "EXECUTE DIRECT" to get database statistics data from >> particular coordinator/datanode. >> >> :) huh > > I think, monitoring tools should directly query the datanodes or > coordinators. You will get snapshot warning, but that can be ignored I > guess. If they start querying coordinators, there will be performance drop > since coordinators directly handle the clients. > > Any other thoughts? > >> regard, >> >> --------- >> NTT Software Corporation >> Tomonari Katsumata >> >> (2013/06/04 13:10), Ashutosh Bapat wrote: >> >>> Hi Tomonari, >>> >>> Thanks for the bug report. >>> >>> I am curious to know, what's the purpose of using EXECUTE DIRECT? We >>> discourage using Execute Direct in the applications. It's only for >>> debugging purposes. >>> >>> >>> On Tue, Jun 4, 2013 at 7:28 AM, Koichi Suzuki <koi...@gm... >>> >**wrote: >>> >>> Thank you Katsumata-san for the report. >>>> >>>> Could you provide CREATE TABLE statement for each table involved with >>>> some >>>> of the data? >>>> >>>> I will ad this to the bug tracker after I recreate the issue. >>>> >>>> Best Regards; >>>> >>>> ---------- >>>> Koichi Suzuki >>>> >>>> >>>> 2013/6/4 Tomonari Katsumata <katsumata.tomonari@po.ntts.**co.jp<kat...@po...> >>>> > >>>> >>>> Hi, I have a problem with query executing. >>>>> >>>>> I cant't have any response when I execute a query. >>>>> This problem occurs when some conditions are met. >>>>> >>>>> The conditions are below. >>>>> ------------------------------**------------------------------** >>>>> --------- >>>>> 1. Issuing "EXECUTE DIRECT" to Datanode(ofcourse, via Coordinator). >>>>> >>>>> 2. The Query Executing on Datanode has subquery on its FROM-clause. >>>>> >>>>> 3. In the subquery, it has a JOIN clause. >>>>> >>>>> 4. The Join clause is consisted with another subquery. >>>>> ------------------------------**------------------------------** >>>>> --------- >>>>> >>>>> >>>>> Simple example query is below. >>>>> ------------------------------**------------------------------**--- >>>>> EXECUTE DIRECT ON (data1) $$ >>>>> SELECT >>>>> count(*) >>>>> FROM >>>>> (SELECT * FROM pg_locks l LEFT JOIN >>>>> (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a >>>>> $$ >>>>> ------------------------------**------------------------------**--- >>>>> >>>>> FYI: >>>>> This query works fine with Postgres-XC 1.0.3. >>>>> Is this already known bug ? >>>>> >>>>> >>>>> How can I avoid this problem ? >>>>> And what kind of info do you need to investigate it ? >>>>> >>>>> ---------- >>>>> NTT Software Corporation >>>>> Tomonari Katsumata >>>>> >>>>> >>>>> >>>>> >>>>> ------------------------------**------------------------------** >>>>> ------------------ >>>>> How ServiceNow helps IT people transform IT departments: >>>>> 1. A cloud service to automate IT design, transition and operations >>>>> 2. Dashboards that offer high-level views of enterprise services >>>>> 3. A single system of record for all IT processes >>>>> http://p.sf.net/sfu/**servicenow-d2d-j<http://p.sf.net/sfu/servicenow-d2d-j> >>>>> ______________________________**_________________ >>>>> Postgres-xc-developers mailing list >>>>> Postgres-xc-developers@lists.**sourceforge.net<Pos...@li...> >>>>> https://lists.sourceforge.net/**lists/listinfo/postgres-xc-** >>>>> developers<https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers> >>>>> >>>>> >>>> >>>> ------------------------------**------------------------------** >>>> ------------------ >>>> How ServiceNow helps IT people transform IT departments: >>>> 1. A cloud service to automate IT design, transition and operations >>>> 2. Dashboards that offer high-level views of enterprise services >>>> 3. A single system of record for all IT processes >>>> http://p.sf.net/sfu/**servicenow-d2d-j<http://p.sf.net/sfu/servicenow-d2d-j> >>>> ______________________________**_________________ >>>> Postgres-xc-developers mailing list >>>> Postgres-xc-developers@lists.**sourceforge.net<Pos...@li...> >>>> https://lists.sourceforge.net/**lists/listinfo/postgres-xc-**developers<https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers> >>>> >>>> >>>> >>> >> >> -- >> ------------------------------**-------------- >> NTTソフトウェア株式会社 >> 技術開発センター OSS基盤技術部門 >> 勝俣 智成 >> TEL:045-212-7665 >> FAX:045-662-7856 >> E-Mail: kat...@po....**jp<kat...@po...> >> ------------------------------**-------------- >> >> >> > > > -- > Best Wishes, > Ashutosh Bapat > EntepriseDB Corporation > The Postgres Database Company > ------------------------------------------------------------------------------ > How ServiceNow helps IT people transform IT departments: > 1. A cloud service to automate IT design, transition and operations > 2. Dashboards that offer high-level views of enterprise services > 3. A single system of record for all IT processes > > http://p.sf.net/sfu/servicenow-d2d-j_______________________________________________ > Postgres-xc-developers mailing list > Pos...@li... > https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > > > > > ------------------------------------------------------------------------------ > How ServiceNow helps IT people transform IT departments: > 1. A cloud service to automate IT design, transition and operations > 2. Dashboards that offer high-level views of enterprise services > 3. A single system of record for all IT processes > http://p.sf.net/sfu/servicenow-d2d-j > _______________________________________________ > Postgres-xc-developers mailing list > Pos...@li... > https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > > -- -- *Abbas* Architect Ph: 92.334.5100153 Skype ID: gabbasb www.enterprisedb.co <http://www.enterprisedb.com/>m<http://www.enterprisedb.com/> * Follow us on Twitter* @EnterpriseDB Visit EnterpriseDB for tutorials, webinars, whitepapers<http://www.enterprisedb.com/resources-community>and more<http://www.enterprisedb.com/resources-community> |
From: Michael P. <mic...@gm...> - 2013-06-05 05:03:56
|
On Wed, Jun 5, 2013 at 1:39 PM, Ashutosh Bapat < ash...@en...> wrote: > > > > On Wed, Jun 5, 2013 at 9:57 AM, Tomonari Katsumata < > kat...@po...> wrote: > >> Hi Suzuki-san, Ashutosh, >> >> >Suzuki-san >> I don't make any user tables. >> As the simple example I sent before, I use only system-catalogs. >> >> >Ashtosh >> I'm developing database monitor tool and >> I use "EXECUTE DIRECT" to get database statistics data from >> particular coordinator/datanode. >> >> :) huh > > I think, monitoring tools should directly query the datanodes or > coordinators. You will get snapshot warning, but that can be ignored I > guess. > Worth mentioning that it is not the case for 1.1: https://github.com/postgres-xc/postgres-xc/commit/fe9985c168d85738e5d88ed9407b840449f31b75 You get a clean snapshot for read queries run directly from Datanodes. If they start querying coordinators, there will be performance drop since > coordinators directly handle the clients. > Yep. -- Michael |
From: 鈴木 幸市 <ko...@in...> - 2013-06-05 05:10:14
|
Thanks Michael for the input. This is what I remembered. --- Koichi Suzuki On 2013/06/05, at 14:03, Michael Paquier <mic...@gm...> wrote: > > > > On Wed, Jun 5, 2013 at 1:39 PM, Ashutosh Bapat <ash...@en...> wrote: > > > > On Wed, Jun 5, 2013 at 9:57 AM, Tomonari Katsumata <kat...@po...> wrote: > Hi Suzuki-san, Ashutosh, > > >Suzuki-san > I don't make any user tables. > As the simple example I sent before, I use only system-catalogs. > > >Ashtosh > I'm developing database monitor tool and > I use "EXECUTE DIRECT" to get database statistics data from > particular coordinator/datanode. > > :) huh > > I think, monitoring tools should directly query the datanodes or coordinators. You will get snapshot warning, but that can be ignored I guess. > Worth mentioning that it is not the case for 1.1: > https://github.com/postgres-xc/postgres-xc/commit/fe9985c168d85738e5d88ed9407b840449f31b75 > You get a clean snapshot for read queries run directly from Datanodes. > > If they start querying coordinators, there will be performance drop since coordinators directly handle the clients. > Yep. > -- > Michael > ------------------------------------------------------------------------------ > How ServiceNow helps IT people transform IT departments: > 1. A cloud service to automate IT design, transition and operations > 2. Dashboards that offer high-level views of enterprise services > 3. A single system of record for all IT processes > http://p.sf.net/sfu/servicenow-d2d-j_______________________________________________ > Postgres-xc-developers mailing list > Pos...@li... > https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers |
From: Tomonari K. <kat...@po...> - 2013-06-05 07:21:25
|
Hi, all thank you for many responses! OK, I'll try it with the current master. It seems that it'll work fine... Sorry for bothering you. regards, -------- NTT Software Corporation Tomonari Katsumata (2013/06/05 13:48), 鈴木 幸市 wrote: > Now snapshot warning is disabled. Michael committed this patch. > > I tested the query with the current master as of this noon and I got (probably) correct result. > > Here's the result: > > koichi=# execute direct on (datanode1) $$ > select count(*) from (select * from pg_locks) l left join > (select * from pg_stat_activity) s on (l.database=s.datid); > $$; > count > ------- > 9 > (1 row) > > koichi=# \q > … > > koichi=# execute direct on (datanode1) $$ > koichi$# select count(*) from pg_locks l left join pg_stat_activity s > koichi$# on (l.database=s.datid); > koichi$# $$; > count > ------- > 11 > (1 row) > > koichi=# > > Second statement is simpler version. Anyway, they seem to work find. > > Katsumata-san, could you try this with the latest head? It is available both from sourceforge and github. > > Regards; > --- > Koichi Suzuki > > > > On 2013/06/05, at 13:39, Ashutosh Bapat <ash...@en...> wrote: > >> >> >> >> On Wed, Jun 5, 2013 at 9:57 AM, Tomonari Katsumata <kat...@po...> wrote: >> Hi Suzuki-san, Ashutosh, >> >>> Suzuki-san >> I don't make any user tables. >> As the simple example I sent before, I use only system-catalogs. >> >>> Ashtosh >> I'm developing database monitor tool and >> I use "EXECUTE DIRECT" to get database statistics data from >> particular coordinator/datanode. >> >> :) huh >> >> I think, monitoring tools should directly query the datanodes or coordinators. You will get snapshot warning, but that can be ignored I guess. If they start querying coordinators, there will be performance drop since coordinators directly handle the clients. >> >> Any other thoughts? >> regard, >> >> --------- >> NTT Software Corporation >> Tomonari Katsumata >> >> (2013/06/04 13:10), Ashutosh Bapat wrote: >> Hi Tomonari, >> >> Thanks for the bug report. >> >> I am curious to know, what's the purpose of using EXECUTE DIRECT? We >> discourage using Execute Direct in the applications. It's only for >> debugging purposes. >> >> >> On Tue, Jun 4, 2013 at 7:28 AM, Koichi Suzuki <koi...@gm...>wrote: >> >> Thank you Katsumata-san for the report. >> >> Could you provide CREATE TABLE statement for each table involved with some >> of the data? >> >> I will ad this to the bug tracker after I recreate the issue. >> >> Best Regards; >> >> ---------- >> Koichi Suzuki >> >> >> 2013/6/4 Tomonari Katsumata <kat...@po...> >> >> Hi, I have a problem with query executing. >> >> I cant't have any response when I execute a query. >> This problem occurs when some conditions are met. >> >> The conditions are below. >> --------------------------------------------------------------------- >> 1. Issuing "EXECUTE DIRECT" to Datanode(ofcourse, via Coordinator). >> >> 2. The Query Executing on Datanode has subquery on its FROM-clause. >> >> 3. In the subquery, it has a JOIN clause. >> >> 4. The Join clause is consisted with another subquery. >> --------------------------------------------------------------------- >> >> >> Simple example query is below. >> --------------------------------------------------------------- >> EXECUTE DIRECT ON (data1) $$ >> SELECT >> count(*) >> FROM >> (SELECT * FROM pg_locks l LEFT JOIN >> (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a >> $$ >> --------------------------------------------------------------- >> >> FYI: >> This query works fine with Postgres-XC 1.0.3. >> Is this already known bug ? >> >> >> How can I avoid this problem ? >> And what kind of info do you need to investigate it ? >> >> ---------- >> NTT Software Corporation >> Tomonari Katsumata >> >> >> >> >> ------------------------------------------------------------------------------ >> How ServiceNow helps IT people transform IT departments: >> 1. A cloud service to automate IT design, transition and operations >> 2. Dashboards that offer high-level views of enterprise services >> 3. A single system of record for all IT processes >> http://p.sf.net/sfu/servicenow-d2d-j >> _______________________________________________ >> Postgres-xc-developers mailing list >> Pos...@li... >> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >> >> >> >> ------------------------------------------------------------------------------ >> How ServiceNow helps IT people transform IT departments: >> 1. A cloud service to automate IT design, transition and operations >> 2. Dashboards that offer high-level views of enterprise services >> 3. A single system of record for all IT processes >> http://p.sf.net/sfu/servicenow-d2d-j >> _______________________________________________ >> Postgres-xc-developers mailing list >> Pos...@li... >> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >> >> >> >> >> >> -- >> -------------------------------------------- >> NTTソフトウェア株式会社 >> 技術開発センター OSS基盤技術部門 >> 勝俣 智成 >> TEL:045-212-7665 >> FAX:045-662-7856 >> E-Mail: kat...@po... >> -------------------------------------------- >> >> >> >> >> >> -- >> Best Wishes, >> Ashutosh Bapat >> EntepriseDB Corporation >> The Postgres Database Company >> ------------------------------------------------------------------------------ >> How ServiceNow helps IT people transform IT departments: >> 1. A cloud service to automate IT design, transition and operations >> 2. Dashboards that offer high-level views of enterprise services >> 3. A single system of record for all IT processes >> http://p.sf.net/sfu/servicenow-d2d-j_______________________________________________ >> Postgres-xc-developers mailing list >> Pos...@li... >> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > > |
From: 鈴木 幸市 <ko...@in...> - 2013-06-05 07:34:24
|
You are very welcome. Please do not hesitate to post your problems/questions. Regards; --- Koichi Suzuki On 2013/06/05, at 16:20, Tomonari Katsumata <kat...@po...> wrote: > Hi, all > > thank you for many responses! > > OK, I'll try it with the current master. > > It seems that it'll work fine... > > Sorry for bothering you. > > regards, > -------- > NTT Software Corporation > Tomonari Katsumata > > > (2013/06/05 13:48), 鈴木 幸市 wrote: >> Now snapshot warning is disabled. Michael committed this patch. >> >> I tested the query with the current master as of this noon and I got > (probably) correct result. >> >> Here's the result: >> >> koichi=# execute direct on (datanode1) $$ >> select count(*) from (select * from pg_locks) l left join >> (select * from pg_stat_activity) s on (l.database=s.datid); >> $$; >> count >> ------- >> 9 >> (1 row) >> >> koichi=# \q >> … >> >> koichi=# execute direct on (datanode1) $$ >> koichi$# select count(*) from pg_locks l left join pg_stat_activity s >> koichi$# on (l.database=s.datid); >> koichi$# $$; >> count >> ------- >> 11 >> (1 row) >> >> koichi=# >> >> Second statement is simpler version. Anyway, they seem to work find. >> >> Katsumata-san, could you try this with the latest head? It is > available both from sourceforge and github. >> >> Regards; >> --- >> Koichi Suzuki >> >> >> >> On 2013/06/05, at 13:39, Ashutosh Bapat > <ash...@en...> wrote: >> >>> >>> >>> >>> On Wed, Jun 5, 2013 at 9:57 AM, Tomonari Katsumata > <kat...@po...> wrote: >>> Hi Suzuki-san, Ashutosh, >>> >>>> Suzuki-san >>> I don't make any user tables. >>> As the simple example I sent before, I use only system-catalogs. >>> >>>> Ashtosh >>> I'm developing database monitor tool and >>> I use "EXECUTE DIRECT" to get database statistics data from >>> particular coordinator/datanode. >>> >>> :) huh >>> >>> I think, monitoring tools should directly query the datanodes or > coordinators. You will get snapshot warning, but that can be ignored I > guess. If they start querying coordinators, there will be performance > drop since coordinators directly handle the clients. >>> >>> Any other thoughts? >>> regard, >>> >>> --------- >>> NTT Software Corporation >>> Tomonari Katsumata >>> >>> (2013/06/04 13:10), Ashutosh Bapat wrote: >>> Hi Tomonari, >>> >>> Thanks for the bug report. >>> >>> I am curious to know, what's the purpose of using EXECUTE DIRECT? We >>> discourage using Execute Direct in the applications. It's only for >>> debugging purposes. >>> >>> >>> On Tue, Jun 4, 2013 at 7:28 AM, Koichi Suzuki > <koi...@gm...>wrote: >>> >>> Thank you Katsumata-san for the report. >>> >>> Could you provide CREATE TABLE statement for each table involved with > some >>> of the data? >>> >>> I will ad this to the bug tracker after I recreate the issue. >>> >>> Best Regards; >>> >>> ---------- >>> Koichi Suzuki >>> >>> >>> 2013/6/4 Tomonari Katsumata <kat...@po...> >>> >>> Hi, I have a problem with query executing. >>> >>> I cant't have any response when I execute a query. >>> This problem occurs when some conditions are met. >>> >>> The conditions are below. >>> --------------------------------------------------------------------- >>> 1. Issuing "EXECUTE DIRECT" to Datanode(ofcourse, via Coordinator). >>> >>> 2. The Query Executing on Datanode has subquery on its FROM-clause. >>> >>> 3. In the subquery, it has a JOIN clause. >>> >>> 4. The Join clause is consisted with another subquery. >>> --------------------------------------------------------------------- >>> >>> >>> Simple example query is below. >>> --------------------------------------------------------------- >>> EXECUTE DIRECT ON (data1) $$ >>> SELECT >>> count(*) >>> FROM >>> (SELECT * FROM pg_locks l LEFT JOIN >>> (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a >>> $$ >>> --------------------------------------------------------------- >>> >>> FYI: >>> This query works fine with Postgres-XC 1.0.3. >>> Is this already known bug ? >>> >>> >>> How can I avoid this problem ? >>> And what kind of info do you need to investigate it ? >>> >>> ---------- >>> NTT Software Corporation >>> Tomonari Katsumata >>> >>> >>> >>> >>> > ------------------------------------------------------------------------------ >>> How ServiceNow helps IT people transform IT departments: >>> 1. A cloud service to automate IT design, transition and operations >>> 2. Dashboards that offer high-level views of enterprise services >>> 3. A single system of record for all IT processes >>> http://p.sf.net/sfu/servicenow-d2d-j >>> _______________________________________________ >>> Postgres-xc-developers mailing list >>> Pos...@li... >>> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >>> >>> >>> >>> > ------------------------------------------------------------------------------ >>> How ServiceNow helps IT people transform IT departments: >>> 1. A cloud service to automate IT design, transition and operations >>> 2. Dashboards that offer high-level views of enterprise services >>> 3. A single system of record for all IT processes >>> http://p.sf.net/sfu/servicenow-d2d-j >>> _______________________________________________ >>> Postgres-xc-developers mailing list >>> Pos...@li... >>> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >>> >>> >>> >>> >>> >>> -- >>> -------------------------------------------- >>> NTTソフトウェア株式会社 >>> 技術開発センター OSS基盤技術部門 >>> 勝俣 智成 >>> TEL:045-212-7665 >>> FAX:045-662-7856 >>> E-Mail: kat...@po... >>> -------------------------------------------- >>> >>> >>> >>> >>> >>> -- >>> Best Wishes, >>> Ashutosh Bapat >>> EntepriseDB Corporation >>> The Postgres Database Company >>> > ------------------------------------------------------------------------------ >>> How ServiceNow helps IT people transform IT departments: >>> 1. A cloud service to automate IT design, transition and operations >>> 2. Dashboards that offer high-level views of enterprise services >>> 3. A single system of record for all IT processes >>> > http://p.sf.net/sfu/servicenow-d2d-j_______________________________________________ >>> Postgres-xc-developers mailing list >>> Pos...@li... >>> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >> >> > > > > |
From: Tomonari K. <kat...@po...> - 2013-06-05 09:12:50
|
Hi, The queries sent by Suzuki-san work fine, but my problem is still there. Could you try execute the query I sent before? --- EXECUTE DIRECT ON (data1) $$ SELECT count(*) FROM (SELECT * FROM pg_locks l LEFT JOIN (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a $$ --- I don't change this query because it work with Postgres-XC v1.0. regards, ------- NTT Software Corporation Tomonari Katsumata (2013/06/05 16:20), Tomonari Katsumata wrote: > Hi, all > > thank you for many responses! > > OK, I'll try it with the current master. > > It seems that it'll work fine... > > Sorry for bothering you. > > regards, > -------- > NTT Software Corporation > Tomonari Katsumata > > > (2013/06/05 13:48), 鈴木 幸市 wrote: >> Now snapshot warning is disabled. Michael committed this patch. >> >> I tested the query with the current master as of this noon and I got > (probably) correct result. >> Here's the result: >> >> koichi=# execute direct on (datanode1) $$ >> select count(*) from (select * from pg_locks) l left join >> (select * from pg_stat_activity) s on (l.database=s.datid); >> $$; >> count >> ------- >> 9 >> (1 row) >> >> koichi=# \q >> … >> >> koichi=# execute direct on (datanode1) $$ >> koichi$# select count(*) from pg_locks l left join pg_stat_activity s >> koichi$# on (l.database=s.datid); >> koichi$# $$; >> count >> ------- >> 11 >> (1 row) >> >> koichi=# >> >> Second statement is simpler version. Anyway, they seem to work find. >> >> Katsumata-san, could you try this with the latest head? It is > available both from sourceforge and github. >> Regards; >> --- >> Koichi Suzuki >> >> >> >> On 2013/06/05, at 13:39, Ashutosh Bapat > <ash...@en...> wrote: >>> >>> >>> On Wed, Jun 5, 2013 at 9:57 AM, Tomonari Katsumata > <kat...@po...> wrote: >>> Hi Suzuki-san, Ashutosh, >>> >>>> Suzuki-san >>> I don't make any user tables. >>> As the simple example I sent before, I use only system-catalogs. >>> >>>> Ashtosh >>> I'm developing database monitor tool and >>> I use "EXECUTE DIRECT" to get database statistics data from >>> particular coordinator/datanode. >>> >>> :) huh >>> >>> I think, monitoring tools should directly query the datanodes or > coordinators. You will get snapshot warning, but that can be ignored I > guess. If they start querying coordinators, there will be performance > drop since coordinators directly handle the clients. >>> Any other thoughts? >>> regard, >>> >>> --------- >>> NTT Software Corporation >>> Tomonari Katsumata >>> >>> (2013/06/04 13:10), Ashutosh Bapat wrote: >>> Hi Tomonari, >>> >>> Thanks for the bug report. >>> >>> I am curious to know, what's the purpose of using EXECUTE DIRECT? We >>> discourage using Execute Direct in the applications. It's only for >>> debugging purposes. >>> >>> >>> On Tue, Jun 4, 2013 at 7:28 AM, Koichi Suzuki > <koi...@gm...>wrote: >>> Thank you Katsumata-san for the report. >>> >>> Could you provide CREATE TABLE statement for each table involved with > some >>> of the data? >>> >>> I will ad this to the bug tracker after I recreate the issue. >>> >>> Best Regards; >>> >>> ---------- >>> Koichi Suzuki >>> >>> >>> 2013/6/4 Tomonari Katsumata <kat...@po...> >>> >>> Hi, I have a problem with query executing. >>> >>> I cant't have any response when I execute a query. >>> This problem occurs when some conditions are met. >>> >>> The conditions are below. >>> --------------------------------------------------------------------- >>> 1. Issuing "EXECUTE DIRECT" to Datanode(ofcourse, via Coordinator). >>> >>> 2. The Query Executing on Datanode has subquery on its FROM-clause. >>> >>> 3. In the subquery, it has a JOIN clause. >>> >>> 4. The Join clause is consisted with another subquery. >>> --------------------------------------------------------------------- >>> >>> >>> Simple example query is below. >>> --------------------------------------------------------------- >>> EXECUTE DIRECT ON (data1) $$ >>> SELECT >>> count(*) >>> FROM >>> (SELECT * FROM pg_locks l LEFT JOIN >>> (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a >>> $$ >>> --------------------------------------------------------------- >>> >>> FYI: >>> This query works fine with Postgres-XC 1.0.3. >>> Is this already known bug ? >>> >>> >>> How can I avoid this problem ? >>> And what kind of info do you need to investigate it ? >>> >>> ---------- >>> NTT Software Corporation >>> Tomonari Katsumata >>> >>> >>> >>> >>> > ------------------------------------------------------------------------------ >>> How ServiceNow helps IT people transform IT departments: >>> 1. A cloud service to automate IT design, transition and operations >>> 2. Dashboards that offer high-level views of enterprise services >>> 3. A single system of record for all IT processes >>> http://p.sf.net/sfu/servicenow-d2d-j >>> _______________________________________________ >>> Postgres-xc-developers mailing list >>> Pos...@li... >>> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >>> >>> >>> >>> > ------------------------------------------------------------------------------ >>> How ServiceNow helps IT people transform IT departments: >>> 1. A cloud service to automate IT design, transition and operations >>> 2. Dashboards that offer high-level views of enterprise services >>> 3. A single system of record for all IT processes >>> http://p.sf.net/sfu/servicenow-d2d-j >>> _______________________________________________ >>> Postgres-xc-developers mailing list >>> Pos...@li... >>> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >>> >>> >>> >>> >>> >>> -- >>> -------------------------------------------- >>> NTTソフトウェア株式会社 >>> 技術開発センター OSS基盤技術部門 >>> 勝俣 智成 >>> TEL:045-212-7665 >>> FAX:045-662-7856 >>> E-Mail: kat...@po... >>> -------------------------------------------- >>> >>> >>> >>> >>> >>> -- >>> Best Wishes, >>> Ashutosh Bapat >>> EntepriseDB Corporation >>> The Postgres Database Company >>> > ------------------------------------------------------------------------------ >>> How ServiceNow helps IT people transform IT departments: >>> 1. A cloud service to automate IT design, transition and operations >>> 2. Dashboards that offer high-level views of enterprise services >>> 3. A single system of record for all IT processes >>> > http://p.sf.net/sfu/servicenow-d2d-j_______________________________________________ >>> Postgres-xc-developers mailing list >>> Pos...@li... >>> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >> > > > > ------------------------------------------------------------------------------ > How ServiceNow helps IT people transform IT departments: > 1. A cloud service to automate IT design, transition and operations > 2. Dashboards that offer high-level views of enterprise services > 3. A single system of record for all IT processes > http://p.sf.net/sfu/servicenow-d2d-j > _______________________________________________ > Postgres-xc-developers mailing list > Pos...@li... > https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > -- -------------------------------------------- NTTソフトウェア株式会社 技術開発センター OSS基盤技術部門 勝俣 智成 TEL:045-212-7665 FAX:045-662-7856 E-Mail: kat...@po... -------------------------------------------- |
From: 鈴木 幸市 <ko...@in...> - 2013-06-05 09:23:40
|
Yeah, I found that this command stuck and doing this by direct connection to datanode works. Regards; --- Koichi Suzuki On 2013/06/05, at 18:12, Tomonari Katsumata <kat...@po...> wrote: > Hi, > > The queries sent by Suzuki-san work fine, > but my problem is still there. > Could you try execute the query I sent before? > > --- > EXECUTE DIRECT ON (data1) $$ > SELECT > count(*) > FROM > (SELECT * FROM pg_locks l LEFT JOIN > (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a > $$ > --- > > I don't change this query because it work with Postgres-XC v1.0. > > regards, > ------- > NTT Software Corporation > Tomonari Katsumata > > (2013/06/05 16:20), Tomonari Katsumata wrote: >> Hi, all >> >> thank you for many responses! >> >> OK, I'll try it with the current master. >> >> It seems that it'll work fine... >> >> Sorry for bothering you. >> >> regards, >> -------- >> NTT Software Corporation >> Tomonari Katsumata >> >> >> (2013/06/05 13:48), 鈴木 幸市 wrote: >>> Now snapshot warning is disabled. Michael committed this patch. >>> >>> I tested the query with the current master as of this noon and I got >> (probably) correct result. >>> Here's the result: >>> >>> koichi=# execute direct on (datanode1) $$ >>> select count(*) from (select * from pg_locks) l left join >>> (select * from pg_stat_activity) s on (l.database=s.datid); >>> $$; >>> count >>> ------- >>> 9 >>> (1 row) >>> >>> koichi=# \q >>> … >>> >>> koichi=# execute direct on (datanode1) $$ >>> koichi$# select count(*) from pg_locks l left join pg_stat_activity s >>> koichi$# on (l.database=s.datid); >>> koichi$# $$; >>> count >>> ------- >>> 11 >>> (1 row) >>> >>> koichi=# >>> >>> Second statement is simpler version. Anyway, they seem to work find. >>> >>> Katsumata-san, could you try this with the latest head? It is >> available both from sourceforge and github. >>> Regards; >>> --- >>> Koichi Suzuki >>> >>> >>> >>> On 2013/06/05, at 13:39, Ashutosh Bapat >> <ash...@en...> wrote: >>>> >>>> >>>> On Wed, Jun 5, 2013 at 9:57 AM, Tomonari Katsumata >> <kat...@po...> wrote: >>>> Hi Suzuki-san, Ashutosh, >>>> >>>>> Suzuki-san >>>> I don't make any user tables. >>>> As the simple example I sent before, I use only system-catalogs. >>>> >>>>> Ashtosh >>>> I'm developing database monitor tool and >>>> I use "EXECUTE DIRECT" to get database statistics data from >>>> particular coordinator/datanode. >>>> >>>> :) huh >>>> >>>> I think, monitoring tools should directly query the datanodes or >> coordinators. You will get snapshot warning, but that can be ignored I >> guess. If they start querying coordinators, there will be performance >> drop since coordinators directly handle the clients. >>>> Any other thoughts? >>>> regard, >>>> >>>> --------- >>>> NTT Software Corporation >>>> Tomonari Katsumata >>>> >>>> (2013/06/04 13:10), Ashutosh Bapat wrote: >>>> Hi Tomonari, >>>> >>>> Thanks for the bug report. >>>> >>>> I am curious to know, what's the purpose of using EXECUTE DIRECT? We >>>> discourage using Execute Direct in the applications. It's only for >>>> debugging purposes. >>>> >>>> >>>> On Tue, Jun 4, 2013 at 7:28 AM, Koichi Suzuki >> <koi...@gm...>wrote: >>>> Thank you Katsumata-san for the report. >>>> >>>> Could you provide CREATE TABLE statement for each table involved with >> some >>>> of the data? >>>> >>>> I will ad this to the bug tracker after I recreate the issue. >>>> >>>> Best Regards; >>>> >>>> ---------- >>>> Koichi Suzuki >>>> >>>> >>>> 2013/6/4 Tomonari Katsumata <kat...@po...> >>>> >>>> Hi, I have a problem with query executing. >>>> >>>> I cant't have any response when I execute a query. >>>> This problem occurs when some conditions are met. >>>> >>>> The conditions are below. >>>> --------------------------------------------------------------------- >>>> 1. Issuing "EXECUTE DIRECT" to Datanode(ofcourse, via Coordinator). >>>> >>>> 2. The Query Executing on Datanode has subquery on its FROM-clause. >>>> >>>> 3. In the subquery, it has a JOIN clause. >>>> >>>> 4. The Join clause is consisted with another subquery. >>>> --------------------------------------------------------------------- >>>> >>>> >>>> Simple example query is below. >>>> --------------------------------------------------------------- >>>> EXECUTE DIRECT ON (data1) $$ >>>> SELECT >>>> count(*) >>>> FROM >>>> (SELECT * FROM pg_locks l LEFT JOIN >>>> (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a >>>> $$ >>>> --------------------------------------------------------------- >>>> >>>> FYI: >>>> This query works fine with Postgres-XC 1.0.3. >>>> Is this already known bug ? >>>> >>>> >>>> How can I avoid this problem ? >>>> And what kind of info do you need to investigate it ? >>>> >>>> ---------- >>>> NTT Software Corporation >>>> Tomonari Katsumata >>>> >>>> >>>> >>>> >>>> >> ------------------------------------------------------------------------------ >>>> How ServiceNow helps IT people transform IT departments: >>>> 1. A cloud service to automate IT design, transition and operations >>>> 2. Dashboards that offer high-level views of enterprise services >>>> 3. A single system of record for all IT processes >>>> http://p.sf.net/sfu/servicenow-d2d-j >>>> _______________________________________________ >>>> Postgres-xc-developers mailing list >>>> Pos...@li... >>>> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >>>> >>>> >>>> >>>> >> ------------------------------------------------------------------------------ >>>> How ServiceNow helps IT people transform IT departments: >>>> 1. A cloud service to automate IT design, transition and operations >>>> 2. Dashboards that offer high-level views of enterprise services >>>> 3. A single system of record for all IT processes >>>> http://p.sf.net/sfu/servicenow-d2d-j >>>> _______________________________________________ >>>> Postgres-xc-developers mailing list >>>> Pos...@li... >>>> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >>>> >>>> >>>> >>>> >>>> >>>> -- >>>> -------------------------------------------- >>>> NTTソフトウェア株式会社 >>>> 技術開発センター OSS基盤技術部門 >>>> 勝俣 智成 >>>> TEL:045-212-7665 >>>> FAX:045-662-7856 >>>> E-Mail: kat...@po... >>>> -------------------------------------------- >>>> >>>> >>>> >>>> >>>> >>>> -- >>>> Best Wishes, >>>> Ashutosh Bapat >>>> EntepriseDB Corporation >>>> The Postgres Database Company >>>> >> ------------------------------------------------------------------------------ >>>> How ServiceNow helps IT people transform IT departments: >>>> 1. A cloud service to automate IT design, transition and operations >>>> 2. Dashboards that offer high-level views of enterprise services >>>> 3. A single system of record for all IT processes >>>> >> http://p.sf.net/sfu/servicenow-d2d-j_______________________________________________ >>>> Postgres-xc-developers mailing list >>>> Pos...@li... >>>> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >>> >> >> >> >> ------------------------------------------------------------------------------ >> How ServiceNow helps IT people transform IT departments: >> 1. A cloud service to automate IT design, transition and operations >> 2. Dashboards that offer high-level views of enterprise services >> 3. A single system of record for all IT processes >> http://p.sf.net/sfu/servicenow-d2d-j >> _______________________________________________ >> Postgres-xc-developers mailing list >> Pos...@li... >> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >> > > > -- > -------------------------------------------- > NTTソフトウェア株式会社 > 技術開発センター OSS基盤技術部門 > 勝俣 智成 > TEL:045-212-7665 > FAX:045-662-7856 > E-Mail: kat...@po... > -------------------------------------------- > > > > ------------------------------------------------------------------------------ > How ServiceNow helps IT people transform IT departments: > 1. A cloud service to automate IT design, transition and operations > 2. Dashboards that offer high-level views of enterprise services > 3. A single system of record for all IT processes > http://p.sf.net/sfu/servicenow-d2d-j > _______________________________________________ > Postgres-xc-developers mailing list > Pos...@li... > https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > |
From: Koichi S. <koi...@gm...> - 2013-06-06 04:55:49
|
I added this to the bug tracker with the ID 3614369 Regards; ---------- Koichi Suzuki 2013/6/5 鈴木 幸市 <ko...@in...> > Yeah, I found that this command stuck and doing this by direct connection > to datanode works. > > Regards; > --- > Koichi Suzuki > > > > On 2013/06/05, at 18:12, Tomonari Katsumata < > kat...@po...> wrote: > > > Hi, > > > > The queries sent by Suzuki-san work fine, > > but my problem is still there. > > Could you try execute the query I sent before? > > > > --- > > EXECUTE DIRECT ON (data1) $$ > > SELECT > > count(*) > > FROM > > (SELECT * FROM pg_locks l LEFT JOIN > > (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a > > $$ > > --- > > > > I don't change this query because it work with Postgres-XC v1.0. > > > > regards, > > ------- > > NTT Software Corporation > > Tomonari Katsumata > > > > (2013/06/05 16:20), Tomonari Katsumata wrote: > >> Hi, all > >> > >> thank you for many responses! > >> > >> OK, I'll try it with the current master. > >> > >> It seems that it'll work fine... > >> > >> Sorry for bothering you. > >> > >> regards, > >> -------- > >> NTT Software Corporation > >> Tomonari Katsumata > >> > >> > >> (2013/06/05 13:48), 鈴木 幸市 wrote: > >>> Now snapshot warning is disabled. Michael committed this patch. > >>> > >>> I tested the query with the current master as of this noon and I got > >> (probably) correct result. > >>> Here's the result: > >>> > >>> koichi=# execute direct on (datanode1) $$ > >>> select count(*) from (select * from pg_locks) l left join > >>> (select * from pg_stat_activity) s on (l.database=s.datid); > >>> $$; > >>> count > >>> ------- > >>> 9 > >>> (1 row) > >>> > >>> koichi=# \q > >>> … > >>> > >>> koichi=# execute direct on (datanode1) $$ > >>> koichi$# select count(*) from pg_locks l left join pg_stat_activity s > >>> koichi$# on (l.database=s.datid); > >>> koichi$# $$; > >>> count > >>> ------- > >>> 11 > >>> (1 row) > >>> > >>> koichi=# > >>> > >>> Second statement is simpler version. Anyway, they seem to work find. > >>> > >>> Katsumata-san, could you try this with the latest head? It is > >> available both from sourceforge and github. > >>> Regards; > >>> --- > >>> Koichi Suzuki > >>> > >>> > >>> > >>> On 2013/06/05, at 13:39, Ashutosh Bapat > >> <ash...@en...> wrote: > >>>> > >>>> > >>>> On Wed, Jun 5, 2013 at 9:57 AM, Tomonari Katsumata > >> <kat...@po...> wrote: > >>>> Hi Suzuki-san, Ashutosh, > >>>> > >>>>> Suzuki-san > >>>> I don't make any user tables. > >>>> As the simple example I sent before, I use only system-catalogs. > >>>> > >>>>> Ashtosh > >>>> I'm developing database monitor tool and > >>>> I use "EXECUTE DIRECT" to get database statistics data from > >>>> particular coordinator/datanode. > >>>> > >>>> :) huh > >>>> > >>>> I think, monitoring tools should directly query the datanodes or > >> coordinators. You will get snapshot warning, but that can be ignored I > >> guess. If they start querying coordinators, there will be performance > >> drop since coordinators directly handle the clients. > >>>> Any other thoughts? > >>>> regard, > >>>> > >>>> --------- > >>>> NTT Software Corporation > >>>> Tomonari Katsumata > >>>> > >>>> (2013/06/04 13:10), Ashutosh Bapat wrote: > >>>> Hi Tomonari, > >>>> > >>>> Thanks for the bug report. > >>>> > >>>> I am curious to know, what's the purpose of using EXECUTE DIRECT? We > >>>> discourage using Execute Direct in the applications. It's only for > >>>> debugging purposes. > >>>> > >>>> > >>>> On Tue, Jun 4, 2013 at 7:28 AM, Koichi Suzuki > >> <koi...@gm...>wrote: > >>>> Thank you Katsumata-san for the report. > >>>> > >>>> Could you provide CREATE TABLE statement for each table involved with > >> some > >>>> of the data? > >>>> > >>>> I will ad this to the bug tracker after I recreate the issue. > >>>> > >>>> Best Regards; > >>>> > >>>> ---------- > >>>> Koichi Suzuki > >>>> > >>>> > >>>> 2013/6/4 Tomonari Katsumata <kat...@po...> > >>>> > >>>> Hi, I have a problem with query executing. > >>>> > >>>> I cant't have any response when I execute a query. > >>>> This problem occurs when some conditions are met. > >>>> > >>>> The conditions are below. > >>>> --------------------------------------------------------------------- > >>>> 1. Issuing "EXECUTE DIRECT" to Datanode(ofcourse, via Coordinator). > >>>> > >>>> 2. The Query Executing on Datanode has subquery on its FROM-clause. > >>>> > >>>> 3. In the subquery, it has a JOIN clause. > >>>> > >>>> 4. The Join clause is consisted with another subquery. > >>>> --------------------------------------------------------------------- > >>>> > >>>> > >>>> Simple example query is below. > >>>> --------------------------------------------------------------- > >>>> EXECUTE DIRECT ON (data1) $$ > >>>> SELECT > >>>> count(*) > >>>> FROM > >>>> (SELECT * FROM pg_locks l LEFT JOIN > >>>> (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a > >>>> $$ > >>>> --------------------------------------------------------------- > >>>> > >>>> FYI: > >>>> This query works fine with Postgres-XC 1.0.3. > >>>> Is this already known bug ? > >>>> > >>>> > >>>> How can I avoid this problem ? > >>>> And what kind of info do you need to investigate it ? > >>>> > >>>> ---------- > >>>> NTT Software Corporation > >>>> Tomonari Katsumata > >>>> > >>>> > >>>> > >>>> > >>>> > >> > ------------------------------------------------------------------------------ > >>>> How ServiceNow helps IT people transform IT departments: > >>>> 1. A cloud service to automate IT design, transition and operations > >>>> 2. Dashboards that offer high-level views of enterprise services > >>>> 3. A single system of record for all IT processes > >>>> http://p.sf.net/sfu/servicenow-d2d-j > >>>> _______________________________________________ > >>>> Postgres-xc-developers mailing list > >>>> Pos...@li... > >>>> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > >>>> > >>>> > >>>> > >>>> > >> > ------------------------------------------------------------------------------ > >>>> How ServiceNow helps IT people transform IT departments: > >>>> 1. A cloud service to automate IT design, transition and operations > >>>> 2. Dashboards that offer high-level views of enterprise services > >>>> 3. A single system of record for all IT processes > >>>> http://p.sf.net/sfu/servicenow-d2d-j > >>>> _______________________________________________ > >>>> Postgres-xc-developers mailing list > >>>> Pos...@li... > >>>> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> -- > >>>> -------------------------------------------- > >>>> NTTソフトウェア株式会社 > >>>> 技術開発センター OSS基盤技術部門 > >>>> 勝俣 智成 > >>>> TEL:045-212-7665 > >>>> FAX:045-662-7856 > >>>> E-Mail: kat...@po... > >>>> -------------------------------------------- > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> -- > >>>> Best Wishes, > >>>> Ashutosh Bapat > >>>> EntepriseDB Corporation > >>>> The Postgres Database Company > >>>> > >> > ------------------------------------------------------------------------------ > >>>> How ServiceNow helps IT people transform IT departments: > >>>> 1. A cloud service to automate IT design, transition and operations > >>>> 2. Dashboards that offer high-level views of enterprise services > >>>> 3. A single system of record for all IT processes > >>>> > >> > http://p.sf.net/sfu/servicenow-d2d-j_______________________________________________ > >>>> Postgres-xc-developers mailing list > >>>> Pos...@li... > >>>> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > >>> > >> > >> > >> > >> > ------------------------------------------------------------------------------ > >> How ServiceNow helps IT people transform IT departments: > >> 1. A cloud service to automate IT design, transition and operations > >> 2. Dashboards that offer high-level views of enterprise services > >> 3. A single system of record for all IT processes > >> http://p.sf.net/sfu/servicenow-d2d-j > >> _______________________________________________ > >> Postgres-xc-developers mailing list > >> Pos...@li... > >> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > >> > > > > > > -- > > -------------------------------------------- > > NTTソフトウェア株式会社 > > 技術開発センター OSS基盤技術部門 > > 勝俣 智成 > > TEL:045-212-7665 > > FAX:045-662-7856 > > E-Mail: kat...@po... > > -------------------------------------------- > > > > > > > > > ------------------------------------------------------------------------------ > > How ServiceNow helps IT people transform IT departments: > > 1. A cloud service to automate IT design, transition and operations > > 2. Dashboards that offer high-level views of enterprise services > > 3. A single system of record for all IT processes > > http://p.sf.net/sfu/servicenow-d2d-j > > _______________________________________________ > > Postgres-xc-developers mailing list > > Pos...@li... > > https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > > > > > > ------------------------------------------------------------------------------ > How ServiceNow helps IT people transform IT departments: > 1. A cloud service to automate IT design, transition and operations > 2. Dashboards that offer high-level views of enterprise services > 3. A single system of record for all IT processes > http://p.sf.net/sfu/servicenow-d2d-j > _______________________________________________ > Postgres-xc-developers mailing list > Pos...@li... > https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > |
From: Tomonari K. <kat...@po...> - 2013-06-06 09:51:18
|
Hi Suzuki-sun Thanks a lot. If I notice something, I'll report again! regards, -------- NTT Software Corporation Tomonari Katsumata (2013/06/06 13:55), Koichi Suzuki wrote: > I added this to the bug tracker with the ID 3614369 > > Regards; > > ---------- > Koichi Suzuki > > > 2013/6/5 鈴木 幸市 <ko...@in...> > >> Yeah, I found that this command stuck and doing this by direct connection >> to datanode works. >> >> Regards; >> --- >> Koichi Suzuki >> >> >> >> On 2013/06/05, at 18:12, Tomonari Katsumata < >> kat...@po...> wrote: >> >>> Hi, >>> >>> The queries sent by Suzuki-san work fine, >>> but my problem is still there. >>> Could you try execute the query I sent before? >>> >>> --- >>> EXECUTE DIRECT ON (data1) $$ >>> SELECT >>> count(*) >>> FROM >>> (SELECT * FROM pg_locks l LEFT JOIN >>> (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a >>> $$ >>> --- >>> >>> I don't change this query because it work with Postgres-XC v1.0. >>> >>> regards, >>> ------- >>> NTT Software Corporation >>> Tomonari Katsumata >>> >>> (2013/06/05 16:20), Tomonari Katsumata wrote: >>>> Hi, all >>>> >>>> thank you for many responses! >>>> >>>> OK, I'll try it with the current master. >>>> >>>> It seems that it'll work fine... >>>> >>>> Sorry for bothering you. >>>> >>>> regards, >>>> -------- >>>> NTT Software Corporation >>>> Tomonari Katsumata >>>> >>>> >>>> (2013/06/05 13:48), 鈴木 幸市 wrote: >>>>> Now snapshot warning is disabled. Michael committed this patch. >>>>> >>>>> I tested the query with the current master as of this noon and I got >>>> (probably) correct result. >>>>> Here's the result: >>>>> >>>>> koichi=# execute direct on (datanode1) $$ >>>>> select count(*) from (select * from pg_locks) l left join >>>>> (select * from pg_stat_activity) s on (l.database=s.datid); >>>>> $$; >>>>> count >>>>> ------- >>>>> 9 >>>>> (1 row) >>>>> >>>>> koichi=# \q >>>>> … >>>>> >>>>> koichi=# execute direct on (datanode1) $$ >>>>> koichi$# select count(*) from pg_locks l left join pg_stat_activity s >>>>> koichi$# on (l.database=s.datid); >>>>> koichi$# $$; >>>>> count >>>>> ------- >>>>> 11 >>>>> (1 row) >>>>> >>>>> koichi=# >>>>> >>>>> Second statement is simpler version. Anyway, they seem to work find. >>>>> >>>>> Katsumata-san, could you try this with the latest head? It is >>>> available both from sourceforge and github. >>>>> Regards; >>>>> --- >>>>> Koichi Suzuki >>>>> >>>>> >>>>> >>>>> On 2013/06/05, at 13:39, Ashutosh Bapat >>>> <ash...@en...> wrote: >>>>>> >>>>>> On Wed, Jun 5, 2013 at 9:57 AM, Tomonari Katsumata >>>> <kat...@po...> wrote: >>>>>> Hi Suzuki-san, Ashutosh, >>>>>> >>>>>>> Suzuki-san >>>>>> I don't make any user tables. >>>>>> As the simple example I sent before, I use only system-catalogs. >>>>>> >>>>>>> Ashtosh >>>>>> I'm developing database monitor tool and >>>>>> I use "EXECUTE DIRECT" to get database statistics data from >>>>>> particular coordinator/datanode. >>>>>> >>>>>> :) huh >>>>>> >>>>>> I think, monitoring tools should directly query the datanodes or >>>> coordinators. You will get snapshot warning, but that can be ignored I >>>> guess. If they start querying coordinators, there will be performance >>>> drop since coordinators directly handle the clients. >>>>>> Any other thoughts? >>>>>> regard, >>>>>> >>>>>> --------- >>>>>> NTT Software Corporation >>>>>> Tomonari Katsumata >>>>>> >>>>>> (2013/06/04 13:10), Ashutosh Bapat wrote: >>>>>> Hi Tomonari, >>>>>> >>>>>> Thanks for the bug report. >>>>>> >>>>>> I am curious to know, what's the purpose of using EXECUTE DIRECT? We >>>>>> discourage using Execute Direct in the applications. It's only for >>>>>> debugging purposes. >>>>>> >>>>>> >>>>>> On Tue, Jun 4, 2013 at 7:28 AM, Koichi Suzuki >>>> <koi...@gm...>wrote: >>>>>> Thank you Katsumata-san for the report. >>>>>> >>>>>> Could you provide CREATE TABLE statement for each table involved with >>>> some >>>>>> of the data? >>>>>> >>>>>> I will ad this to the bug tracker after I recreate the issue. >>>>>> >>>>>> Best Regards; >>>>>> >>>>>> ---------- >>>>>> Koichi Suzuki >>>>>> >>>>>> >>>>>> 2013/6/4 Tomonari Katsumata <kat...@po...> >>>>>> >>>>>> Hi, I have a problem with query executing. >>>>>> >>>>>> I cant't have any response when I execute a query. >>>>>> This problem occurs when some conditions are met. >>>>>> >>>>>> The conditions are below. >>>>>> --------------------------------------------------------------------- >>>>>> 1. Issuing "EXECUTE DIRECT" to Datanode(ofcourse, via Coordinator). >>>>>> >>>>>> 2. The Query Executing on Datanode has subquery on its FROM-clause. >>>>>> >>>>>> 3. In the subquery, it has a JOIN clause. >>>>>> >>>>>> 4. The Join clause is consisted with another subquery. >>>>>> --------------------------------------------------------------------- >>>>>> >>>>>> >>>>>> Simple example query is below. >>>>>> --------------------------------------------------------------- >>>>>> EXECUTE DIRECT ON (data1) $$ >>>>>> SELECT >>>>>> count(*) >>>>>> FROM >>>>>> (SELECT * FROM pg_locks l LEFT JOIN >>>>>> (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a >>>>>> $$ >>>>>> --------------------------------------------------------------- >>>>>> >>>>>> FYI: >>>>>> This query works fine with Postgres-XC 1.0.3. >>>>>> Is this already known bug ? >>>>>> >>>>>> >>>>>> How can I avoid this problem ? >>>>>> And what kind of info do you need to investigate it ? >>>>>> >>>>>> ---------- >>>>>> NTT Software Corporation >>>>>> Tomonari Katsumata >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >> ------------------------------------------------------------------------------ >>>>>> How ServiceNow helps IT people transform IT departments: >>>>>> 1. A cloud service to automate IT design, transition and operations >>>>>> 2. Dashboards that offer high-level views of enterprise services >>>>>> 3. A single system of record for all IT processes >>>>>> http://p.sf.net/sfu/servicenow-d2d-j >>>>>> _______________________________________________ >>>>>> Postgres-xc-developers mailing list >>>>>> Pos...@li... >>>>>> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >>>>>> >>>>>> >>>>>> >>>>>> >> ------------------------------------------------------------------------------ >>>>>> How ServiceNow helps IT people transform IT departments: >>>>>> 1. A cloud service to automate IT design, transition and operations >>>>>> 2. Dashboards that offer high-level views of enterprise services >>>>>> 3. A single system of record for all IT processes >>>>>> http://p.sf.net/sfu/servicenow-d2d-j >>>>>> _______________________________________________ >>>>>> Postgres-xc-developers mailing list >>>>>> Pos...@li... >>>>>> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> -------------------------------------------- >>>>>> NTTソフトウェア株式会社 >>>>>> 技術開発センター OSS基盤技術部門 >>>>>> 勝俣 智成 >>>>>> TEL:045-212-7665 >>>>>> FAX:045-662-7856 >>>>>> E-Mail: kat...@po... >>>>>> -------------------------------------------- >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Best Wishes, >>>>>> Ashutosh Bapat >>>>>> EntepriseDB Corporation >>>>>> The Postgres Database Company >>>>>> >> ------------------------------------------------------------------------------ >>>>>> How ServiceNow helps IT people transform IT departments: >>>>>> 1. A cloud service to automate IT design, transition and operations >>>>>> 2. Dashboards that offer high-level views of enterprise services >>>>>> 3. A single system of record for all IT processes >>>>>> >> http://p.sf.net/sfu/servicenow-d2d-j_______________________________________________ >>>>>> Postgres-xc-developers mailing list >>>>>> Pos...@li... >>>>>> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >>>> >>>> >>>> >> ------------------------------------------------------------------------------ >>>> How ServiceNow helps IT people transform IT departments: >>>> 1. A cloud service to automate IT design, transition and operations >>>> 2. Dashboards that offer high-level views of enterprise services >>>> 3. A single system of record for all IT processes >>>> http://p.sf.net/sfu/servicenow-d2d-j >>>> _______________________________________________ >>>> Postgres-xc-developers mailing list >>>> Pos...@li... >>>> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >>>> >>> >>> -- >>> -------------------------------------------- >>> NTTソフトウェア株式会社 >>> 技術開発センター OSS基盤技術部門 >>> 勝俣 智成 >>> TEL:045-212-7665 >>> FAX:045-662-7856 >>> E-Mail: kat...@po... >>> -------------------------------------------- >>> >>> >>> >>> >> ------------------------------------------------------------------------------ >>> How ServiceNow helps IT people transform IT departments: >>> 1. A cloud service to automate IT design, transition and operations >>> 2. Dashboards that offer high-level views of enterprise services >>> 3. A single system of record for all IT processes >>> http://p.sf.net/sfu/servicenow-d2d-j >>> _______________________________________________ >>> Postgres-xc-developers mailing list >>> Pos...@li... >>> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >>> >> >> >> ------------------------------------------------------------------------------ >> How ServiceNow helps IT people transform IT departments: >> 1. A cloud service to automate IT design, transition and operations >> 2. Dashboards that offer high-level views of enterprise services >> 3. A single system of record for all IT processes >> http://p.sf.net/sfu/servicenow-d2d-j >> _______________________________________________ >> Postgres-xc-developers mailing list >> Pos...@li... >> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >> -- -------------------------------------------- NTTソフトウェア株式会社 技術開発センター OSS基盤技術部門 勝俣 智成 TEL:045-212-7665 FAX:045-662-7856 E-Mail: kat...@po... -------------------------------------------- |
From: Tomonari K. <kat...@po...> - 2013-06-12 05:11:16
|
Hi, I've investigated this problem(BUG:3614369). I caught the cause of it, but I can not find where to fix. The problem occurs when "pgxc_collect_RTE_walker" is called infinitely. It seems that rtable(List of RangeTable) become cyclic List. I'm not sure where the List is made. Anybody, please give me your help ? If not so difficult to fix it, I want to fix soon. -------- NTT Software Corporation Tomonari Katsumata (2013/06/06 13:55), Koichi Suzuki wrote: > I added this to the bug tracker with the ID 3614369 > > Regards; > > ---------- > Koichi Suzuki > > > 2013/6/5 鈴木 幸市 <ko...@in...> > >> Yeah, I found that this command stuck and doing this by direct connection >> to datanode works. >> >> Regards; >> --- >> Koichi Suzuki >> >> >> >> On 2013/06/05, at 18:12, Tomonari Katsumata < >> kat...@po...> wrote: >> >>> Hi, >>> >>> The queries sent by Suzuki-san work fine, >>> but my problem is still there. >>> Could you try execute the query I sent before? >>> >>> --- >>> EXECUTE DIRECT ON (data1) $$ >>> SELECT >>> count(*) >>> FROM >>> (SELECT * FROM pg_locks l LEFT JOIN >>> (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a >>> $$ >>> --- >>> >>> I don't change this query because it work with Postgres-XC v1.0. >>> >>> regards, >>> ------- >>> NTT Software Corporation >>> Tomonari Katsumata >>> >>> (2013/06/05 16:20), Tomonari Katsumata wrote: >>>> Hi, all >>>> >>>> thank you for many responses! >>>> >>>> OK, I'll try it with the current master. >>>> >>>> It seems that it'll work fine... >>>> >>>> Sorry for bothering you. >>>> >>>> regards, >>>> -------- >>>> NTT Software Corporation >>>> Tomonari Katsumata >>>> >>>> >>>> (2013/06/05 13:48), 鈴木 幸市 wrote: >>>>> Now snapshot warning is disabled. Michael committed this patch. >>>>> >>>>> I tested the query with the current master as of this noon and I got >>>> (probably) correct result. >>>>> Here's the result: >>>>> >>>>> koichi=# execute direct on (datanode1) $$ >>>>> select count(*) from (select * from pg_locks) l left join >>>>> (select * from pg_stat_activity) s on (l.database=s.datid); >>>>> $$; >>>>> count >>>>> ------- >>>>> 9 >>>>> (1 row) >>>>> >>>>> koichi=# \q >>>>> … >>>>> >>>>> koichi=# execute direct on (datanode1) $$ >>>>> koichi$# select count(*) from pg_locks l left join pg_stat_activity s >>>>> koichi$# on (l.database=s.datid); >>>>> koichi$# $$; >>>>> count >>>>> ------- >>>>> 11 >>>>> (1 row) >>>>> >>>>> koichi=# >>>>> >>>>> Second statement is simpler version. Anyway, they seem to work find. >>>>> >>>>> Katsumata-san, could you try this with the latest head? It is >>>> available both from sourceforge and github. >>>>> Regards; >>>>> --- >>>>> Koichi Suzuki >>>>> >>>>> >>>>> >>>>> On 2013/06/05, at 13:39, Ashutosh Bapat >>>> <ash...@en...> wrote: >>>>>> >>>>>> >>>>>> On Wed, Jun 5, 2013 at 9:57 AM, Tomonari Katsumata >>>> <kat...@po...> wrote: >>>>>> Hi Suzuki-san, Ashutosh, >>>>>> >>>>>>> Suzuki-san >>>>>> I don't make any user tables. >>>>>> As the simple example I sent before, I use only system-catalogs. >>>>>> >>>>>>> Ashtosh >>>>>> I'm developing database monitor tool and >>>>>> I use "EXECUTE DIRECT" to get database statistics data from >>>>>> particular coordinator/datanode. >>>>>> >>>>>> :) huh >>>>>> >>>>>> I think, monitoring tools should directly query the datanodes or >>>> coordinators. You will get snapshot warning, but that can be ignored I >>>> guess. If they start querying coordinators, there will be performance >>>> drop since coordinators directly handle the clients. >>>>>> Any other thoughts? >>>>>> regard, >>>>>> >>>>>> --------- >>>>>> NTT Software Corporation >>>>>> Tomonari Katsumata >>>>>> >>>>>> (2013/06/04 13:10), Ashutosh Bapat wrote: >>>>>> Hi Tomonari, >>>>>> >>>>>> Thanks for the bug report. >>>>>> >>>>>> I am curious to know, what's the purpose of using EXECUTE DIRECT? We >>>>>> discourage using Execute Direct in the applications. It's only for >>>>>> debugging purposes. >>>>>> >>>>>> >>>>>> On Tue, Jun 4, 2013 at 7:28 AM, Koichi Suzuki >>>> <koi...@gm...>wrote: >>>>>> Thank you Katsumata-san for the report. >>>>>> >>>>>> Could you provide CREATE TABLE statement for each table involved with >>>> some >>>>>> of the data? >>>>>> >>>>>> I will ad this to the bug tracker after I recreate the issue. >>>>>> >>>>>> Best Regards; >>>>>> >>>>>> ---------- >>>>>> Koichi Suzuki >>>>>> >>>>>> >>>>>> 2013/6/4 Tomonari Katsumata <kat...@po...> >>>>>> >>>>>> Hi, I have a problem with query executing. >>>>>> >>>>>> I cant't have any response when I execute a query. >>>>>> This problem occurs when some conditions are met. >>>>>> >>>>>> The conditions are below. >>>>>> --------------------------------------------------------------------- >>>>>> 1. Issuing "EXECUTE DIRECT" to Datanode(ofcourse, via Coordinator). >>>>>> >>>>>> 2. The Query Executing on Datanode has subquery on its FROM-clause. >>>>>> >>>>>> 3. In the subquery, it has a JOIN clause. >>>>>> >>>>>> 4. The Join clause is consisted with another subquery. >>>>>> --------------------------------------------------------------------- >>>>>> >>>>>> >>>>>> Simple example query is below. >>>>>> --------------------------------------------------------------- >>>>>> EXECUTE DIRECT ON (data1) $$ >>>>>> SELECT >>>>>> count(*) >>>>>> FROM >>>>>> (SELECT * FROM pg_locks l LEFT JOIN >>>>>> (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a >>>>>> $$ >>>>>> --------------------------------------------------------------- >>>>>> >>>>>> FYI: >>>>>> This query works fine with Postgres-XC 1.0.3. >>>>>> Is this already known bug ? >>>>>> >>>>>> >>>>>> How can I avoid this problem ? >>>>>> And what kind of info do you need to investigate it ? >>>>>> >>>>>> ---------- >>>>>> NTT Software Corporation >>>>>> Tomonari Katsumata |
From: Ashutosh B. <ash...@en...> - 2013-06-12 05:43:44
|
Hi Tomonari, On Wed, Jun 12, 2013 at 10:17 AM, Tomonari Katsumata < kat...@po...> wrote: > Hi, > > I've investigated this problem(BUG:3614369). > > I caught the cause of it, but I can not > find where to fix. > > The problem occurs when "pgxc_collect_RTE_walker" is called infinitely. > It seems that rtable(List of RangeTable) become cyclic List. > I'm not sure where the List is made. > > I guess, we are talking about EXECUTE DIRECT statement that you have mentioned earlier. The function pgxc_collect_RTE_walker() is a recursive function. The condition to end the recursion is if the given node is NULL. We have to look at if that condition is met and if not why. > Anybody, please give me your help ? > If not so difficult to fix it, I want to fix soon. > > -------- > NTT Software Corporation > Tomonari Katsumata > > (2013/06/06 13:55), Koichi Suzuki wrote: > > I added this to the bug tracker with the ID 3614369 > > > > Regards; > > > > ---------- > > Koichi Suzuki > > > > > > 2013/6/5 鈴木 幸市 <ko...@in...> > > > >> Yeah, I found that this command stuck and doing this by direct > connection > >> to datanode works. > >> > >> Regards; > >> --- > >> Koichi Suzuki > >> > >> > >> > >> On 2013/06/05, at 18:12, Tomonari Katsumata < > >> kat...@po...> wrote: > >> > >>> Hi, > >>> > >>> The queries sent by Suzuki-san work fine, > >>> but my problem is still there. > >>> Could you try execute the query I sent before? > >>> > >>> --- > >>> EXECUTE DIRECT ON (data1) $$ > >>> SELECT > >>> count(*) > >>> FROM > >>> (SELECT * FROM pg_locks l LEFT JOIN > >>> (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a > >>> $$ > >>> --- > >>> > >>> I don't change this query because it work with Postgres-XC v1.0. > >>> > >>> regards, > >>> ------- > >>> NTT Software Corporation > >>> Tomonari Katsumata > >>> > >>> (2013/06/05 16:20), Tomonari Katsumata wrote: > >>>> Hi, all > >>>> > >>>> thank you for many responses! > >>>> > >>>> OK, I'll try it with the current master. > >>>> > >>>> It seems that it'll work fine... > >>>> > >>>> Sorry for bothering you. > >>>> > >>>> regards, > >>>> -------- > >>>> NTT Software Corporation > >>>> Tomonari Katsumata > >>>> > >>>> > >>>> (2013/06/05 13:48), 鈴木 幸市 wrote: > >>>>> Now snapshot warning is disabled. Michael committed this patch. > >>>>> > >>>>> I tested the query with the current master as of this noon and I got > >>>> (probably) correct result. > >>>>> Here's the result: > >>>>> > >>>>> koichi=# execute direct on (datanode1) $$ > >>>>> select count(*) from (select * from pg_locks) l left join > >>>>> (select * from pg_stat_activity) s on (l.database=s.datid); > >>>>> $$; > >>>>> count > >>>>> ------- > >>>>> 9 > >>>>> (1 row) > >>>>> > >>>>> koichi=# \q > >>>>> … > >>>>> > >>>>> koichi=# execute direct on (datanode1) $$ > >>>>> koichi$# select count(*) from pg_locks l left join pg_stat_activity > s > >>>>> koichi$# on (l.database=s.datid); > >>>>> koichi$# $$; > >>>>> count > >>>>> ------- > >>>>> 11 > >>>>> (1 row) > >>>>> > >>>>> koichi=# > >>>>> > >>>>> Second statement is simpler version. Anyway, they seem to work find. > >>>>> > >>>>> Katsumata-san, could you try this with the latest head? It is > >>>> available both from sourceforge and github. > >>>>> Regards; > >>>>> --- > >>>>> Koichi Suzuki > >>>>> > >>>>> > >>>>> > >>>>> On 2013/06/05, at 13:39, Ashutosh Bapat > >>>> <ash...@en...> wrote: > >>>>>> > >>>>>> > >>>>>> On Wed, Jun 5, 2013 at 9:57 AM, Tomonari Katsumata > >>>> <kat...@po...> wrote: > >>>>>> Hi Suzuki-san, Ashutosh, > >>>>>> > >>>>>>> Suzuki-san > >>>>>> I don't make any user tables. > >>>>>> As the simple example I sent before, I use only system-catalogs. > >>>>>> > >>>>>>> Ashtosh > >>>>>> I'm developing database monitor tool and > >>>>>> I use "EXECUTE DIRECT" to get database statistics data from > >>>>>> particular coordinator/datanode. > >>>>>> > >>>>>> :) huh > >>>>>> > >>>>>> I think, monitoring tools should directly query the datanodes or > >>>> coordinators. You will get snapshot warning, but that can be ignored > I > >>>> guess. If they start querying coordinators, there will be performance > >>>> drop since coordinators directly handle the clients. > >>>>>> Any other thoughts? > >>>>>> regard, > >>>>>> > >>>>>> --------- > >>>>>> NTT Software Corporation > >>>>>> Tomonari Katsumata > >>>>>> > >>>>>> (2013/06/04 13:10), Ashutosh Bapat wrote: > >>>>>> Hi Tomonari, > >>>>>> > >>>>>> Thanks for the bug report. > >>>>>> > >>>>>> I am curious to know, what's the purpose of using EXECUTE DIRECT? > We > >>>>>> discourage using Execute Direct in the applications. It's only for > >>>>>> debugging purposes. > >>>>>> > >>>>>> > >>>>>> On Tue, Jun 4, 2013 at 7:28 AM, Koichi Suzuki > >>>> <koi...@gm...>wrote: > >>>>>> Thank you Katsumata-san for the report. > >>>>>> > >>>>>> Could you provide CREATE TABLE statement for each table involved > with > >>>> some > >>>>>> of the data? > >>>>>> > >>>>>> I will ad this to the bug tracker after I recreate the issue. > >>>>>> > >>>>>> Best Regards; > >>>>>> > >>>>>> ---------- > >>>>>> Koichi Suzuki > >>>>>> > >>>>>> > >>>>>> 2013/6/4 Tomonari Katsumata <kat...@po...> > >>>>>> > >>>>>> Hi, I have a problem with query executing. > >>>>>> > >>>>>> I cant't have any response when I execute a query. > >>>>>> This problem occurs when some conditions are met. > >>>>>> > >>>>>> The conditions are below. > >>>>>> > --------------------------------------------------------------------- > >>>>>> 1. Issuing "EXECUTE DIRECT" to Datanode(ofcourse, via Coordinator). > >>>>>> > >>>>>> 2. The Query Executing on Datanode has subquery on its FROM-clause. > >>>>>> > >>>>>> 3. In the subquery, it has a JOIN clause. > >>>>>> > >>>>>> 4. The Join clause is consisted with another subquery. > >>>>>> > --------------------------------------------------------------------- > >>>>>> > >>>>>> > >>>>>> Simple example query is below. > >>>>>> --------------------------------------------------------------- > >>>>>> EXECUTE DIRECT ON (data1) $$ > >>>>>> SELECT > >>>>>> count(*) > >>>>>> FROM > >>>>>> (SELECT * FROM pg_locks l LEFT JOIN > >>>>>> (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a > >>>>>> $$ > >>>>>> --------------------------------------------------------------- > >>>>>> > >>>>>> FYI: > >>>>>> This query works fine with Postgres-XC 1.0.3. > >>>>>> Is this already known bug ? > >>>>>> > >>>>>> > >>>>>> How can I avoid this problem ? > >>>>>> And what kind of info do you need to investigate it ? > >>>>>> > >>>>>> ---------- > >>>>>> NTT Software Corporation > >>>>>> Tomonari Katsumata > > > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Windows: > > Build for Windows Store. > > http://p.sf.net/sfu/windows-dev2dev > _______________________________________________ > Postgres-xc-developers mailing list > Pos...@li... > https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > -- Best Wishes, Ashutosh Bapat EntepriseDB Corporation The Postgres Database Company |
From: Tomonari K. <kat...@po...> - 2013-06-12 08:56:42
|
Hi Ashutosh, Thank you for the response. (2013/06/12 14:43), Ashutosh Bapat wrote: >> Hi, >> > >> > I've investigated this problem(BUG:3614369). >> > >> > I caught the cause of it, but I can not >> > find where to fix. >> > >> > The problem occurs when "pgxc_collect_RTE_walker" is called infinitely. >> > It seems that rtable(List of RangeTable) become cyclic List. >> > I'm not sure where the List is made. >> > >> > > I guess, we are talking about EXECUTE DIRECT statement that you have > mentioned earlier. Yes, that's right. I'm talking about EXECUTE DIRECT statement like below. --- EXECUTE DIRECT ON (data1) $$ SELECT count(*) FROM (SELECT * FROM pg_locks l LEFT JOIN (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a $$ --- > The function pgxc_collect_RTE_walker() is a recursive > function. The condition to end the recursion is if the given node is NULL. > We have to look at if that condition is met and if not why. > I investigated it deeper, and I noticed that the infinitely loop happens at the function "range_table_walker()". Please see below trace. =========================== Breakpoint 1, range_table_walker (rtable=0x15e7968, walker=0x612c70 <pgxc_collect_RTE_walker>, context=0x7fffd2de31c0, flags=0) at nodeFuncs.c:1908 1908 in nodeFuncs.c (gdb) p *rtable $10 = {type = T_List, length = 5, head = 0x15e7998, tail = 0x15e9820} (gdb) p *rtable->head $11 = {data = {ptr_value = 0x15e79b8, int_value = 22968760, oid_value = 22968760}, next = 0x15e8190} (gdb) p *rtable->head->next $12 = {data = {ptr_value = 0x15e81b0, int_value = 22970800, oid_value = 22970800}, next = 0x15e8988} (gdb) p *rtable->head->next->next $13 = {data = {ptr_value = 0x15e89a8, int_value = 22972840, oid_value = 22972840}, next = 0x15e9018} (gdb) p *rtable->head->next->next->next $14 = {data = {ptr_value = 0x15e9038, int_value = 22974520, oid_value = 22974520}, next = 0x15e9820} (gdb) p *rtable->head->next->next->next->next $15 = {data = {ptr_value = 0x15e9840, int_value = 22976576, oid_value = 22976576}, next = 0x15e7998} =========================== The line which starts with "$15" has 0x15e7998 as its next data. But it is the head pointer(see the line which starts with $10). And in range_table_walker(), the function is called recursively. -------- ... if (!(flags & QTW_IGNORE_RANGE_TABLE)) { if (range_table_walker(query->rtable, walker, context, flags)) return true; } ... -------- We should make rtable right or deal with "flags" properly. But I can't find where to do it... What do you think ? regards, --------- NTT Software Corporation Tomonari Katsumata |
From: Ashutosh B. <ash...@en...> - 2013-08-13 09:53:54
|
Hi Tomonari, The code changes are fine, but, the comment in pgxc_collect_RTE_walker() seems to specific. I think it should read, "create a copy of query's range table, so that it can be linked with other RTEs in the collector's context." In the test file, isn't there any way, you can add the offending statent without any wrapper function test_execute_direct_all_xc_nodes()? We should minimize the test-code to use only the minimal set of features. Since this statement no more gets into infinite loop, please do not use the statement timeout. On Sat, Aug 10, 2013 at 11:21 AM, Tomonari Katsumata < t.k...@gm...> wrote: > Hi, > > Sorry for begin for long waiting... > > I've revised my patch. > The patch is revised_fqs_r2.patch. > This is a patch for (e684b405779d0d348309d011249e4f5439f8d304) > > > 2013/7/22 Tomonari Katsumata <kat...@po...> > >> Hi Abbas, >> >> (2013/07/19 20:37), Abbas Butt wrote: >> > > >> > 1. The problem you reported seems to be caused by a missing >> initialization >> > i.e. >> > query->rtable = NIL; >> > Can you please explain why did the server crash and how it got fixed by >> > having the above initialization statement? >> The fix has nothing to do with server crash. >> The test environment(2datanodes and 1cordinator) avoids the crash. >> >> > It would be nice to add some comment on top of this line explaining it. >> > >> To be honest, I don't know why my fix solves >> my infinite loop problem. >> I'll check it deeper and revise the patch. >> Please wait for it. >> > > It seems that my old fix is not good. > Because all rtable data is ignored. > So I changed the place to fix to pgxc_collect_RTE_walker in pgxcplan.c. > When concating lists, I make a copy of a list. > This was suggested by Ashtosh before, and I've confirm > I can avoid my problem with this. > > >> >> > 2. I think your patch unintentionally includes a change in >> > contrib/pgxc_ctl/signature.h >> > Can you please remove it? >> > >> OK, I'll do it. >> > > done. > > >> >> > 3. Can you please add a test case in say xc_misc.sql? >> > >> OK, I'll do it too. >> > > done. > > regards, > ------------- > NTT Software Corporation > Tomonari Katsumata > > > > ------------------------------------------------------------------------------ > Get 100% visibility into Java/.NET code with AppDynamics Lite! > It's a free troubleshooting tool designed for production. > Get down to code-level detail for bottlenecks, with <2% overhead. > Download for free and get started troubleshooting in minutes. > http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk > _______________________________________________ > Postgres-xc-developers mailing list > Pos...@li... > https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > > -- Best Wishes, Ashutosh Bapat EntepriseDB Corporation The Postgres Database Company |
From: Tomonari K. <kat...@po...> - 2013-08-14 10:56:21
Attachments:
revised_fqs_r3.patch
|
Hi Ashtosh, Thanks for your comment! > The code changes are fine, but, the comment in pgxc_collect_RTE_walker() > seems to specific. I think it should read, "create a copy of query's range > table, so that it can be linked with other RTEs in the collector's context." > I've revised the comment as you suggested. > In the test file, isn't there any way, you can add the offending statent > without any wrapper function test_execute_direct_all_xc_nodes()? We should > minimize the test-code to use only the minimal set of features. Since this > statement no more gets into infinite loop, please do not use the statement > timeout. I've gotten rid of using statement timeout. But I couldn't come up any idea to testing more simply, so the function is remaining as same as before patch. Any ideas? Here is the new patch. (against dec40008b3d689911566514614c5111c0a61327d) regards, ------------- NTT Software Corporation Tomonari Katsumata |
From: Ashutosh B. <ash...@en...> - 2013-06-12 12:04:45
|
Hi Tomonari, Can you please check the list's sanity before calling pgxc_collect_RTE() and at every point in the minions of this function. My primary suspect is the line pgxcplan.c:3094. We should copy the list before concatenating it. On Wed, Jun 12, 2013 at 2:26 PM, Tomonari Katsumata < kat...@po...> wrote: > Hi Ashutosh, > > Thank you for the response. > > (2013/06/12 14:43), Ashutosh Bapat wrote: > >> Hi, > >> > > >> > I've investigated this problem(BUG:3614369). > >> > > >> > I caught the cause of it, but I can not > >> > find where to fix. > >> > > >> > The problem occurs when "pgxc_collect_RTE_walker" is called > infinitely. > >> > It seems that rtable(List of RangeTable) become cyclic List. > >> > I'm not sure where the List is made. > >> > > >> > > > I guess, we are talking about EXECUTE DIRECT statement that you have > > mentioned earlier. > > Yes, that's right. > I'm talking about EXECUTE DIRECT statement like below. > --- > EXECUTE DIRECT ON (data1) $$ > SELECT > count(*) > FROM > (SELECT * FROM pg_locks l LEFT JOIN > (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a > $$ > --- > > > The function pgxc_collect_RTE_walker() is a recursive > > function. The condition to end the recursion is if the given node is > NULL. > > We have to look at if that condition is met and if not why. > > > I investigated it deeper, and I noticed that > the infinitely loop happens at the function "range_table_walker()". > > Please see below trace. > =========================== > Breakpoint 1, range_table_walker (rtable=0x15e7968, walker=0x612c70 > <pgxc_collect_RTE_walker>, context=0x7fffd2de31c0, > flags=0) at nodeFuncs.c:1908 > 1908 in nodeFuncs.c > > (gdb) p *rtable > $10 = {type = T_List, length = 5, head = 0x15e7998, tail = 0x15e9820} > (gdb) p *rtable->head > $11 = {data = {ptr_value = 0x15e79b8, int_value = 22968760, oid_value = > 22968760}, next = 0x15e8190} > (gdb) p *rtable->head->next > $12 = {data = {ptr_value = 0x15e81b0, int_value = 22970800, oid_value = > 22970800}, next = 0x15e8988} > (gdb) p *rtable->head->next->next > $13 = {data = {ptr_value = 0x15e89a8, int_value = 22972840, oid_value = > 22972840}, next = 0x15e9018} > (gdb) p *rtable->head->next->next->next > $14 = {data = {ptr_value = 0x15e9038, int_value = 22974520, oid_value = > 22974520}, next = 0x15e9820} > (gdb) p *rtable->head->next->next->next->next > $15 = {data = {ptr_value = 0x15e9840, int_value = 22976576, oid_value = > 22976576}, next = 0x15e7998} > =========================== > > The line which starts with "$15" has 0x15e7998 as its next data. > But it is the head pointer(see the line which starts with $10). > > And in range_table_walker(), the function is called recursively. > -------- > ... > if (!(flags & QTW_IGNORE_RANGE_TABLE)) > { > if (range_table_walker(query->rtable, walker, context, > flags)) > return true; > } > ... > -------- > > We should make rtable right or deal with "flags" properly. > But I can't find where to do it... > > What do you think ? > > regards, > --------- > NTT Software Corporation > Tomonari Katsumata > > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Windows: > > Build for Windows Store. > > http://p.sf.net/sfu/windows-dev2dev > _______________________________________________ > Postgres-xc-developers mailing list > Pos...@li... > https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers > -- Best Wishes, Ashutosh Bapat EntepriseDB Corporation The Postgres Database Company |
From: Tomonari K. <kat...@po...> - 2013-06-17 06:13:37
|
Hi Ashtosh, Sorry for slow response. I've watched the each lists at list_concat function. This function is called several times, but the lists before last infinitely roop are like below. [list1] (gdb) p *list1->head $18 = {data = {ptr_value = 0x17030e8, int_value = 24129768, oid_value = 24129768}, next = 0x170d418} (gdb) p *list1->head->next $19 = {data = {ptr_value = 0x17033d0, int_value = 24130512, oid_value = 24130512}, next = 0x170fd40} (gdb) p *list1->head->next->next $20 = {data = {ptr_value = 0x170ae58, int_value = 24161880, oid_value = 24161880}, next = 0x171e6c8} (gdb) p *list1->head->next->next->next $21 = {data = {ptr_value = 0x1702ca8, int_value = 24128680, oid_value = 24128680}, next = 0x171ed28} (gdb) p *list1->head->next->next->next->next $22 = {data = {ptr_value = 0x170af68, int_value = 24162152, oid_value = 24162152}, next = 0x171f3a0} (gdb) p *list1->head->next->next->next->next->next $23 = {data = {ptr_value = 0x170b0a8, int_value = 24162472, oid_value = 24162472}, next = 0x170b7c0} (gdb) p *list1->head->next->next->next->next->next->next $24 = {data = {ptr_value = 0x17035f0, int_value = 24131056, oid_value = 24131056}, next = 0x1720998} ---- from --- (gdb) p *list1->head->next->next->next->next->next->next->next $25 = {data = {ptr_value = 0x17209b8, int_value = 24250808, oid_value = 24250808}, next = 0x1721190} (gdb) p *list1->head->next->next->next->next->next->next->next->next $26 = {data = {ptr_value = 0x17211b0, int_value = 24252848, oid_value = 24252848}, next = 0x1721988} (gdb) p *list1->head->next->next->next->next->next->next->next->next->next $27 = {data = {ptr_value = 0x17219a8, int_value = 24254888, oid_value = 24254888}, next = 0x1722018} (gdb) p *list1->head->next->next->next->next->next->next->next->next->next->next $28 = {data = {ptr_value = 0x1722038, int_value = 24256568, oid_value = 24256568}, next = 0x1722820} (gdb) p *list1->head->next->next->next->next->next->next->next->next->next->next->next $29 = {data = {ptr_value = 0x1722840, int_value = 24258624, oid_value = 24258624}, next = 0x0} ---- to ---- [list2] (gdb) p *list2->head $31 = {data = {ptr_value = 0x17209b8, int_value = 24250808, oid_value = 24250808}, next = 0x1721190} (gdb) p *list2->head->next $32 = {data = {ptr_value = 0x17211b0, int_value = 24252848, oid_value = 24252848}, next = 0x1721988} (gdb) p *list2->head->next->next $33 = {data = {ptr_value = 0x17219a8, int_value = 24254888, oid_value = 24254888}, next = 0x1722018} (gdb) p *list2->head->next->next->next $34 = {data = {ptr_value = 0x1722038, int_value = 24256568, oid_value = 24256568}, next = 0x1722820} (gdb) p *list2->head->next->next->next->next $35 = {data = {ptr_value = 0x1722840, int_value = 24258624, oid_value = 24258624}, next = 0x0} ---- list1's last five elements are same with list2's all elements. (in above example, between "from" and "to" in list1 equal all of list2) This is cause of infinitely roop, but I can not watch deeper. Because some values from gdb are optimized and un-displayed. I tried compile with CFLAGS=O0, but I can't. What can I do more ? regards, ------------------ NTT Software Corporation Tomonari Katsumata (2013/06/12 21:04), Ashutosh Bapat wrote: > Hi Tomonari, > Can you please check the list's sanity before calling pgxc_collect_RTE() > and at every point in the minions of this function. My primary suspect is > the line pgxcplan.c:3094. We should copy the list before concatenating it. > > > On Wed, Jun 12, 2013 at 2:26 PM, Tomonari Katsumata < > kat...@po...> wrote: > >> Hi Ashutosh, >> >> Thank you for the response. >> >> (2013/06/12 14:43), Ashutosh Bapat wrote: >> >> Hi, >> >> > >> >> > I've investigated this problem(BUG:3614369). >> >> > >> >> > I caught the cause of it, but I can not >> >> > find where to fix. >> >> > >> >> > The problem occurs when "pgxc_collect_RTE_walker" is called >> infinitely. >> >> > It seems that rtable(List of RangeTable) become cyclic List. >> >> > I'm not sure where the List is made. >> >> > >> >> > >> > I guess, we are talking about EXECUTE DIRECT statement that you have >> > mentioned earlier. >> >> Yes, that's right. >> I'm talking about EXECUTE DIRECT statement like below. >> --- >> EXECUTE DIRECT ON (data1) $$ >> SELECT >> count(*) >> FROM >> (SELECT * FROM pg_locks l LEFT JOIN >> (SELECT * FROM pg_stat_activity) s ON l.database = s.datid) a >> $$ >> --- >> >> > The function pgxc_collect_RTE_walker() is a recursive >> > function. The condition to end the recursion is if the given node is >> NULL. >> > We have to look at if that condition is met and if not why. >> > >> I investigated it deeper, and I noticed that >> the infinitely loop happens at the function "range_table_walker()". >> >> Please see below trace. >> =========================== >> Breakpoint 1, range_table_walker (rtable=0x15e7968, walker=0x612c70 >> <pgxc_collect_RTE_walker>, context=0x7fffd2de31c0, >> flags=0) at nodeFuncs.c:1908 >> 1908 in nodeFuncs.c >> >> (gdb) p *rtable >> $10 = {type = T_List, length = 5, head = 0x15e7998, tail = 0x15e9820} >> (gdb) p *rtable->head >> $11 = {data = {ptr_value = 0x15e79b8, int_value = 22968760, oid_value = >> 22968760}, next = 0x15e8190} >> (gdb) p *rtable->head->next >> $12 = {data = {ptr_value = 0x15e81b0, int_value = 22970800, oid_value = >> 22970800}, next = 0x15e8988} >> (gdb) p *rtable->head->next->next >> $13 = {data = {ptr_value = 0x15e89a8, int_value = 22972840, oid_value = >> 22972840}, next = 0x15e9018} >> (gdb) p *rtable->head->next->next->next >> $14 = {data = {ptr_value = 0x15e9038, int_value = 22974520, oid_value = >> 22974520}, next = 0x15e9820} >> (gdb) p *rtable->head->next->next->next->next >> $15 = {data = {ptr_value = 0x15e9840, int_value = 22976576, oid_value = >> 22976576}, next = 0x15e7998} >> =========================== >> >> The line which starts with "$15" has 0x15e7998 as its next data. >> But it is the head pointer(see the line which starts with $10). >> >> And in range_table_walker(), the function is called recursively. >> -------- >> ... >> if (!(flags & QTW_IGNORE_RANGE_TABLE)) >> { >> if (range_table_walker(query->rtable, walker, context, >> flags)) >> return true; >> } >> ... >> -------- >> >> We should make rtable right or deal with "flags" properly. >> But I can't find where to do it... >> >> What do you think ? >> >> regards, >> --------- >> NTT Software Corporation >> Tomonari Katsumata >> >> >> >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by Windows: >> >> Build for Windows Store. >> >> http://p.sf.net/sfu/windows-dev2dev >> _______________________________________________ >> Postgres-xc-developers mailing list >> Pos...@li... >> https://lists.sourceforge.net/lists/listinfo/postgres-xc-developers >> > > > |