Re: v3.0 release on hold - Mailing list pgadmin-hackers

From Dave Page
Subject Re: v3.0 release on hold
Date
Msg-id CA+OCxoyowmBEg7y6uML3C2rybicZP4=HzQ7DFJ2YVG=7jOPE0A@mail.gmail.com
Whole thread Raw
In response to Re: v3.0 release on hold  (Robert Eckhardt <reckhardt@pivotal.io>)
Responses Re: v3.0 release on hold
List pgadmin-hackers
I'm thinking build Monday, release Thursday.

Objections?

On Tue, Apr 3, 2018 at 2:43 PM, Robert Eckhardt <reckhardt@pivotal.io> wrote:
All,

Where are we with respect to cutting this release? 

-- Rob

On Mon, Mar 26, 2018 at 9:59 AM, Joao De Almeida Pereira <jdealmeidapereira@pivotal.io> wrote:
Hi Hackers,

Did we had any progress on the things that are holding the release back?

Thanks
Joao

On Fri, Mar 23, 2018 at 9:26 AM Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:
Hi Dave

On Fri, Mar 23, 2018 at 11:06 AM, Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:


On Thu, Mar 22, 2018 at 10:24 PM, Dave Page <dpage@pgadmin.org> wrote:
Hi

On Thu, Mar 22, 2018 at 1:13 PM, Dave Page <dpage@pgadmin.org> wrote:

2) Starting a second instance of the app bundle on Mac doesn't always open a new pgAdmin window as it should. It works fine in the debugger, or if you start the app with a command like: "/Applications/pgAdmin\ 4.app/Contents/MacOS/pgAdmin4". It doesn't work if you double-click the appbundle or use a command like "open /Applications/pgAdmin\ 4.app"

  Still working on this, not found any solution yet.

         Not able to figure out the solution yet. I have tried to debug the code, but every time it will create a new instance(tray icon). Do I need to look into the code or something related to app bundle may be some settings in info.plist or any other pointer? 

Have a look at the code around line 85 an onwards of pgAdmin4.cpp. It creates the shared memory interlock (and log/address files) based on the current username and a hash of the executable name/path. My suspicion is that the path hash (which is calculated from argv[0] on line 72) is for some reason getting a different value each time when launched via the Finder or "open", thus the interlock is failing.

So I took a look at this, and it seems the code is just fine. What is happening is that macOS only allows a single instance of an app to run at once. Whilst that is what we want of course, macOS is causing the new instance to exit before it has a change to open a new pgAdmin window. Using "open -n ..." or calling the embedded executable directly resolves that issue.

So, there's another challenge to figure out... :-( 

    OK. Will try to figure that out. 

        After googled I have tried following solution: 
  1. Create a shell script "launch.sh" and kept it in  "/Applications/pgAdmin\ 4.app/Contents/MacOS" folder. That shell script will contain the command "open -n /Applications/pgAdmin\ 4.app/Contents/MacOS/pgAdmin4". Change the "CFBundleExecutable" parameter of Info.plist from "pgAdmin4" to "launch.sh".  It didn't work, shall script didn't launch.
  2. Create one apple script with command like "do shell execute "/Applications/pgAdmin\ 4.app", compile it and save it as Application. It create the app bundle, copy contents of pgAdmin4 app to this newly created application. But the problem is it opens and having icon in the dock and no response on double click (second time).
       Will continue to figure out some other solutions tomorrow.       

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

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



--
Akshay Joshi
Sr. Software Architect





--
Akshay Joshi
Sr. Software Architect






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

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

pgadmin-hackers by date:

Previous
From: Murtuza Zabuawala
Date:
Subject: Re: [pgAdmin4][RM#3154] Update modules to latest version
Next
From: Robert Eckhardt
Date:
Subject: Re: v3.0 release on hold