There is no py2neo 1.7. On 18 September 2014 01:27, Aru Sahni <arusa...@gmail.com> wrote:
> I'm seeing similar errors w/ Neo4j 2.1.4, py2neo 1.7 and Ubuntu packages. > No issues with the homebrew version. > > ~A > > On Mon, Aug 4, 2014 at 11:41 AM, Alan Robertson <al...@unix.sh> wrote: > >> Julian: >> >> Have you had a chance to look at this bug yet? Any prognosis on when? >> >> >> On 07/30/2014 08:02 PM, Alan Robertson wrote: >> >> OK. This is an RPM problem *only*. It works fine if I install 2.1.3 >> from tar ball - but not from the RPM. I'll update the github issue. >> >> >> On 07/30/2014 07:35 PM, Alan Robertson wrote: >> >> Our project bug report for this is here: https://trello.com/c/B41LtH8K >> The github issue is: https://github.com/neo4j/neo4j/issues/2771. You >> can reproduce this in a clean-room environment by using this Dockerfile: >> http://hg.linux-ha.org/assimilation/file/tip/docker/testNeo/Dockerfile >> >> the DEB package of 2.1.0 works fine on all versions of Ubuntu, but the >> RPM of 2.1.3 fails under CentOS6. Slightly different versions of Python, >> same version of Py2neo. Installing 2.0.1 from tar ball on CentOS6 also >> works fine. >> >> This looks more like a Neo4j problem than a py2neo problem... >> >> Also: Why is the .DEB unstable package so far behind the .RPM package? >> >> >> >> More details below: >> >> This combination doesn't work with CentOS6 under Docker: >> >> Python 2.7.5 >> USING PYTHON VERSION 2.7.5 (default, Oct 29 2013, 22:46:38) >> [GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] >> USING NEO4J VERSION (2, 1, 3, u'') >> USING py2neo VERSION 1.6.4 >> >> 3 minutes ago - Edit >> <https://trello.com/c/B41LtH8K/8-assimilation-py2neo-are-incompatible-with-current-neo4j#> >> - Delete >> <https://trello.com/c/B41LtH8K/8-assimilation-py2neo-are-incompatible-with-current-neo4j#> >> [image: Alan Robertson (ossalanr)] >> Alan Robertson <https://trello.com/4ff61affd6fb4b394c9788e8> >> >> This combination of versions works fine with Ubuntu under Docker: USING >> PYTHON VERSION 2.7.6 (default, Mar 22 2014, 22:59:56) >> [GCC 4.8.2] >> USING NEO4J VERSION (2, 1, 0, u'RC2') >> USING py2neo VERSION 1.6.4 >> >> >> >> >> >> On 07/19/2014 03:37 PM, Alan Robertson wrote: >> >> Since the result said "cannot find node" the question is: Was that a >> correct result? So, I used neo4j-shell to look at the database after the >> failure - and it looked like the updates were not done. There is no node >> zero (as indicated by the REST return), nor (for good measure) a node 1 or >> 2. So the result was correct for the current database. The database was >> wrong, but that result was correct (given the incorrect database). >> >> We appear to have gotten a successful return from the REST update >> transaction, but in spite of that, the node I created wasn't there. >> >> I will look further into what we got back from the REST transaction -- >> but right now, *this is looking like a Neo4j 2.1 bug*. I use Nigel's >> latest version quite successfully with 2.0.1. I know you guys are at >> OSCON. If you read this and can tell me what you want to see to diagnose >> it, that would be awesome. >> >> >> On 07/19/2014 12:09 PM, Alan Robertson wrote: >> >> A little more detail about the failure mode: >> I added a single node to the database, related it to itself three >> ways, added it to the index. >> committed the transaction - returned results from the commit looked >> correct >> Tried a get_properties() on the object returned from the transaction >> commit >> Just before the get_properties() failed, I printed that object >> (Nigel's Neo4j node object), and got this result: >> {"a":52,"c":3.14159,"b":2,"name":"Drone121"} >> [I also printed the node _id value -- which was 0] >> >> I updated the test in source control to add debug statements, and run the >> test with debug on. If you run the Dockerfile, or just wget using the URLs >> I supplied before, you'll have the newest version of the test. Keep in >> mind that docker caches results, so if you've cached the results of the >> Dockerfile, you'll have to tweak it somehow (change the echo or something) >> to make sure it grabs the latest source. >> >> As a reminder, this works just fine with 2.0.x (where x >= 1) versions of >> Neo4j. It only fails with 2.1.x versions of Neo4j. >> >> The output with the current debug turned on looks like this: >> >> Python 2.7.5 >> ('COMMITTING THIS THING:', "{\n\tdb: Resource(u' >> http://localhost:7474/db/data/'),\n\tclasses: {<class '__main__.Drone'>: >> True},\n\tuniqueindexmap: {'Drone': True},\n\tclasskeymap: {'Drone': >> {'index': 'Drone', 'vattr': 'name', 'key': 'Drone'}}\n\tbatchindex: >> None,\n\t clients: \n[<__main__.Drone object at 0x27211d0>,\n\t >> newrels: \n[{'to': <__main__.Drone object at 0x27211d0>, 'props': None, >> 'from': <__main__.Drone object at 0x27211d0>, 'type': 'ISA'}, {'to': >> <__main__.Drone object at 0x27211d0>, 'props': None, 'from': >> <__main__.Drone object at 0x27211d0>, 'type': 'WASA'}, {'to': >> <__main__.Drone object at 0x27211d0>, 'props': None, 'from': >> <__main__.Drone object at 0x27211d0>, 'type': 'WILLBEA'},\n\t deletions: >> \n\n\tweaknoderefs: {}\n\tstats: {'totaltime': datetime.timedelta(0), >> 'index': 0, 'nodecreate': 0, 'separate': 0, 'relate': 0, 'lastcommit': >> None, 'nodedelete': 0, 'attrupdate': 0}\n\tbatch: None\n}") >> Performing batch.create(0: >> ({"a":52,"c":3.14159,"b":2,"name":"Drone121"})) - for new node >> Performing batch.create(0-[:ISA]->0): node relationships >> ADDING rel 0-[:ISA]->0 >> Performing batch.create(0-[:WASA]->0): node relationships >> ADDING rel 0-[:WASA]->0 >> Performing batch.create(0-[:WILLBEA]->0): node relationships >> ADDING rel 0-[:WILLBEA]->0 >> add_to_index_or_fail: node 0; index Index(Node, u' >> http://localhost:7474/db/data/index/node/Drone')("Drone","Drone121") >> ('Batch Updates constructed: Committing THIS THING:', "{\n\tdb: >> Resource(u'http://localhost:7474/db/data/'),\n\tclasses: {<class >> '__main__.Drone'>: True},\n\tuniqueindexmap: {'Drone': >> True},\n\tclasskeymap: {'Drone': {'index': 'Drone', 'vattr': 'name', 'key': >> 'Drone'}}\n\tbatchindex: 4,\n\t clients: \n[<__main__.Drone object at >> 0x27211d0>,\n\t newrels: \n[{'from': <__main__.Drone object at >> 0x27211d0>, 'seqno': 1, 'abstract': rel(0, 'ISA', 0), 'to': <__main__.Drone >> object at 0x27211d0>, 'props': None, 'type': 'ISA'}, {'from': >> <__main__.Drone object at 0x27211d0>, 'seqno': 2, 'abstract': rel(0, >> 'WASA', 0), 'to': <__main__.Drone object at 0x27211d0>, 'props': None, >> 'type': 'WASA'}, {'from': <__main__.Drone object at 0x27211d0>, 'seqno': 3, >> 'abstract': rel(0, 'WILLBEA', 0), 'to': <__main__.Drone object at >> 0x27211d0>, 'props': None, 'type': 'WILLBEA'},\n\t deletions: >> \n\n\tweaknoderefs: {}\n\tstats: {'totaltime': datetime.timedelta(0), >> 'index': 1, 'nodecreate': 1, 'separate': 0, 'relate': 3, 'lastcommit': >> None, 'nodedelete': 0, 'attrupdate': 0}\n\tbatch: <py2neo.neo4j.WriteBatch >> object at 0x2721450>\n}") >> SUBMITRESULT: (0 {"a":52,"c":3.14159,"b":2,"name":"Drone121"}) >> LOOKING at new node with batch index 0 >> NEW NODE looks like (0 {"a":52,"c":3.14159,"b":2,"name":"Drone121"}) >> SUBJ (our copy) looks like <__main__.Drone object at 0x27211d0> >> Traceback (most recent call last): >> File "store.py", line 1099, in <module> >> testme() >> File "store.py", line 1014, in testme >> store.commit() # The updates have been captured... >> File "store.py", line 923, in commit >> % (newnode._id, str(newnode.get_properties()))) >> File >> "/opt/rh/python27/root/usr/lib/python2.7/site-packages/py2neo/neo4j.py", >> line 1398, in get_properties >> self._properties = assembled(self._properties_resource._get()) or {} >> File >> "/opt/rh/python27/root/usr/lib/python2.7/site-packages/py2neo/neo4j.py", >> line 367, in _get >> raise ClientError(e) >> py2neo.exceptions.ClientError: Cannot find node with id [0] in database. >> >> >> >> On 07/17/2014 03:47 PM, Nigel Small wrote: >> >> Cool, thanks. I should get a chance to look into it over the next >> couple of weeks. >> >> Cheers >> Nigel >> >> >> On 17 July 2014 22:41, Alan Robertson <al...@unix.sh> wrote: >> >>> And for good measure, if you use the Dockerfile quoted below (and >>> attached), this is a clean-room reproduction of the problem in CentOS6 >>> (with Python 2.7). >>> >>> ############################################### >>> FROM centos:latest >>> # Would prefer headless, but not available in CentOS6 >>> RUN yum -y install wget java-1.7.0-openjdk scl-utils redhat-lsb-core >>> RUN wget -qO- http://dev.centos.org/centos/6/SCL/scl.repo >> >>> /etc/yum.repos.d/centos.scl.repo >>> RUN yum -y install python27-python python27-python-setuptools >>> ### Neo4j RPM >>> RUN wget http://debian.neo4j.org/neotechnology.gpg.key -O >>> /tmp/neo4j.key && rpm --import /tmp/neo4j.key && rm -f /tmp/neo4j.key >>> RUN echo '[neo4j]' > /etc/yum.repos.d/neo4j.repo && echo 'name=Neo4j Yum >>> Repo' >> /etc/yum.repos.d/neo4j.repo && echo 'baseurl= >>> http://yum.neo4j.org' >> /etc/yum.repos.d/neo4j.repo && echo >>> 'enabled=1' >> /etc/yum.repos.d/neo4j.repo && echo 'gpgcheck=1' >> >>> /etc/yum.repos.d/neo4j.repo && yum -y install neo4j >>> RUN scl enable python27 'easy_install pip' >>> RUN scl enable python27 'pip install py2neo' >>> RUN echo "Pulling Assimilation project source" >>> RUN mkdir /tmp/neotest && cd /tmp/neotest && wget -q >>> http://hg.linux-ha.org/assimilation/raw-file/tip/cma/store.py && wget >>> -q http://hg.linux-ha.org/assimilation/raw-file/tip/cma/assimevent.py >>> RUN NEO=neo4j; cd /tmp/neotest && /etc/init.d/${NEO} start && sleep 15 >>> && scl enable python27 '/usr/bin/env python --version; python store.py' >>> ################################################## >>> >>> Do this: >>> make a directory >>> cd into the directory you just made >>> copy the above text into a file in that directory - named Dockerfile >>> docker.io build . >>> >>> This is a completely clean-room demonstration of the problem in CentOS6. >>> >>> >>> >>> On 07/17/2014 08:16 AM, Alan Robertson wrote: >>> >>> Hi Nigel, >>> >>> Many thanks for your quick reply! >>> >>> I can reproduce it with what I think is a smallish environment. >>> >>> If you download my code from here: >>> http://hg.linux-ha.org/assimilation/archive/tip.tar.gz >>> >>> Untar it, and go into the cma directory. Run the python script >>> *store.py* >>> >>> It will fail. Each time you run it, it will give a higher node in the >>> graph that it cannot find. >>> >>> If it doesn't fail, then we can try the docker thing to reproduce the >>> environment more exactly. >>> >>> To try the docker version, you just need to install docker and say >>> "docker build ." (or docker.io) with my Dockerfile in your directory. >>> It will do the rest - grab the OS, libraries, things we need, build my code >>> and run my tests. It just takes longer. For this environment, it helps to >>> understand docker when you want to debug it. >>> >>> It's pretty awesome. But hopefully you won't need to do that. >>> >>> I also have a more complex set of tests that only require python that >>> will likely fail if there's a Neo4j/Py2neo issue that affects me. Maybe I >>> should create a separate test environment for that - that you could easily >>> run. >>> >>> >>> >>> >>> On 07/15/2014 04:42 PM, Nigel Small wrote: >>> >>> Familiar with the concept but have never actually used it. >>> >>> >>> On 15 July 2014 23:41, Alan Robertson <al...@unix.sh> wrote: >>> >>>> Yes. There are lots of ways to do that. After all, it's all open >>>> source :-D. >>>> >>>> Are you familiar with docker? >>>> >>>> >>>> >>>> On 07/15/2014 04:19 PM, Nigel Small wrote: >>>> >>>> Can you share some code that I can run to recreate the issue? >>>> >>>> Cheers >>>> Nigel >>>> >>>> >>>> On 15 July 2014 23:09, Alan Robertson <al...@unix.sh> wrote: >>>> >>>>> Neo4j package: neo4j-2.1.2-1.noarch >>>>> >>>>> # pip list | grep py2neo >>>>> py2neo (1.6.4) >>>>> >>>>> The context is this: >>>>> I just did a commit of a transaction which added nodes to the >>>>> database, and am now trying to retrieve these same nodes by the ids for >>>>> them which were returned by the transaction. >>>>> >>>>> >>>>> tests.cma_test TestCMABasic.test_several_startups ... error: >>>>> tests.cma_test TestCMABasic.test_several_startups >>>>> Traceback (most recent call last): >>>>> File "./tests/cma_test.py", line 506, in test_several_startups >>>>> CMAinit(io, cleanoutdb=True, debug=DEBUG) >>>>> File "./cmainit.py", line 75, in __init__ >>>>> CMAdb.store.commit() >>>>> File "./store.py", line 912, in commit >>>>> for attr in newnode.get_properties(): >>>>> File >>>>> "/opt/rh/python27/root/usr/lib64/python2.7/site-packages/py2neo/neo4j.py", >>>>> line 1398, in get_properties >>>>> self._properties = assembled(self._properties_resource._get()) or >>>>> {} >>>>> File >>>>> "/opt/rh/python27/root/usr/lib64/python2.7/site-packages/py2neo/neo4j.py", >>>>> line 367, in _get >>>>> raise ClientError(e) >>>>> ClientError: Cannot find node with id [0] in database. >>>>> >>>>> ERROR in 2.49s >>>>> tests.cma_test TestCMABasic.test_startup ... error: tests.cma_test >>>>> TestCMABasic.test_startup >>>>> Traceback (most recent call last): >>>>> File "./tests/cma_test.py", line 433, in test_startup >>>>> CMAinit(io, cleanoutdb=True, debug=DEBUG) >>>>> File "./cmainit.py", line 75, in __init__ >>>>> CMAdb.store.commit() >>>>> File "./store.py", line 912, in commit >>>>> for attr in newnode.get_properties(): >>>>> File >>>>> "/opt/rh/python27/root/usr/lib64/python2.7/site-packages/py2neo/neo4j.py", >>>>> line 1398, in get_properties >>>>> self._properties = assembled(self._properties_resource._get()) or >>>>> {} >>>>> File >>>>> "/opt/rh/python27/root/usr/lib64/python2.7/site-packages/py2neo/neo4j.py", >>>>> line 367, in _get >>>>> raise ClientError(e) >>>>> ClientError: Cannot find node with id [1] in database. >>>>> >>>>> -- >>>>> Alan Robertson <al...@unix.sh> <al...@unix.sh> - @OSSAlanR >>>>> >>>>> "Openness is the foundation and preservative of friendship... Let me >>>>> claim from you at all times your undisguised opinions." - William >>>>> Wilberforce >>>>> >>>>> >>>> >>>> >>>> -- >>>> Alan Robertson <al...@unix.sh> <al...@unix.sh> - @OSSAlanR >>>> >>>> "Openness is the foundation and preservative of friendship... Let me >>>> claim from you at all times your undisguised opinions." - William >>>> Wilberforce >>>> >>>> >>> >>> >>> -- >>> Alan Robertson <al...@unix.sh> <al...@unix.sh> - @OSSAlanR >>> >>> "Openness is the foundation and preservative of friendship... Let me claim >>> from you at all times your undisguised opinions." - William Wilberforce >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Neo4j" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to neo4j+unsubscr...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >>> >>> >>> >>> -- >>> Alan Robertson <al...@unix.sh> <al...@unix.sh> - @OSSAlanR >>> >>> "Openness is the foundation and preservative of friendship... Let me claim >>> from you at all times your undisguised opinions." - William Wilberforce >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Neo4j" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to neo4j+unsubscr...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Neo4j" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to neo4j+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> >> >> >> -- >> Alan Robertson <al...@unix.sh> <al...@unix.sh> - @OSSAlanR >> >> "Openness is the foundation and preservative of friendship... Let me claim >> from you at all times your undisguised opinions." - William Wilberforce >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Neo4j" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to neo4j+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> >> >> >> -- >> Alan Robertson <al...@unix.sh> <al...@unix.sh> - @OSSAlanR >> >> "Openness is the foundation and preservative of friendship... Let me claim >> from you at all times your undisguised opinions." - William Wilberforce >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Neo4j" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to neo4j+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> >> >> >> -- >> Alan Robertson <al...@unix.sh> <al...@unix.sh> - @OSSAlanR >> >> "Openness is the foundation and preservative of friendship... Let me claim >> from you at all times your undisguised opinions." - William Wilberforce >> >> >> >> -- >> Alan Robertson <al...@unix.sh> <al...@unix.sh> - @OSSAlanR >> >> "Openness is the foundation and preservative of friendship... Let me claim >> from you at all times your undisguised opinions." - William Wilberforce >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Neo4j" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to neo4j+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> >> >> >> -- >> Alan Robertson <al...@unix.sh> <al...@unix.sh> - @OSSAlanR >> >> "Openness is the foundation and preservative of friendship... Let me claim >> from you at all times your undisguised opinions." - William Wilberforce >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Neo4j" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to neo4j+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "Neo4j" group. To unsubscribe from this group and stop receiving emails from it, send an email to neo4j+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.