Issue with neo4j driver


(Phanindhar Bodla) #1

Am facing issue with the neo4j-driver in python and on transaction.commit the execution is failing with the below error:

/usr/local/lib/python2.7/dist-packages/neo4j_driver-1.6.1-py2.7-linux-x86_64.egg/neo4j/v1/security.py:127: UserWarning: Bolt over TLS is only available in Python 2.7.9+ and Python 3.3+ so communications are not secure
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/IPython/core/interactiveshell.py", line 2878, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-4-65c6c43103bf>", line 1, in <module>
    SyllabusNode.objects.get(id=8521).set_root_exam_syllabus()
  File "/home/ubuntu/haygot/syllabus/syllabus_node.py", line 208, in set_root_exam_syllabus
    transaction.commit()
  File "/usr/local/lib/python2.7/dist-packages/neo4j_driver-1.6.1-py2.7-linux-x86_64.egg/neo4j/v1/api.py", line 626, in commit
    self.close()
  File "/usr/local/lib/python2.7/dist-packages/neo4j_driver-1.6.1-py2.7-linux-x86_64.egg/neo4j/v1/api.py", line 650, in close
    self.session.commit_transaction()
  File "/usr/local/lib/python2.7/dist-packages/neo4j_driver-1.6.1-py2.7-linux-x86_64.egg/neo4j/v1/api.py", line 437, in commit_transaction
    result.consume()
  File "/usr/local/lib/python2.7/dist-packages/neo4j_driver-1.6.1-py2.7-linux-x86_64.egg/neo4j/v1/api.py", line 754, in consume
    for _ in self:
  File "/usr/local/lib/python2.7/dist-packages/neo4j_driver-1.6.1-py2.7-linux-x86_64.egg/neo4j/v1/api.py", line 736, in records
    self._session.fetch()
  File "/usr/local/lib/python2.7/dist-packages/neo4j_driver-1.6.1-py2.7-linux-x86_64.egg/neo4j/v1/api.py", line 347, in fetch
    detail_count, _ = self._connection.fetch()
  File "/usr/local/lib/python2.7/dist-packages/neo4j_driver-1.6.1-py2.7-linux-x86_64.egg/neo4j/bolt/connection.py", line 290, in fetch
    return self._fetch()
  File "/usr/local/lib/python2.7/dist-packages/neo4j_driver-1.6.1-py2.7-linux-x86_64.egg/neo4j/bolt/connection.py", line 330, in _fetch
    response.on_failure(summary_metadata or {})
  File "/usr/local/lib/python2.7/dist-packages/neo4j_driver-1.6.1-py2.7-linux-x86_64.egg/neo4j/v1/result.py", line 70, in on_failure
    raise CypherError.hydrate(**metadata)
DatabaseError: Could not append transaction representation to log

following is the code that am using :

    def get_neo4j_connection():
        return GraphDatabase.driver(bolt_url, auth=(user,password))
    def set_root_exam_syllabus(self):
        initial_time = time.time()
        if self.exam and not self.end_acad_year:
            driver = graph_utils.get_neo4j_connection()
            with driver.session() as session:
                transaction = session.begin_transaction()
                #included write_only queries to transaction  ...
                transaction.commit()
        self.record_time(initial_time)

also config that i made looks ok, is there something that am missing here ?
Any clue on why this is failing ?

Thanks In Advance,
Phanindhar


(Mark Needham) #2

Can't see anything that looks amiss...would you be able to share a full script that I could try to reproduce the problem?

Do you see any error messages in the Neo4j logs? Have a look at the end of neo4j.log and debug.log


(Phanindhar Bodla) #3

This got resolved. Am not sure of specific reason on how. But on server restart this got resolved.