Re: [Patch] Crash in pgAdmin when Refresh object on click is enabled - Mailing list pgadmin-hackers

From Dhiraj Chawla
Subject Re: [Patch] Crash in pgAdmin when Refresh object on click is enabled
Date
Msg-id CAJgtxT4A4h7cK0Cc6D3vKiD9ksjA8ih4reX91HpEshodxTYr-A@mail.gmail.com
Whole thread Raw
In response to Re: [Patch] Crash in pgAdmin when Refresh object on click is enabled  (Dave Page <dpage@pgadmin.org>)
List pgadmin-hackers
Thanks Dave.

On Thu, Nov 8, 2012 at 9:08 PM, Dave Page <dpage@pgadmin.org> wrote:
Thanks, patch applied.

On Thu, Nov 8, 2012 at 1:12 PM, Dhiraj Chawla
<dhiraj.chawla@enterprisedb.com> wrote:
> Hi Dave,
>
> This patch fixes a crash in pgAdmin||| which happens when user enables
> Refresh object on click in the options dialog in the UI Miscellaneous tab
> and the opens the property dialog of Job, step or Schedule.
>
> The reproduction step is as follows:
>
> 1. Enable Refresh object on click in Options dialog
> 2. Expand the Jobs node and open it's property dialog
> 3. Now click on Steps node or Schedules node or select a Step or Schedule
> node which causes click refresh of the node.
> 4. Now again click on the Job node.
> 5. Now change some properties in the dialog and click ok.
> 6. pgAdmin crashes.
>
> Similarly if you open a property dialog of a Step and then click on job node
> and then change some properties in the dialog and then click Ok button.
> Again the pgAdmin crashes.
>
> The main reason found for the crash is, that when we select a Job, Step or
> Schedule node, the node is refreshed in which case we delete object
> associated with the node. Now this same object is passed to the dialog. Thus
> when a dialog is invoked this object gets passed to the object which is
> valid. But when we re-select this node, the node gets refreshed and the
> object is deleted and a new object is created. Thus now the dialog has a
> dereferenced object. Similarly if a parent node is selected the all the
> child nodes are deleted.
>
> This fix that I have done here in this patch, whenever we go to refresh a
> node on single click we check if dialog of the currently selected node or
> the nodes children to the current node are already opened or not. If no
> dialogs are open we go ahead with the refresh or else we bail out.
>
> Kindly review the patch and let me know if my approach is correct or not.
>
> Thanks,
>
> --
> regards,
>
> Dhiraj Chawla
> Software Engineer
> EnterpriseDB Corporation
> The Enterprise PostgreSQL Company
>
> Phone: +91-20-30589522
>
>
>
> --
> Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgadmin-hackers
>



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
regards,

Dhiraj Chawla
Software Engineer
EnterpriseDB Corporation
The Enterprise PostgreSQL Company

Phone: +91-20-30589522

pgadmin-hackers by date:

Previous
From: Dhiraj Chawla
Date:
Subject: Re: Reduce delay in keypress (input) in Query Tool
Next
From: Vladimir Kokovic
Date:
Subject: Re: pg_scanner - patch no.1