Re: psycopg2 conn.poll() hangs when used with sshtunnel - Mailing list psycopg

From Daniele Varrazzo
Subject Re: psycopg2 conn.poll() hangs when used with sshtunnel
Date
Msg-id CA+mi_8boc=n4jZnX+20-UYwZYd4wse+wrnZWf6zG-1nMhDLmnA@mail.gmail.com
Whole thread Raw
In response to Re: psycopg2 conn.poll() hangs when used with sshtunnel  (Daniele Varrazzo <daniele.varrazzo@gmail.com>)
Responses Re: psycopg2 conn.poll() hangs when used with sshtunnel  (Akshay Joshi <akshay.joshi@enterprisedb.com>)
List psycopg
It seems to me that the problem is in pqpath.c pq_get_last_result() function. The loop assumes PQgetResult won't block, which seems always the case with the direct connection, but PQisBusy() actually returns 1 connecting through the tunnel.

So at a first read, the simplification given by pq_get_last_result() is broken: the results should be returned one by one in the normal loop going through PQisBusy(), PQconsumeInput(), and the polling machinery. It seems a chunky refactoring but as it is now I don't like pq_get_last_result() anymore :(

-- Daniele 


On Tue, Oct 30, 2018 at 12:52 PM Daniele Varrazzo <daniele.varrazzo@gmail.com> wrote:
Taking a look. Thank you for the test.

On Tue, Oct 30, 2018 at 12:36 PM Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:
Hi Team 

I have created one sample application to replicate the issue. Attached is the sample application, please read "README.txt" file to proceed further.
Can someone please suggest why poll() function hangs when run wrong query with sshtunnel v0.1.4.

On Mon, Oct 8, 2018 at 12:19 PM Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:
Hi Team 

As one issue(https://github.com/psycopg/psycopg2/issues/781) has already been created for conn.poll() function hangs when executes COPY command in async mode. Similarly conn.poll() functions hangs when we run wrong query in async mode using sshtunnel v0.1.3.

Can someone please suggest what went wrong when used sshtunnel, or the pointers/reason where poll() method hangs.    

On Fri, Sep 28, 2018 at 5:43 PM Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:

Hello

I am using psycopg2 2.7.4 to connect to the PostgreSQL database server using asynchronoussupport. It is working absolutely fine. I have used sshtunnel v0.1.3 in pgAdmin4. When I connect the PostgreSQL database server using ssh tunnel and run the valid/correct query it works fine, but when I run any wrong query(invalid column of table) my application gets hang on conn.poll() function.

Please refer the code how we use conn.poll() with timeouts https://git.postgresql.org/gitweb/?p=pgadmin4.git;a=blob;f=web/pgadmin/utils/driver/psycopg2/connection.py;h=4f11c12b30882209c308cb3558e67189c97ea31e;hb=15fe26a7106610b710f3de5b604cd038302c926a#l1363

Can anyone please provide some pointers, suggestions?


--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246


--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246


--
Akshay Joshi
Sr. Software Architect


Phone: +91 20-3058-9517
Mobile: +91 976-788-8246

psycopg by date:

Previous
From: Daniele Varrazzo
Date:
Subject: Re: psycopg2 conn.poll() hangs when used with sshtunnel
Next
From: Akshay Joshi
Date:
Subject: Re: psycopg2 conn.poll() hangs when used with sshtunnel