Re: PATCH: RM# 1679 - Background process for "restore" not reporting status back to pgAdmin

From: Ashesh Vashi <ashesh(dot)vashi(at)enterprisedb(dot)com>
To: Dave Page <dpage(at)pgadmin(dot)org>
Cc: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: PATCH: RM# 1679 - Background process for "restore" not reporting status back to pgAdmin
Date: 2017-01-10 12:17:29
Message-ID: CAG7mmoxpCJOQo=kYjtHAMO37LZELHEAA52X=dctMSTZYWtwjrQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Hi Team,

In new implementation - we are forking the process-executor on the POSIX
system to run the process in true daemon mode.
And, we were updating the status in the configuration file (which is sqlite
database), it was crashing while opening the configuration file, and
couldn't update the status.
Reference: https://bugs.python.org/issue27126

In order to resolve the issue, we're now creating a 'status' file for the
process information.
And, it will be used to check the status information about the process.

Thanks Dave for helping find out the root cause of the issue, and point out
the correct reference point.
Please find the updated patch with the latest changes.

I have also attached a patch to make the restore, and backup routes more
REST API compatible.

--

Thanks & Regards,

Ashesh Vashi
EnterpriseDB INDIA: Enterprise PostgreSQL Company
<http://www.enterprisedb.com>

*http://www.linkedin.com/in/asheshvashi*
<http://www.linkedin.com/in/asheshvashi>

On Mon, Dec 19, 2016 at 5:28 PM, Dave Page <dpage(at)pgadmin(dot)org> wrote:

> On Mon, Dec 19, 2016 at 11:52 AM, Dave Page <dpage(at)pgadmin(dot)org> wrote:
> >
> >
> > On Fri, Dec 16, 2016 at 10:16 AM, Ashesh Vashi
> > <ashesh(dot)vashi(at)enterprisedb(dot)com> wrote:
> >>
> >> Hi Dave,
> >>
> >> On Mon, Dec 12, 2016 at 4:01 PM, Dave Page <dpage(at)pgadmin(dot)org> wrote:
> >>>
> >>> Hi,
> >>>
> >>> On Fri, Dec 9, 2016 at 9:16 AM, Ashesh Vashi
> >>> <ashesh(dot)vashi(at)enterprisedb(dot)com> wrote:
> >>>>
> >>>> Hi Dave,
> >>>>
> >>>> Please find the patch to resolve the issue reported in RM #1679
> >>>>
> >>>> This will take care of:
> >>>> - Find the appropriate available Python interpreter to execute the
> >>>> process_executor.py.
> >>>> In case of WSGI or Runtime, it was not properly find the interpreter
> >>>> required to execute that script. Also, on windows - we should give
> priority
> >>>> to the windowless python interpreter (if available).
> >>>> - Execute the process_executor.py script with proper platform
> dependent
> >>>> flags to run it as daemon.
> >>>> - Run the process_executor.py in proper daemon mode. It helps to run
> the
> >>>> long running processes like backup, restore, etc.
> >>>> On windows, run the process_executor.py from process_executor.py in
> >>>> detached mode to allow the child process to run in detached mode.
> >>>> On POSIX, fork the process_executor.py to allow the child process to
> >>>> run in daemon mode.
> >>>> Also - listen the signal like SIGINT, SIGTERM, so that - the child
> >>>> does not kill, or hangup (It used to happen.
> >>>>
> >>>>
> >>>> NOTE:
> >>>> This patch does not take care of the unicode errors in the path. I
> will
> >>>> send a separate patch for the same.
> >>>
> >>>
> >>> Unfortunately my first test of this failed:
> >>>
> >>> SERVER_MODE = False
> >>> Python 2.7.11 (Mac default)
> >>> Running in Chrome
> >>>
> >>> I ran a backup of a database, and got the green backup initiated
> popup...
> >>> then, nothing. Upon checking my config, I found I had the PostgreSQL
> Bin
> >>> Path set to "$DIR/a/b/c", which clearly won't work. So, we're not yet
> >>> detecting failure to start a process properly.
> >>
> >> During exception handling, the logger's encoding was not set properly
> >> during initialisation, that was resulting into an error.
> >>
> >> Also - sometime the process execution does not start quickly enough to
> >> list down the process execution properly.
> >> Hence - we should check the process list after some time.
> >>
> >> Please find the update patch with the above both problems resolved.
> >
> >
> > Same results with the new patch - either with a correct bin path or an
> > incorrect one, I see the green notification that the backup has started,
> > then nothing.
> >
> > Sidenote: I don't even see anything at all in the console output. I
> think we
> > should at least spit out a debug message showing the command line we're
> > executing the launcher with, and ideally include any other details we can
> > such as job IDs etc.
>
> BTW; attached is my process table from the SQLite database.
>
> I believe the last two rows are from my test today. The out and err
> logs for both are empty files.
>
> --
> Dave Page
> Blog: http://pgsnake.blogspot.com
> Twitter: @pgsnake
>
> EnterpriseDB UK: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>

Attachment Content-Type Size
tools_rest_api.patch application/octet-stream 2.9 KB
RM1679_v6.patch application/octet-stream 35.2 KB

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Dave Page 2017-01-11 06:33:03 Re: PATCH: RM# 1679 - Background process for "restore" not reporting status back to pgAdmin
Previous Message Dave Page 2017-01-10 04:02:45 Re: Content Security Policy