Re: Trying to solve a SocketError [Errno 13] Permission with PL/Python in PostgreSQL 9.3

From: Marcos Ortiz <mlortiz(at)uci(dot)cu>
To: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>, pgsql-general(at)postgresql(dot)org
Subject: Re: Trying to solve a SocketError [Errno 13] Permission with PL/Python in PostgreSQL 9.3
Date: 2015-05-23 22:51:04
Message-ID: 55610458.2090103@uci.cu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 23/05/15 18:40, Adrian Klaver wrote:
> On 05/23/2015 03:27 PM, Marcos Ortiz wrote:
>> Regards to all the list.
>> First all the info about the system:
>>
>> O.S: CentOS 7 64 bits
>> PostgreSQL version:
>>
>> SELECT version();
>> version
>> --------------------------------------------------------------------------------------------------------------
>>
>>
>> PostgreSQL 9.2.7 on x86_64-redhat-linux-gnu, compiled by gcc (GCC)
>> 4.8.2 20140120 (Red Hat 4.8.2-16), 64-bit
>> (1 row)
>>
>> Neo4j version: 2.1.M
>> Py2neo version: 2.0.8
>> Python version:
>> python
>> Python 2.7.5 (default, Jun 17 2014, 18:11:42)
>> [GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux2
>>
>> Now the problem:
>>
>> We are working here to integrate PostgreSQL with Neo4j through PL/Python
>> using the py2neo module for it, and when we want to send sentences to
>> Neo4j using port 7474, the executed code raises a SocketError [Errno 13]
>> Permission denied.
>
> Well first in the code below, if I am following correctly, the socket
> is 37474.
Yes, Adrian. Sorry for that, the correct port is 7474. I just was
testing with higher ports to
see if the error persisted.
>
>
>>
>> I tested the same code in a normal python script outside of PostgreSQL,
>> and it works well, but the problem is when I use the code inside
>> PostgreSQL with PL/Python.
>
> Second the plpythonu code is running as the postgres user, so does
> that user have permissions on the socket.
Did you mean the socket created by Neo4j's server right?
For that reason, I created a group in the system for this named
supervisor, where neo4j/postgres users are members.
So, if I find the socket file for Neo4j-server, changing permissions
could solve the problem. Right?
Neo4j is a Java-based platform.
>
>> This is the code of a simple function to search a node in the Neo4j
>> graph:
>>
>> CREATE OR REPLACE FUNCTION search_professor_node(nombre_prof text)
>> RETURNS text AS
>> $BODY$
>> from py2neo import Graph
>> from py2neo.cypher import CypherTransaction
>>
>> graph = Graph("http://neo4j:neo4j(at)10(dot)8(dot)45(dot)136:37474/db/data")
>> tx = graph.cypher.begin()
>> statement = "MATCH (pf:Professor) WHERE pf.nombre = {name} RETURN pf;" ,
>> tx.append(statement, parameters={'name': nombre_prof})
>> professor= tx.commit()
>> $BODY$
>> LANGUAGE plpythonu VOLATILE
>> COST 100;
>>
>> and it can be used:
>> SELECT search_professor_node('Max');
>>
>> The completed error is:
>>
>> ********** Error **********
>>
>> ERROR: py2neo.packages.httpstream.http.SocketError: Permission denied
>> SQL state: XX000
>> Context: Traceback (most recent call last):
>> PL/Python function "search_professor_node", line 6, in <module>
>> tx = graph.cypher.begin()
>> PL/Python function "search_professor_node", line 666, in cypher
>> PL/Python function "search_professor_node", line 212, in metadata
>> PL/Python function "search_professor_node", line 257, in get
>> PL/Python function "search_professor_node", line 965, in get
>> PL/Python function "search_professor_node", line 942, in
>> __get_or_head
>> PL/Python function "search_professor_node", line 432, in submit
>> PL/Python function "search_professor_node", line 361, in submit
>> PL/Python function "search_professor_node"
>>
>> Thanks a lot for your time, and I hope to find a suitable solution
>> for it.
>>
>>
>
>

--
Marcos Ortiz <http://about.me/marcosortiz>, Sr. Product Manager (Data
Infrastructure) at UCI
@marcosluis2186 <http://twitter.com/marcosluis2186>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Adrian Klaver 2015-05-23 23:09:56 Re: Trying to solve a SocketError [Errno 13] Permission with PL/Python in PostgreSQL 9.3
Previous Message Marcos Ortiz 2015-05-23 22:46:37 Re: Trying to solve a SocketError [Errno 13] Permission with PL/Python in PostgreSQL 9.3