From: Abbas B. <abb...@en...> - 2013-07-19 11:37:42
|
I had a look at your patch, here is my feedback. 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? It would be nice to add some comment on top of this line explaining it. 2. I think your patch unintentionally includes a change in contrib/pgxc_ctl/signature.h Can you please remove it? 3. Can you please add a test case in say xc_misc.sql? Regards On Fri, Jul 19, 2013 at 6:46 AM, Tomonari Katsumata < t.k...@gm...> wrote: > Hi Abbas, > > Thank you for your great suggestion! > I've test it with the enviroment as you said. > (against:c296dfec03f2eec15f79363c4111412c27d24ab5) > > Any crash has occured during regression tests. > I could run all regression tests with both original and patched(*) source. > Although I get one FAILED on a combocid test, it doesn't have > nothing to do with revising the source. > Because original source get same FAILED too. > (please see attached results.) > > (*) proposed by Ashutosh on ML(2013/07/02 15:14). > ------------- > In pgxc_collect_RTE_walker() > 3112 crte_context->crte_rtable = > list_concat(crte_context->crte_rtable, > 3113 query->rtable); > 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)); > ------------------------------------ > > If you don't have any problem, please commit this change. > > regards, > --------------------- > NTT Software Corporation > Tomonari Katsumata > > > > 2013/7/16 Abbas Butt <abb...@en...> > >> 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> >> >> >> ------------------------------------------------------------------------------ >> See everything from the browser to the database with AppDynamics >> Get end-to-end visibility with application monitoring from AppDynamics >> Isolate bottlenecks and diagnose root cause in seconds. >> Start your free trial of AppDynamics Pro today! >> >> http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk >> >> _______________________________________________ >> 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> |