From 0e489df7b0b69c2b6131adc4e0648b1ffa5c4e3a Mon Sep 17 00:00:00 2001 From: Akshay Joshi Date: Wed, 30 Jan 2019 14:48:58 +0530 Subject: [PATCH] Fixed debugger issue for procedure inside package for EPAS servers. Fixes #3927 --- docs/en_US/release_notes_4_2.rst | 1 + web/pgadmin/tools/datagrid/__init__.py | 1 + web/pgadmin/tools/debugger/__init__.py | 23 ++++++++++------------- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/docs/en_US/release_notes_4_2.rst b/docs/en_US/release_notes_4_2.rst index d887861de..81f9404bb 100644 --- a/docs/en_US/release_notes_4_2.rst +++ b/docs/en_US/release_notes_4_2.rst @@ -41,5 +41,6 @@ Bug fixes | `Bug #3897 `_ - Data should be updated properly for FTS Configurations, FTS Dictionaries, FTS Parsers and FTS Templates. | `Bug #3903 `_ - Fixed Query Tool Initialization Error. | `Bug #3908 `_ - Fixed keyboard navigation for Select2 and Privilege cell in Backgrid. +| `Bug #3927 `_ - Fixed debugger issue for procedure inside package for EPAS servers. | `Bug #3929 `_ - Fix alignment of help messages in properties panels. | `Bug #3935 `_ - Ensure that grant wizard should list down functions for EPAS server running with no-redwood-compat mode. \ No newline at end of file diff --git a/web/pgadmin/tools/datagrid/__init__.py b/web/pgadmin/tools/datagrid/__init__.py index ded06dec4..85ab5dae4 100644 --- a/web/pgadmin/tools/datagrid/__init__.py +++ b/web/pgadmin/tools/datagrid/__init__.py @@ -409,6 +409,7 @@ def close(trans_id): # Release the connection if conn.connected(): + conn.cancel_transaction(cmd_obj.conn_id, cmd_obj.did) manager.release(did=cmd_obj.did, conn_id=cmd_obj.conn_id) # Remove the information of unique transaction id from the diff --git a/web/pgadmin/tools/debugger/__init__.py b/web/pgadmin/tools/debugger/__init__.py index 9e5ff9178..42fa12f0c 100644 --- a/web/pgadmin/tools/debugger/__init__.py +++ b/web/pgadmin/tools/debugger/__init__.py @@ -13,6 +13,7 @@ MODULE_NAME = 'debugger' import simplejson as json import random +import re from flask import url_for, Response, render_template, request, session, \ current_app @@ -1301,20 +1302,16 @@ def messages(trans_id): # From the above message we need to find out port number # as "7" so below logic will find 7 as port number # and attach listened to that port number - offset = notify[0].find('PLDBGBREAK') - str_len = len('PLDBGBREAK') - str_len += 1 - tmpOffset = 0 - tmpFlag = False + port_found = False + tmp_list = list(filter(lambda x: 'PLDBGBREAK' in x, notify)) + if len(tmp_list) > 0: + port_number = re.search(r'\d+', tmp_list[0]) + if port_number is not None: + status = 'Success' + port_number = port_number.group(0) + port_found = True - while notify[0][offset + str_len + tmpOffset].isdigit(): - status = 'Success' - tmpFlag = True - port_number = port_number + \ - notify[0][offset + str_len + tmpOffset] - tmpOffset += 1 - - if not tmpFlag: + if not port_found: status = 'Busy' else: status = 'Busy'