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 <[email protected]
<mailto:[email protected]>> 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 <[email protected]
<mailto:[email protected]>> 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 <[email protected]> <mailto:[email protected]> -
@OSSAlanR
"Openness is the foundation and preservative of
friendship... Let me claim from you at all times your
undisguised opinions." - William Wilberforce
--
Alan Robertson<[email protected]> <mailto:[email protected]> - @OSSAlanR
"Openness is the foundation and preservative of friendship... Let me claim from
you at all times your undisguised opinions." - William Wilberforce
--
Alan Robertson<[email protected]> - @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 [email protected]
<mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.
--
Alan Robertson <[email protected]> - @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 [email protected].
For more options, visit https://groups.google.com/d/optout.
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'