Hi

On Fri, May 11, 2018 at 7:23 AM, Akshay Joshi <akshay.jo...@enterprisedb.com
> wrote:

> Hi
>
> On Thu, May 10, 2018 at 7:38 PM, Dave Page <dp...@pgadmin.org> wrote:
>
>> Hi
>>
>> On Thu, May 10, 2018 at 2:00 PM, Akshay Joshi <
>> akshay.jo...@enterprisedb.com> wrote:
>>
>>> Hi Hackers,
>>>
>>> Please find the attached patch to fix RM #3277 Runtime startup error
>>> handling is broken on Windows.
>>>
>>> This issue is regression of RM #3177 "Sporadically crashes on Windows
>>> when exit". Where below code of pgAdmin4.cpp creates the problem:
>>> *QObject::connect(server, SIGNAL(finished()), server,
>>> SLOT(deleteLater()));*
>>>
>>> In case when PythonPath is not provided then application server not
>>> started and server thread finished there execution, due to the above line
>>> of code *Destructor* of Server class has been called and we are
>>> accessing the function *server->getError().length() *at line no 251 of
>>> pgAdmin4.cpp, which cause the application crash.
>>>
>>> I have removed that line and tested RM #3177 and RM# 3277, both are
>>> working fine.
>>>
>>> Please review and test it.
>>>
>>
>> So my first test was compiled against Python 3, but my config was still
>> pointing at a Python 2 venv. I got the error below in the console of
>> QtCreator.
>>
>> Also, wouldn't it make more sense to move the connect that you removed so
>> it only happens once the server is up and running? That way we will still
>> ensure it gets properly deleted when appropriate, but not prematurely if an
>> error occurs during startup.
>>
>
>    Agreed, I have move that call to other place when server is up and
> running. Attached is the modified patch.
>

Thanks, applied.


>
>>  Starting /Users/dpage/git/pgadmin4/build-pgAdmin4-Desktop_Qt_5_10_1_c
>> lang_64bit-Debug/pgAdmin4.app/Contents/MacOS/pgAdmin4...
>> Python path:  "/Users/dpage/.virtualenvs/pga
>> dmin4/lib/python2.7/site-packages:/Users/dpage/.virtualenvs/
>> pgadmin4/lib/python2.7"
>> Python Home:  ""
>> Fatal Python error: Py_Initialize: unable to load the file system codec
>>   File 
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/encodings/__init__.py",
>> line 123
>>     raise CodecRegistryError,\
>>                             ^
>> SyntaxError: invalid syntax
>>
>> Current thread 0x00007fffcbb433c0 (most recent call first):
>> The program has unexpectedly finished.
>> /Users/dpage/git/pgadmin4/build-pgAdmin4-Desktop_Qt_5_10_1_c
>> lang_64bit-Debug/pgAdmin4.app/Contents/MacOS/pgAdmin4 crashed.
>>
>> Starting /Users/dpage/git/pgadmin4/build-pgAdmin4-Desktop_Qt_5_10_1_c
>> lang_64bit-Debug/pgAdmin4.app/Contents/MacOS/pgAdmin4...
>> Python path:  "/Users/dpage/.virtualenvs/pga
>> dmin4/lib/python2.7/site-packages:/Users/dpage/.virtualenvs/
>> pgadmin4/lib/python2.7"
>> Python Home:  ""
>> Fatal Python error: Py_Initialize: unable to load the file system codec
>>   File 
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/encodings/__init__.py",
>> line 123
>>     raise CodecRegistryError,\
>>                             ^
>> SyntaxError: invalid syntax
>>
>> Current thread 0x00007fffcbb433c0 (most recent call first):
>> The program has unexpectedly finished.
>> /Users/dpage/git/pgadmin4/build-pgAdmin4-Desktop_Qt_5_10_1_c
>> lang_64bit-Debug/pgAdmin4.app/Contents/MacOS/pgAdmin4 crashed.
>>
>
>     Yes, it is reproducible. I have tried putting try catch around "
> *Py_Initialize*", but no success.
>

Hmm, yeah - seems this is the problem:

https://stackoverflow.com/questions/7688374/how-to-i-catch-and-handle-a-fatal-error-when-py-initialize-fails
https://bugs.python.org/issue30560

Which is.. unfortunate.

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

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

Reply via email to