PGAdmin Crashes when a column is dropped from a table (issue fix patch)

From: Dhiraj Chawla <dhiraj(dot)chawla(at)enterprisedb(dot)com>
To: Dave Page <dpage(at)pgadmin(dot)org>, pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: PGAdmin Crashes when a column is dropped from a table (issue fix patch)
Date: 2013-09-20 11:48:10
Message-ID: CAJgtxT4uQc7xc+2LBgCSjgw7zoUjEqzwy+qJ2Dg1RtAp_XztNA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Hi Dave,

As per the issue reported in the pgadmin-support mailing about how pgAdmin
crashes when a user drops either a column or a constraint of table, I tried
reproducing the scenario at my end was able to reproduce it. While
analyzing the issue I found that after a column or constraint is dropped,
the table node gets refreshed twice; once due to an explicit call to
frmMain::Refresh() in the frmMain::ExecDrop() function and second time due
TreeItem selection change event which invokes frmMain::execSelChange(). Now
in refresh we delete the object node of the table item and recreate it,
which causes the segmentation fault.

Attached is the patch which fixes this issue. As per this fix I allow the
Refesh() function to be called only once by setting m_refreshing variable
to true before calling the first explicit refresh from ExecDrop() and then
setting it back to false. With this the second Refresh() call is not made.

I have tested patch by setting Refresh on click to both: Refresh object on
click and Refresh object and children on click in the UI Miscellaneous in
the Setting dialog.

Let me know your view on this patch.

regards,

*Dhiraj Chawla*
Senior Software Engineer
EnterpriseDB Corporation
The Enterprise PostgreSQL Company

Phone: +91-20-30589522

Attachment Content-Type Size
pgadmin_drop_column_crash_fix.patch application/octet-stream 833 bytes

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Dhiraj Chawla 2013-09-20 12:13:04 Event Triggers are not listed in the browser view options on the Settings dialogue
Previous Message Dave Page 2013-09-19 21:10:55 Re: pgAgent: C++ Port - Patch Review