<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.comp.web.zope.zodb">
    <title>gmane.comp.web.zope.zodb</title>
    <link>http://blog.gmane.org/gmane.comp.web.zope.zodb</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.web.zope.zodb/12166"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.web.zope.zodb/12164"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.web.zope.zodb/12161"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.web.zope.zodb/12157"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.web.zope.zodb/12154"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.web.zope.zodb/12151"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.web.zope.zodb/12147"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.web.zope.zodb/12137"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.web.zope.zodb/12130"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.web.zope.zodb/12129"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.web.zope.zodb/12123"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.web.zope.zodb/12110"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.web.zope.zodb/12105"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.web.zope.zodb/12101"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.web.zope.zodb/12086"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.web.zope.zodb/12083"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.web.zope.zodb/12071"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.web.zope.zodb/12064"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.web.zope.zodb/12062"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.web.zope.zodb/12058"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://comments.gmane.org/gmane.comp.web.zope.zodb/12166">
    <title>RelStorage breaks history tab</title>
    <link>http://comments.gmane.org/gmane.comp.web.zope.zodb/12166</link>
    <description>&lt;pre&gt;Hi All,

I've been chatting with Shane about this off-list but wanted to see if 
anyone else has experience of this and has found a solution.

So, the problem is that, with a Zope 2 app server, any revisions made to 
an object (say, a Page Template) don't show in the history tab of that 
object *until* the app server is restarted.

I've verified this on both MySQL and Postgres with trunk of RelStorage 
as well as 1.5.2 and 1.4.2. It appears to be some kind of cursor re-use 
/ relational database transaction isolation bug given that the following 
hack fixes the problem:

--- a/relstorage/storage.py
+++ b/relstorage/storage.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1025,7 +1025,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class RelStorage(
          self._lock_acquire()
          try:
              self._before_load()
-            cursor = self._load_cursor
+            conn, cursor = self._adapter.connmanager.open()
              oid_int = u64(oid)
              try:
                  rows = self._adapter.dbiter.iter_object_history(
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1053,6 +1053,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class RelStorage(
                          break
              return res
          finally:
+            self._adapter.connmanager.close(conn, cursor)
              self._lock_release()

It seems a little heavyweight to have to open a whole new connection 
each time someone views a history tab, though :-/

A couple of surprising things:

- ZODB.tests.HistoryStorage:HistoryStorage.checkSimpleHistory passes. 
I'd expect this to fail, so I wonder what it's doing differently?

- The read connection is obviously getting the transaction's data, 
otherwise the wrong version of the object would be rendered, right?

Any ideas very gratefully received...

cheers,

Chris

&lt;/pre&gt;</description>
    <dc:creator>Chris Withers</dc:creator>
    <dc:date>2012-05-22T05:37:20</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.web.zope.zodb/12164">
    <title>A little help in configuring a better solution for ZEOdeployment</title>
    <link>http://comments.gmane.org/gmane.comp.web.zope.zodb/12164</link>
    <description>&lt;pre&gt;Good day comunity.

My project is a ZOPE3/BlueBream project, that runs mainly of ZODB using
ZEO. I use wsgi to get multiple instances(4) of my project and connect to
ZEO Server from them.
The database is around 3 GB in unpacked state and around 800 MB in packed.

I use 4 processes with 7 threads each for serving data

WSGIDaemonProcess doba.ua user=www group=www processes=4 threads=7
maximum-requests=2000000

I have little space on /tmp partition, so the cache of ZEO is only 40 MB

    pool-size 30
  &amp;lt;zeoclient&amp;gt;
    server localhost:8200
    storage 1
    # ZEO client cache, in bytes
    cache-size 40MB
    # Uncomment to have a persistent disk cache
    #client zeo1
  &amp;lt;/zeoclient&amp;gt;

The server has those specs:
8GB ram. 8 CPU 3.2 Ghz.  Raid-2 in a mirror mode.

The load of instances:
1 GB per instance - 8 GB total. Other apps consum up to 1.5 GB. So there is
2.5 GB in inactive mode all the time.

The problem, that I have:
The server has a Raid-2 in a mirror mode, so I only have 1 hard drive,
which contain all my data. After a while of serving data the load gets
highter and this hard drive just starts having 100% of disk usage. Then
everything starts to fall. I have problems accessing the server and even
restarting the project.
I can't find any ther explanation, that ZEO does not handle the load well
enough.

Does someone see any way to ease the load?
_______________________________________________
For more information about ZODB, see http://zodb.org/

ZODB-Dev mailing list  -  ZODB-Dev&amp;lt; at &amp;gt;zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev
&lt;/pre&gt;</description>
    <dc:creator>Войнаровський Тарас</dc:creator>
    <dc:date>2012-05-18T13:53:00</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.web.zope.zodb/12161">
    <title>git clone of relstorage</title>
    <link>http://comments.gmane.org/gmane.comp.web.zope.zodb/12161</link>
    <description>&lt;pre&gt;Hi All,

In case anyone else is interested, I've git svn clone'd 
svn://svn.zope.org/repos/main/relstorage and pushed the result up here:

https://github.com/cjw296/relstorage

It's only a master branch, sine git svn clone does svn branches and 
separate remotes by default and I didn't want to do my manual hack-fix 
steps since Shane likely wants to stay with svn:

cp -Rf .git/refs/remotes/tags/* .git/refs/tags/
rm -rf .git/refs/remotes/tags
cp -Rf .git/refs/remotes/* .git/refs/heads/
rm -rf .git/refs/remotes

cheers,

Chris

&lt;/pre&gt;</description>
    <dc:creator>Chris Withers</dc:creator>
    <dc:date>2012-05-15T12:30:42</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.web.zope.zodb/12157">
    <title>Relstorage and MSQL</title>
    <link>http://comments.gmane.org/gmane.comp.web.zope.zodb/12157</link>
    <description>&lt;pre&gt;Hi,

Previous threads on this subject didn't seem to go anywhere.

I know it's not all about money but if we were to sponsor development  
of microsoft sql server support for relstorage, is there someone who  
knows how and has an estimated cost and available time?


---
Dylan Jay
Technical Solutions Manager
PretaWeb: Multisite Performance Support
P: +612 80819071 | M: +61421477460 | twitter.com/djay75 | linkedin.com/ 
in/djay75

_______________________________________________
For more information about ZODB, see http://zodb.org/

ZODB-Dev mailing list  -  ZODB-Dev&amp;lt; at &amp;gt;zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev

&lt;/pre&gt;</description>
    <dc:creator>Dylan Jay</dc:creator>
    <dc:date>2012-05-09T00:34:22</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.web.zope.zodb/12154">
    <title>all webserver threads blocking on db.open()</title>
    <link>http://comments.gmane.org/gmane.comp.web.zope.zodb/12154</link>
    <description>&lt;pre&gt;Hello all,

I'm using Repoze.BFG, with paster to launch the webserver. This is a
similar issue to the one I emailed about before titled
"server stops handling requests - nowhere near 100% CPU or Memory
used"

The situation is the same. I used z3c.deadlockdebugger , and what
I notice is that, when the server is blocked, there are about 100
threads running (as opposed to 15 or so when the server has
just started), and all their stack traces look like this:

Thread 140269004887808:
  File "/usr/lib/python2.6/threading.py", line 504, in __bootstrap
    self.__bootstrap_inner()
  File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.6/threading.py", line 484, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/home/tsa/env/lib/python2.6/site-packages/paste/httpserver.py",
line 878, in worker_thread_callback
    runnable()
  File "/home/tsa/env/lib/python2.6/site-packages/paste/httpserver.py",
line 1052, in &amp;lt;lambda&amp;gt;
    lambda: self.process_request_in_thread(request, client_address))
  File "/home/tsa/env/lib/python2.6/site-packages/paste/httpserver.py",
line 1068, in process_request_in_thread
    self.finish_request(request, client_address)
  File "/usr/lib/python2.6/SocketServer.py", line 322, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/lib/python2.6/SocketServer.py", line 617, in __init__
    self.handle()
  File "/home/tsa/env/lib/python2.6/site-packages/paste/httpserver.py",
line 442, in handle
    BaseHTTPRequestHandler.handle(self)
  File "/usr/lib/python2.6/BaseHTTPServer.py", line 329, in handle
    self.handle_one_request()
  File "/home/tsa/env/lib/python2.6/site-packages/paste/httpserver.py",
line 437, in handle_one_request
    self.wsgi_execute()
  File "/home/tsa/env/lib/python2.6/site-packages/paste/httpserver.py",
line 287, in wsgi_execute
    self.wsgi_start_response)
  File
"/home/tsa/env/lib/python2.6/site-packages/repoze/zodbconn/connector.py",
line 18, in __call__
    conn = self.db.open()
  File "/home/tsa/env/lib/python2.6/site-packages/ZODB/DB.py", line 729, in
open
    self._a()
  File "/usr/lib/python2.6/threading.py", line 123, in acquire
    rc = self.__block.acquire(blocking)

The server gets to a blocked state every 24 hours or so. Simply restarting
the webserver works fine; however, i'd like to know what the problem is so
restarting won't be necessary, and to prevent it from getting worse. Any
ideas/
suggestions?

Thanks,
- Claudiu
_______________________________________________
For more information about ZODB, see http://zodb.org/

ZODB-Dev mailing list  -  ZODB-Dev&amp;lt; at &amp;gt;zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev
&lt;/pre&gt;</description>
    <dc:creator>Claudiu Saftoiu</dc:creator>
    <dc:date>2012-05-07T15:38:21</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.web.zope.zodb/12151">
    <title>how to get root obj from a new transaction?</title>
    <link>http://comments.gmane.org/gmane.comp.web.zope.zodb/12151</link>
    <description>&lt;pre&gt;Hey all,

I'm using a thread to do some server-side work. The thread will be asked by
different
requests to do the same thing at the same time, so I want the thread to do
all the work
once and return the data to the requests. The problem is that the requests
each have
their own transaction and the thread essentially has none.

I can communicate between the two only using identifiers - not persistent
objects - that
way the thread can process data in a different transaction than the
requests yet still
return a meaningful reply. However, the thread has to start a new
transaction each
time it processes something - which I know how to do:

    while True:
        #wait until asked to do something
        import transaction
        transaction.begin()

However, the thread needs access to the root object in order to turn the
identifiers
gotten from the requests into persistent objects... how would I go about
accessing
the root object in such a circumstance?

Thanks,
- Claudiu
_______________________________________________
For more information about ZODB, see http://zodb.org/

ZODB-Dev mailing list  -  ZODB-Dev&amp;lt; at &amp;gt;zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev
&lt;/pre&gt;</description>
    <dc:creator>Claudiu Saftoiu</dc:creator>
    <dc:date>2012-05-02T16:49:32</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.web.zope.zodb/12147">
    <title>ValueError: Non-zero version length. Versions aren'tsupported.</title>
    <link>http://comments.gmane.org/gmane.comp.web.zope.zodb/12147</link>
    <description>&lt;pre&gt;-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I am receiving the following weird error with a fresh Plone 4.2b2
sandbox during development tests. At least the "Versions" error message
confuses me since the installation including ZODB Data.fs file
is usually fresh.

Andreas


 File
"/home/ajung/.buildout/eggs/Chameleon-2.8.4-py2.6.egg/chameleon/template.py",
line 190, in render
    raise_with_traceback(exc, tb)
  File
"/home/ajung/.buildout/eggs/Chameleon-2.8.4-py2.6.egg/chameleon/template.py",
line 172, in render
    self._render(stream, econtext, rcontext)
  File "e9d937ec11d78bdffa5760f426680e870e7641d6.py", line 42, in render
  File
"/home/ajung/.buildout/eggs/z3c.pt-2.2-py2.6.egg/z3c/pt/expressions.py",
line 58, in render_content_provider
    cp.update()
  File
"/home/ajung/.buildout/eggs/zope.viewlet-3.7.2-py2.6.egg/zope/viewlet/manager.py",
line 112, in update
    self._updateViewlets()
  File
"/home/ajung/.buildout/eggs/zope.viewlet-3.7.2-py2.6.egg/zope/viewlet/manager.py",
line 118, in _updateViewlets
    viewlet.update()
  File
"/home/ajung/.buildout/eggs/plone.app.layout-2.2.5-py2.6.egg/plone/app/layout/viewlets/common.py",
line 158, in update
    self.portal_tabs = portal_tabs_view.topLevelTabs()
  File
"/home/ajung/.buildout/eggs/Products.CMFPlone-4.2b2-py2.6.egg/Products/CMFPlone/browser/navigation.py",
line 183, in topLevelTabs
    rawresult = self.portal_catalog.searchResults(query)
  File
"/home/ajung/.buildout/eggs/Products.CMFPlone-4.2b2-py2.6.egg/Products/CMFPlone/CatalogTool.py",
line 428, in searchResults
    return ZCatalog.searchResults(self, REQUEST, **kw)
  File
"/home/ajung/.buildout/eggs/Products.ZCatalog-2.13.22-py2.6.egg/Products/ZCatalog/ZCatalog.py",
line 604, in searchResults
    return self._catalog.searchResults(REQUEST, used, **kw)
  File
"/home/ajung/.buildout/eggs/Products.ZCatalog-2.13.22-py2.6.egg/Products/ZCatalog/Catalog.py",
line 907, in searchResults
    return self.search(args, sort_index, reverse, sort_limit, _merge)
  File
"/home/ajung/.buildout/eggs/Products.ZCatalog-2.13.22-py2.6.egg/Products/ZCatalog/Catalog.py",
line 503, in search
    cr = self.getCatalogPlan(query)
  File
"/home/ajung/.buildout/eggs/Products.ZCatalog-2.13.22-py2.6.egg/Products/ZCatalog/Catalog.py",
line 916, in getCatalogPlan
    return CatalogPlan(self, query, threshold)
  File
"/home/ajung/.buildout/eggs/Products.ZCatalog-2.13.22-py2.6.egg/Products/ZCatalog/plan.py",
line 155, in __init__
    self.key = self.make_key(query)
  File
"/home/ajung/.buildout/eggs/Products.ZCatalog-2.13.22-py2.6.egg/Products/ZCatalog/plan.py",
line 212, in make_key
    valueindexes = self.valueindexes()
  File
"/home/ajung/.buildout/eggs/Products.ZCatalog-2.13.22-py2.6.egg/Products/ZCatalog/plan.py",
line 198, in valueindexes
    values = index.uniqueValues()
  File
"/home/ajung/.buildout/eggs/Products.ZCatalog-2.13.22-py2.6.egg/Products/PluginIndexes/common/UnIndex.py",
line 472, in uniqueValues
    return tuple(self._index.keys())
  File
"/home/ajung/.buildout/eggs/ZODB3-3.10.5-py2.6-linux-x86_64.egg/ZODB/Connection.py",
line 860, in setstate
    self._setstate(obj)
  File
"/home/ajung/.buildout/eggs/ZODB3-3.10.5-py2.6-linux-x86_64.egg/ZODB/Connection.py",
line 901, in _setstate
    p, serial = self._storage.load(obj._p_oid, '')
  File
"/home/ajung/.buildout/eggs/ZODB3-3.10.5-py2.6-linux-x86_64.egg/ZODB/FileStorage/FileStorage.py",
line 413, in load
    h = self._read_data_header(pos, oid, _file)
  File
"/home/ajung/.buildout/eggs/ZODB3-3.10.5-py2.6-linux-x86_64.egg/ZODB/FileStorage/format.py",
line 150, in _read_data_header
    h = DataHeaderFromString(s)
  File
"/home/ajung/.buildout/eggs/ZODB3-3.10.5-py2.6-linux-x86_64.egg/ZODB/FileStorage/format.py",
line 236, in DataHeaderFromString
    return DataHeader(*struct.unpack(DATA_HDR, s))
  File
"/home/ajung/.buildout/eggs/ZODB3-3.10.5-py2.6-linux-x86_64.egg/ZODB/FileStorage/format.py",
line 246, in __init__
    "Non-zero version length. Versions aren't supported.")
ValueError: Non-zero version length. Versions aren't supported.


- -- 
ZOPYX Limited           | zopyx group
Charlottenstr. 37/1     | The full-service network for Zope &amp;amp; Plone
D-72070 Tübingen        | Produce &amp;amp; Publish
www.zopyx.com           | www.produce-and-publish.com
- ------------------------------------------------------------------------
E-Publishing, Python, Zope &amp;amp; Plone development, Consulting


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQGUBAEBAgAGBQJPlnf7AAoJEADcfz7u4AZjJGYLwKdgHCuwTzi7vjXuPxi1me2Z
gh/Vy/oHRMok30+uQy24Mu1InoCMe8pavY68YVQq1BkU3TlRyQ4Pq1237Slk+w+L
/prdOJAze+ZyzEpuJOFrwshhMEuuj6yo2v34aMcvri7qA+kOuL14zb2lY9Mbefsl
sFxT9Z8KGF8A8GAx6AfPG6uzcFzm5SjI8zGHd9yRw73geBSeIKvayYN8qNMfyzwD
u3llZqxHDh2weclOcZk4By49hCIWw5jGeao6i4DOcrx5auPRzaA3J7NwO38f7V4D
ed2ZeZxX2g3aZ17bzvWxzCXOB6NEqMmvfPY9lihiVsUt0VJQFgd6zCiMBbFRFmDh
GFjEm3ht5AspHGXzw8yRKIMsPjq6ikiNf8gEj3c+vMhznzMfnE8c7Jm2M0kd+132
ZCDgpyoEx/7V9dGZHpfjfo/t7y8Bp+s46yjanayVMqMGY++exuEOAbU2d2I5ZnGv
mrntcEWJYPq/zhE4IFN7A4+Y2lFMAG4=
=WLKl
-----END PGP SIGNATURE-----
_______________________________________________
For more information about ZODB, see http://zodb.org/

ZODB-Dev mailing list  -  ZODB-Dev&amp;lt; at &amp;gt;zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev
&lt;/pre&gt;</description>
    <dc:creator>Andreas Jung</dc:creator>
    <dc:date>2012-04-24T09:52:59</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.web.zope.zodb/12137">
    <title>server stops handling requests - nowhere near 100% CPUor Memory used</title>
    <link>http://comments.gmane.org/gmane.comp.web.zope.zodb/12137</link>
    <description>&lt;pre&gt;Hello all,

I recently made a lot of changes to my ZODB app, and now I'm experiencing
some puzzling behavior.

Normally I have ~15 clients making requests to the server every few
seconds. Some of these
requests commit new data to the database, while others just process
existing data. I also
have a 'heartbeat' client, which access the view called '/is_alive', which
is entirely described
by this function:

    def is_alive(request): return True

Once a day or so, I will get a report from the heartbeat client that the
server is down - no heartbeat
has succeeded in the past 10 minutes. Indeed, any URL I go to on the
server, will simply not
load, but take forever - even this '/is_alive' view.

I can still SSH into the server, however. Running 'top', I see that the
server is not taking any
CPU time, and is not taking any large amount of memory. The computer itself
runs
just fine. I can even access the database with the paster shell, make
requests, commit
things, etc., without any exceptional delays. If I CTRL+C the webserver and
restart it,
things immediately work just fine.

Looking at the immediately preceding stdout, I see no hints of errors of
any kind. However,
a printline is executed on the server every time two of those clients
completes a request,
and I notice that, leading up to the current point in the stdout (where the
webserver does not
respond anymore), there are a few "Pipe is broken" messages (which happen
when, e.g.,
I go to a view with a web-browser and close the tab before the page loads),
and I notice
that requests stopped completing from one of the two clients, then from the
other. It seems
a gradual slowdown of some kind, though I'm not entirely certain.

My question is: what could possibly be causing the server to 'lock up',
even on a
simple view like 'is_alive', without using any memory or CPU? Is there some
ZODB
resource that might be getting gradually exhausted because I'm not handling
it properly?

Thanks in advance,
- Claudiu
_______________________________________________
For more information about ZODB, see http://zodb.org/

ZODB-Dev mailing list  -  ZODB-Dev&amp;lt; at &amp;gt;zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev
&lt;/pre&gt;</description>
    <dc:creator>Claudiu Saftoiu</dc:creator>
    <dc:date>2012-04-19T15:20:56</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.web.zope.zodb/12130">
    <title>Migrating from Plone 4.1.4 ZEO data.fs and blobs toRelstorage</title>
    <link>http://comments.gmane.org/gmane.comp.web.zope.zodb/12130</link>
    <description>&lt;pre&gt;-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hi List,

We need to migrate an existing test environment running Plone 4.1.4
with ZEO to a new environment on RelStorage.

I have configured zodbconvert to import the data.fs however I cannot
for the life of me find doco on how to migrate the blob (bushy layout)
into RelStorage. I am working with content exported via
collective.recipe.backup

If anyone could give an assist with this one would be a life saver!

Cheers,

Sam
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (GNU/Linux)

iF4EAREIAAYFAk+HcmYACgkQFdt86iEfl/cgUAD/Z8Rl8ju30WPvrQWPGoAXHlOc
l1SNV9cEhlgImApeufQBAKs9O840XuVRpldMyt37YtQ/nomXca1hy4yyZJp6IlqO
=PpMq
-----END PGP SIGNATURE-----
_______________________________________________
For more information about ZODB, see http://zodb.org/

ZODB-Dev mailing list  -  ZODB-Dev&amp;lt; at &amp;gt;zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev
&lt;/pre&gt;</description>
    <dc:creator>Sam Wilson</dc:creator>
    <dc:date>2012-04-13T00:25:25</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.web.zope.zodb/12129">
    <title>Upgraded from ZODB 3.8 to 3.10,do I need to upgrade my Data.fs?</title>
    <link>http://comments.gmane.org/gmane.comp.web.zope.zodb/12129</link>
    <description>&lt;pre&gt;We have been running an in house application on ZODB 3.8.2 and
recently upgraded to 3.10.5.  We run a ZEO server with FileStorage.
It seems like everything works great, no actions on our part, but I
wondered if it is suggested to some how migrate the on disk
FileStorage to take advantage of new features or optimizations in
3.10?

Thank you.
_______________________________________________
For more information about ZODB, see http://zodb.org/

ZODB-Dev mailing list  -  ZODB-Dev&amp;lt; at &amp;gt;zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev

&lt;/pre&gt;</description>
    <dc:creator>Paul Warner</dc:creator>
    <dc:date>2012-04-12T20:49:04</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.web.zope.zodb/12123">
    <title>How does automatic retrying work?</title>
    <link>http://comments.gmane.org/gmane.comp.web.zope.zodb/12123</link>
    <description>&lt;pre&gt;Hello all,

I have an HTTP request which has roughly two parts to it. One part
requires a lot of processing with a small chance of a DatabaseConflict,
while the other part requires little processing with a high chance of
a DatabaseConflict. I'd like to do something like this:

def my_view(request):
    transaction.begin()
    slow_no_conflict()
    transaction.commit()

    for avar in something:
        transaction.begin()
        fast_yes_conflict(avar)
        transaction.commit()

My question is: how will automatic retrying work? Most of my views are
simply:

def regular_view(request):
    do_stuff()

and, if something conflicts, the whole thing is just retried. In `my_view`,
what will happen if the `slow_no_conflict()` function has a conflict?
What will happen if the `fast_yes_conflict(avar)` function has a conflict?
What if its in the first iteration of the loop, or the last? I'm not quite
sure
how to properly think about these things yet.

Thanks,
- Claudiu
_______________________________________________
For more information about ZODB, see http://zodb.org/

ZODB-Dev mailing list  -  ZODB-Dev&amp;lt; at &amp;gt;zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev
&lt;/pre&gt;</description>
    <dc:creator>Claudiu Saftoiu</dc:creator>
    <dc:date>2012-03-29T18:28:12</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.web.zope.zodb/12110">
    <title>Error installing ZODB (transaction 1.2.0)</title>
    <link>http://comments.gmane.org/gmane.comp.web.zope.zodb/12110</link>
    <description>&lt;pre&gt;I am getting an error when installing ZODB with easy install and python 2.5.  The error is coming from transaction and ZODB fails to fully install.  Here is the error:

Searching for transaction&amp;gt;=1.1.0
Reading http://pypi.python.org/simple/transaction/
Reading http://www.zope.org/Products/ZODB
Best match: transaction 1.2.0
Downloading http://pypi.python.org/packages/source/t/transaction/transaction-1.2
.0.tar.gz#md5=48bb47e69df085d01ebec185705b3a7f
Processing transaction-1.2.0.tar.gz
Running transaction-1.2.0\setup.py -q bdist_egg --dist-dir c:\users\00081528\app
data\local\temp\easy_install-t6bjyi\transaction-1.2.0\egg-dist-tmp-9hvdng
  File "build\bdist.win32\egg\transaction\tests\savepointsample.py", line 26
    class SampleDataManager(object):
        ^
SyntaxError: invalid syntax

  File "c:\python25\lib\site-packages\transaction-1.2.0-py2.5.egg\transaction\te
sts\savepointsample.py", line 26
    class SampleDataManager(object):
        ^
SyntaxError: invalid syntax

Adding transaction 1.2.0 to easy-install.pth file

Installed c:\python25\lib\site-packages\transaction-1.2.0-py2.5.egg


This message is for the named person's use only. It may contain confidential, proprietary or legally privileged information. No confidentiality or privilege is waived or lost by any mistransmission. If you receive this message in error, please immediately delete it and all copies of it from your system, destroy any hard copies of it and notify the sender. You must not, directly or indirectly, use, disclose, distribute, print, or copy any part of this message if you are not the intended recipient. NorthWestern Corporation and its subsidiaries each reserve the right to monitor all e-mail communications through its network.

_______________________________________________
For more information about ZODB, see http://zodb.org/

ZODB-Dev mailing list  -  ZODB-Dev&amp;lt; at &amp;gt;zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev
&lt;/pre&gt;</description>
    <dc:creator>Bahr, Eric</dc:creator>
    <dc:date>2012-03-28T19:02:05</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.web.zope.zodb/12105">
    <title>transaction "Attempts" class</title>
    <link>http://comments.gmane.org/gmane.comp.web.zope.zodb/12105</link>
    <description>&lt;pre&gt;The transaction package offers a nice feature, where you can say:

    import transaction

    for attempt in transaction.attempts(3):
        with attempt as t:
            ... do something ...

If "do something" raises a ConflictError (or any other retryable error),
the next attempt is tried, until all attempts have been exhausted, at
which point, it gives up and the exception is raised.

But I think it may be slightly broken.

Here's the definition of the "attempt" context manager:

class Attempt(object):

    def __init__(self, manager):
        self.manager = manager

    def __enter__(self):
        return self.manager.__enter__()

    def __exit__(self, t, v, tb):
        if v is None:
            self.manager.commit()
        else:
            retry = self.manager._retryable(t, v)
            self.manager.abort()
            return retry

"do_something" within the body of an "attempt" context manager usually
doesn't raise a retryable exception (it's business logic), but the
"self.manager.commit()" within the __exit__ of the context manager
usually does.  When this happens, nothing actually catches the
exception.  I think the context manager may need to be changed to this:

class Attempt(object):

    def __init__(self, manager):
        self.manager = manager

    def __enter__(self):
        return self.manager.__enter__()

    def __exit__(self, t, v, tb):
        if v is None:
            try:
                self.manager.commit()
            except:
                retry = self.manager._retryable(*sys.exc_info()[:2])
                self.manager.abort()
                return retry
        else:
            retry = self.manager._retryable(t, v)
            self.manager.abort()
            return retry

Either that or it needs to not try to do a commit itself, and leave it
up to the caller.

Anybody with thoughts?

- C


_______________________________________________
For more information about ZODB, see http://zodb.org/

ZODB-Dev mailing list  -  ZODB-Dev&amp;lt; at &amp;gt;zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev

&lt;/pre&gt;</description>
    <dc:creator>Chris McDonough</dc:creator>
    <dc:date>2012-03-28T06:08:24</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.web.zope.zodb/12101">
    <title>RelStorage gives MySQL error when rebuilding catalog inPlone/ZMI</title>
    <link>http://comments.gmane.org/gmane.comp.web.zope.zodb/12101</link>
    <description>&lt;pre&gt;I have a Plone 4.1 site using RelStorage to store the zodb in MySQL 5.5 
server. The site has 700 objects cataloged and the database is less than 300MB after packing. I won't consider it's a large site. When I tried to "update catalog" or "clear &amp;amp; 
rebuild" the catalog, I got the following error: 

Traceback (innermost last): Module ZPublisher.Publish, line 134, in publish Module Zope2.App.startup, line 301, in commit Module transaction._manager, line 89, in commit Module transaction._transaction, line 329, in commit Module transaction._transaction, line 443, in _commitResources Module ZODB.Connection, line 567, in commit Module ZODB.Connection, line 623, in _commit Module ZODB.Connection, line 682, in _store_objects Module relstorage.storage, line 571, in store Module relstorage.adapters.mover, line 484, in mysql_store_temp Module relstorage.adapters.batch, line 67, in insert_into Module relstorage.adapters.batch, line 74, in flush Module relstorage.adapters.batch, line 110, in _do_inserts Module MySQLdb.cursors, line 174, in execute Module MySQLdb.connections, line 36, in defaulter
 rorhandler OperationalError: (2006, 'MySQL server has gone away') The mysql was installed with most default settings. The wait_timeout is 28800 according to phpMyAdmin.
 Can someone give some idea what could be wrong and where I should start looking? Thanks! 
_______________________________________________
For more information about ZODB, see http://zodb.org/

ZODB-Dev mailing list  -  ZODB-Dev&amp;lt; at &amp;gt;zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev

&lt;/pre&gt;</description>
    <dc:creator>J Z</dc:creator>
    <dc:date>2012-03-27T16:32:46</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.web.zope.zodb/12086">
    <title>database conflict fail</title>
    <link>http://comments.gmane.org/gmane.comp.web.zope.zodb/12086</link>
    <description>&lt;pre&gt;Hello ZODB List,

(This is also a stackoverflow question - you might prefer the formatting
there:
http://stackoverflow.com/questions/9810116/zodb-database-conflict-fail )

I have a server, and a client.

A client sends a request. The request has a certain key associated with it,
e.g. `a-1`, `a-2`, `b-1`, `b-4`.

If two requests for the same key come in at once, there will be a conflict
error, as the same data structures are being modified.

I can adapt the client to simply not send two requests of the same key at
once. However, I'd like this system to work with multiple clients, too. It
seems silly to have the clients coordinate what they send to the server.
Instead, I'd like the server to simply block on a request of a certain key
if that key is already being modified, until the other requests with that
same key are done.

To this end, I've created a locking system. At the beginning of the
function on the server, I do:

    key = ...
    print "Acquiring %s lock..." % (key,)
    KEY_LOCKS[key].acquire()
    print "%s lock acquired." % (key,)
    def after_commit_hook(success):
        KEY_LOCKS[key].release()
        print "(after %s commit): Released %s lock" % (('failed',
'successful')[success], key)
    transaction.get().addAfterCommitHook(after_commit_hook)

where `KEY_LOCKS` is a dict mapping keys to `threading.Lock`s. Afterwards
follows the code that modifies the persistent data structures.

What I assume would happen is that, if a request comes in for a key that's
already being processed, it would block when acquiring the lock. Only when
the earlier request **has already been committed** (thus being beyond any
conflict errors), would the new request resume. The requests do nothing
that would conflict until the lock is acquired.

Most of the requests work fine:

    Acquiring a-b lock...
    a-b lock acquired.
    (after successful commit): Released a-b lock
    Acquiring a-c lock...
    a-c lock acquired.
    (after successful commit): Released a-c lock

However, there is _still_ an issue when the same key is sent, even though
the locking seems to work:

    Acquiring q-q lock...
    q-q lock acquired.
    Acquiring q-q lock...
    (after successful commit): Released q-q lock
    q-q lock acquired.
    (after failed commit): Released q-q lock
    repoze.retry retrying, count = 1
    Traceback (most recent call last):
    ...
    ConflictError: database conflict error (oid 0x13009b, class
persistent.list.PersistentList)

And then the request retries. Note that the `q-q lock` was only acquired
after the successful commit.

What gives? Why is this system not preventing conflict errors? Where is my
assumption incorrect?

---

If, before the `transaction.get().addAfterCommitHook(after_commit_hook)`
line I put `transaction.begin()`, it works. For the life of me I can't
figure out why. Before the `transaction.begin()` line, the entirety of my
code is:

    post = request.params
    if not post: return Response("No data!")

    data = eval(post['data'])
    time_parsed = time.time()
    my_app = request.context

This solves my problem but I'm not putting that as an answer 'cause I still
want to know: Why does it give conflict errors if I don't start a fresh
transaction right before?

Thanks all,
- Claudiu
_______________________________________________
For more information about ZODB, see http://zodb.org/

ZODB-Dev mailing list  -  ZODB-Dev&amp;lt; at &amp;gt;zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev
&lt;/pre&gt;</description>
    <dc:creator>Claudiu Saftoiu</dc:creator>
    <dc:date>2012-03-21T22:54:58</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.web.zope.zodb/12083">
    <title>ZODB via Pipe/Socket</title>
    <link>http://comments.gmane.org/gmane.comp.web.zope.zodb/12083</link>
    <description>&lt;pre&gt;It is possible to open a ZODB in a thread and share it to other threads
via a filesystem socket or pipe [rather than a TCP conntection]?  I've
searched around and haven't found any reference to such a configuration.

&lt;/pre&gt;</description>
    <dc:creator>Adam Tauno Williams</dc:creator>
    <dc:date>2012-03-20T16:52:07</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.web.zope.zodb/12071">
    <title>How to update an object in a multithreading application?</title>
    <link>http://comments.gmane.org/gmane.comp.web.zope.zodb/12071</link>
    <description>&lt;pre&gt;I am updating an item in a separated thread but when it finishes the new
value is not updated in the same object in the main thread.

 

In the example below root['counter'] starts in 0, is incremented in the new
thread but it remains in 0 in the main thread.

 

#!/usr/bin/python

 

from ZODB.FileStorage import FileStorage

from ZODB.DB import DB

from BTrees.OOBTree import OOBTree

import transaction

from threading import Thread

import persistent

 

class MyThread(Thread):

   def __init__(self, db):

      Thread.__init__(self)

      self.db = db

 

   def run(self):

      self.connection = self.db.open(transaction.TransactionManager())

      self.root = self.connection.root()

 

      print "Starting thread"

      self.connection.transaction_manager.begin()

      self.root["counter"] += 1

      self.connection.transaction_manager.commit()

      print "self.root['counter'] =", self.root['counter']

 

 

filename = 'test.fs'

 

storage = FileStorage(filename)

db = DB(storage)

connection = db.open()

 

root = connection.root()

if 'counter' not in root:

   transaction.begin()

   root['counter'] = 0

   transaction.commit()

 

thread = MyThread(db)

thread.start()

 

thread.join()

 

print "*** After ***"

print "root['counter'] =", root['counter']

 

 

Thanks,

Sebastian

_______________________________________________
For more information about ZODB, see http://zodb.org/

ZODB-Dev mailing list  -  ZODB-Dev&amp;lt; at &amp;gt;zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev
&lt;/pre&gt;</description>
    <dc:creator>Sebastian Wain</dc:creator>
    <dc:date>2012-03-19T17:04:34</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.web.zope.zodb/12064">
    <title>Build compression into ZODB 3.11?</title>
    <link>http://comments.gmane.org/gmane.comp.web.zope.zodb/12064</link>
    <description>&lt;pre&gt;I'm pretty happy with how zc.zlibstorage has worked out.

Should I build this into ZODB 3.11?

BTW, lz4 compression looks interesting.

The Python binding (at least from PyPI) is broken.
I submitted an issue. Hopefully it will be fixed.

Jim

&lt;/pre&gt;</description>
    <dc:creator>Jim Fulton</dc:creator>
    <dc:date>2012-03-14T17:47:54</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.web.zope.zodb/12062">
    <title>"Unable to acquire commit lock" from RelStorage</title>
    <link>http://comments.gmane.org/gmane.comp.web.zope.zodb/12062</link>
    <description>&lt;pre&gt;Hi Shane,

What does this exception mean:

Traceback (innermost last):
   Module ZPublisher.Publish, line 135, in publish
   Module Zope2.App.startup, line 291, in commit
   Module transaction._manager, line 89, in commit
   Module transaction._transaction, line 329, in commit
   Module transaction._transaction, line 426, in _commitResources
   Module ZODB.Connection, line 776, in tpc_vote
   Module relstorage.storage, line 783, in tpc_vote
   Module relstorage.storage, line 817, in _vote
   Module relstorage.storage, line 689, in _prepare_tid
   Module relstorage.adapters.locker, line 104, in hold_commit_lock
StorageError: Unable to acquire commit lock

What can cause it?
What are the recommended solutions?

cheers,

Chris

&lt;/pre&gt;</description>
    <dc:creator>Chris Withers</dc:creator>
    <dc:date>2012-03-04T23:16:38</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.web.zope.zodb/12058">
    <title>zope.testing has to be installed separately</title>
    <link>http://comments.gmane.org/gmane.comp.web.zope.zodb/12058</link>
    <description>&lt;pre&gt;Hi list,

to have the  ZODB3 tests run in a Python virtualenv successfullly I had 
to pip-install zope.testing separately. Is it the declared intention of 
the ZODB3 developers?

Because it is not a "real" bug, I'm reporting it here instead of  on 
Launchpad.

Below is my  complete bash session in Sphinx format. For zodb 
developers, the interesting reStructuredText section might be the third 
one, "Running the ZODB3 tests".

I'm Using Ubuntu Lucid Lynx.

Thanks.

Aroldo.


Installing ZODB3 in a virtualenv
================================

Aroldo Souza-Leite

2012-02-28


The ZODB3 tests raise an ImportError.
They succeed after the intallation of zope.testing.


Preparing the virtualenv
------------------------



.. code-block:: bash

    aroldo&amp;lt; at &amp;gt;aroldo-laptop:~$ virtualenv --no-site-packages tmp-env
    Using real prefix '/usr'
    New python executable in tmp-env/bin/python
    Installing setuptools............................done.
    Installing pip.....................done.

After minor editing of tmp-env/bin/activate:



.. code-block:: bash

    aroldo&amp;lt; at &amp;gt;aroldo-laptop:~$ source tmp-env/bin/activate
    (tmp-env)aroldo&amp;lt; at &amp;gt;aroldo-laptop:~$ env | grep ENV
    VIRTUAL_ENV=/home/aroldo/tmp-env
    PIP_ENVIRONMENT=/home/aroldo/tmp-env


Installing ZODB3 using pip
--------------------------




.. code-block:: bash

    (tmp-env)aroldo&amp;lt; at &amp;gt;aroldo-laptop:~$ pip install zodb3
    Downloading/unpacking zodb3
      Downloading ZODB3-3.10.5.tar.gz (706Kb): 706Kb downloaded
      Running setup.py egg_info for package zodb3
    Downloading/unpacking transaction&amp;gt;=1.1.0 (from zodb3)
      Downloading transaction-1.2.0.tar.gz (42Kb): 42Kb downloaded
      Running setup.py egg_info for package transaction
    Downloading/unpacking zc.lockfile (from zodb3)
      Downloading zc.lockfile-1.0.0.tar.gz
      Running setup.py egg_info for package zc.lockfile
    Downloading/unpacking ZConfig (from zodb3)
      Downloading ZConfig-2.9.2.tar.gz (261Kb): 261Kb downloaded
      Running setup.py egg_info for package ZConfig
    Downloading/unpacking zdaemon (from zodb3)
      Downloading zdaemon-2.0.4.tar.gz (42Kb): 42Kb downloaded
      Running setup.py egg_info for package zdaemon
    Downloading/unpacking zope.event (from zodb3)
      Downloading zope.event-3.5.1.tar.gz
      Running setup.py egg_info for package zope.event
    Downloading/unpacking zope.interface (from zodb3)
      Downloading zope.interface-3.8.0.tar.gz (111Kb): 111Kb downloaded
      Running setup.py egg_info for package zope.interface
    Requirement already satisfied (use --upgrade to upgrade): setuptools 
in ./tmp-e
    nv/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg (from 
zc.lockfile-&amp;gt;z
    odb3)
    Installing collected packages: zodb3, transaction, zc.lockfile, 
ZConfig, zdaemo
    n, zope.event, zope.interface
      Running setup.py install for zodb3
        building 'BTrees._OOBTree' extension
        gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall 
-Wstrict-pr
    ototypes -fPIC -Isrc -I/usr/include/python2.7 -c 
src/BTrees/_OOBTree.c -o build
    /temp.linux-i686-2.7/src/BTrees/_OOBTree.o
        gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions 
-Wl,-Bsymbolic-functi
    ons build/temp.linux-i686-2.7/src/BTrees/_OOBTree.o -o 
build/lib.linux-i686-2.7
    /BTrees/_OOBTree.so
        building 'BTrees._IOBTree' extension
        gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall 
-Wstrict-pr
    ototypes -fPIC -DEXCLUDE_INTSET_SUPPORT -Isrc 
-I/usr/include/python2.7 -c src/B
    Trees/_IOBTree.c -o build/temp.linux-i686-2.7/src/BTrees/_IOBTree.o
        gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions 
-Wl,-Bsymbolic-functi
    ons build/temp.linux-i686-2.7/src/BTrees/_IOBTree.o -o 
build/lib.linux-i686-2.7
    /BTrees/_IOBTree.so
        building 'BTrees._OIBTree' extension
        gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall 
-Wstrict-pr
    ototypes -fPIC -Isrc -I/usr/include/python2.7 -c 
src/BTrees/_OIBTree.c -o build
    /temp.linux-i686-2.7/src/BTrees/_OIBTree.o
        gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions 
-Wl,-Bsymbolic-functi
    ons build/temp.linux-i686-2.7/src/BTrees/_OIBTree.o -o 
build/lib.linux-i686-2.7
    /BTrees/_OIBTree.so
        building 'BTrees._IIBTree' extension
        gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall 
-Wstrict-pr
    ototypes -fPIC -DEXCLUDE_INTSET_SUPPORT -Isrc 
-I/usr/include/python2.7 -c src/B
    Trees/_IIBTree.c -o build/temp.linux-i686-2.7/src/BTrees/_IIBTree.o
        gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions 
-Wl,-Bsymbolic-functi
    ons build/temp.linux-i686-2.7/src/BTrees/_IIBTree.o -o 
build/lib.linux-i686-2.7
    /BTrees/_IIBTree.so
        building 'BTrees._IFBTree' extension
        gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall 
-Wstrict-pr
    ototypes -fPIC -DEXCLUDE_INTSET_SUPPORT -Isrc 
-I/usr/include/python2.7 -c src/B
    Trees/_IFBTree.c -o build/temp.linux-i686-2.7/src/BTrees/_IFBTree.o
        gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions 
-Wl,-Bsymbolic-functi
    ons build/temp.linux-i686-2.7/src/BTrees/_IFBTree.o -o 
build/lib.linux-i686-2.7
    /BTrees/_IFBTree.so
        building 'BTrees._fsBTree' extension
        gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall 
-Wstrict-pr
    ototypes -fPIC -DEXCLUDE_INTSET_SUPPORT -Isrc 
-I/usr/include/python2.7 -c src/B
    Trees/_fsBTree.c -o build/temp.linux-i686-2.7/src/BTrees/_fsBTree.o
        gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions 
-Wl,-Bsymbolic-functi
    ons build/temp.linux-i686-2.7/src/BTrees/_fsBTree.o -o 
build/lib.linux-i686-2.7
    /BTrees/_fsBTree.so
        building 'BTrees._LOBTree' extension
        gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall 
-Wstrict-pr
    ototypes -fPIC -DEXCLUDE_INTSET_SUPPORT -Isrc 
-I/usr/include/python2.7 -c src/B
    Trees/_LOBTree.c -o build/temp.linux-i686-2.7/src/BTrees/_LOBTree.o
        gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions 
-Wl,-Bsymbolic-functi
    ons build/temp.linux-i686-2.7/src/BTrees/_LOBTree.o -o 
build/lib.linux-i686-2.7
    /BTrees/_LOBTree.so
        building 'BTrees._OLBTree' extension
        gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall 
-Wstrict-pr
    ototypes -fPIC -Isrc -I/usr/include/python2.7 -c 
src/BTrees/_OLBTree.c -o build
    /temp.linux-i686-2.7/src/BTrees/_OLBTree.o
        gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions 
-Wl,-Bsymbolic-functi
    ons build/temp.linux-i686-2.7/src/BTrees/_OLBTree.o -o 
build/lib.linux-i686-2.7
    /BTrees/_OLBTree.so
        building 'BTrees._LLBTree' extension
        gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall 
-Wstrict-pr
    ototypes -fPIC -DEXCLUDE_INTSET_SUPPORT -Isrc 
-I/usr/include/python2.7 -c src/B
    Trees/_LLBTree.c -o build/temp.linux-i686-2.7/src/BTrees/_LLBTree.o
        gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions 
-Wl,-Bsymbolic-functi
    ons build/temp.linux-i686-2.7/src/BTrees/_LLBTree.o -o 
build/lib.linux-i686-2.7
    /BTrees/_LLBTree.so
        building 'BTrees._LFBTree' extension
        gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall 
-Wstrict-pr
    ototypes -fPIC -DEXCLUDE_INTSET_SUPPORT -Isrc 
-I/usr/include/python2.7 -c src/B
    Trees/_LFBTree.c -o build/temp.linux-i686-2.7/src/BTrees/_LFBTree.o
        gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions 
-Wl,-Bsymbolic-functi
    ons build/temp.linux-i686-2.7/src/BTrees/_LFBTree.o -o 
build/lib.linux-i686-2.7
    /BTrees/_LFBTree.so
        building 'persistent.cPersistence' extension
        gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall 
-Wstrict-pr
    ototypes -fPIC -Isrc -I/usr/include/python2.7 -c 
src/persistent/cPersistence.c
    -o build/temp.linux-i686-2.7/src/persistent/cPersistence.o
        gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall 
-Wstrict-pr
    ototypes -fPIC -Isrc -I/usr/include/python2.7 -c 
src/persistent/ring.c -o build
    /temp.linux-i686-2.7/src/persistent/ring.o
        gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions 
-Wl,-Bsymbolic-functi
    ons build/temp.linux-i686-2.7/src/persistent/cPersistence.o 
build/temp.linux-i6
    86-2.7/src/persistent/ring.o -o 
build/lib.linux-i686-2.7/persistent/cPersistenc
    e.so
        building 'persistent.cPickleCache' extension
        gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall 
-Wstrict-pr
    ototypes -fPIC -Isrc -I/usr/include/python2.7 -c 
src/persistent/cPickleCache.c
    -o build/temp.linux-i686-2.7/src/persistent/cPickleCache.o
        gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall 
-Wstrict-pr
    ototypes -fPIC -Isrc -I/usr/include/python2.7 -c 
src/persistent/ring.c -o build
    /temp.linux-i686-2.7/src/persistent/ring.o
        gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions 
-Wl,-Bsymbolic-functi
    ons build/temp.linux-i686-2.7/src/persistent/cPickleCache.o 
build/temp.linux-i6
    86-2.7/src/persistent/ring.o -o 
build/lib.linux-i686-2.7/persistent/cPickleCach
    e.so
        building 'persistent.TimeStamp' extension
        gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall 
-Wstrict-pr
    ototypes -fPIC -Isrc -I/usr/include/python2.7 -c 
src/persistent/TimeStamp.c -o
    build/temp.linux-i686-2.7/src/persistent/TimeStamp.o
        gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions 
-Wl,-Bsymbolic-functi
    ons build/temp.linux-i686-2.7/src/persistent/TimeStamp.o -o 
build/lib.linux-i68
    6-2.7/persistent/TimeStamp.so
        Installing fstail script to /home/aroldo/tmp-env/bin
        Installing zeopack script to /home/aroldo/tmp-env/bin
        Installing runzeo script to /home/aroldo/tmp-env/bin
        Installing zeopasswd script to /home/aroldo/tmp-env/bin
        Installing zeoctl script to /home/aroldo/tmp-env/bin
        Installing fsdump script to /home/aroldo/tmp-env/bin
        Installing fsrefs script to /home/aroldo/tmp-env/bin
        Installing repozo script to /home/aroldo/tmp-env/bin
        Installing fsoids script to /home/aroldo/tmp-env/bin
      Running setup.py install for transaction
      Running setup.py install for zc.lockfile
        Skipping installation of 
/home/aroldo/tmp-env/lib/python2.7/site-packages/z
    c/__init__.py (namespace package)
        Installing 
/home/aroldo/tmp-env/lib/python2.7/site-packages/zc.lockfile-1.0
    .0-py2.7-nspkg.pth
      Running setup.py install for ZConfig
        changing mode of build/scripts-2.7/zconfig from 644 to 755
        changing mode of build/scripts-2.7/zconfig_schema2html from 644 
to 755
        changing mode of /home/aroldo/tmp-env/bin/zconfig_schema2html to 755
        changing mode of /home/aroldo/tmp-env/bin/zconfig to 755
      Running setup.py install for zdaemon
        Installing zdaemon script to /home/aroldo/tmp-env/bin
      Running setup.py install for zope.event
        Skipping installation of 
/home/aroldo/tmp-env/lib/python2.7/site-packages/z
    ope/__init__.py (namespace package)
        Installing 
/home/aroldo/tmp-env/lib/python2.7/site-packages/zope.event-3.5.
    1-py2.7-nspkg.pth
      Running setup.py install for zope.interface
        building 'zope.interface._zope_interface_coptimizations' extension
        gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall 
-Wstrict-pr
    ototypes -fPIC -I/usr/include/python2.7 -c 
src/zope/interface/_zope_interface_c
    optimizations.c -o 
build/temp.linux-i686-2.7/src/zope/interface/_zope_interface
    _coptimizations.o
        gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions 
-Wl,-Bsymbolic-functi
    ons 
build/temp.linux-i686-2.7/src/zope/interface/_zope_interface_coptimizations
    .o -o 
build/lib.linux-i686-2.7/zope/interface/_zope_interface_coptimizations.so
        Skipping installation of 
/home/aroldo/tmp-env/lib/python2.7/site-packages/z
    ope/__init__.py (namespace package)
        Installing 
/home/aroldo/tmp-env/lib/python2.7/site-packages/zope.interface-
    3.8.0-py2.7-nspkg.pth
    Successfully installed zodb3 transaction zc.lockfile ZConfig zdaemon 
zope.event
     zope.interface
    Cleaning up...

Running the ZODB3 tests
-----------------------




.. code-block:: bash

    (tmp-env)aroldo&amp;lt; at &amp;gt;aroldo-laptop:~$ which python
    /home/aroldo/tmp-env/bin/python
    (tmp-env)aroldo&amp;lt; at &amp;gt;aroldo-laptop:~$ python 
tmp-env/lib/python2.7/site-packages/ZOD
    B/tests/testZODB.py
    Traceback (most recent call last):
      File "tmp-env/lib/python2.7/site-packages/ZODB/tests/testZODB.py", 
line 25, i
    n &amp;lt;module&amp;gt;
        import ZODB.tests.util
      File 
"/home/aroldo/tmp-env/lib/python2.7/site-packages/ZODB/tests/util.py", l
    ine 31, in &amp;lt;module&amp;gt;
        import zope.testing.setupstack
    ImportError: No module named testing.setupstack

Installing zope.testing
-----------------------



.. code-block:: bash

    (tmp-env)aroldo&amp;lt; at &amp;gt;aroldo-laptop:~$ pip install zope.testing
    Downloading/unpacking zope.testing
      Downloading zope.testing-4.1.1.tar.gz (50Kb): 50Kb downloaded
      Running setup.py egg_info for package zope.testing
        warning: no files found matching '*.test' under directory 'src'
        warning: no files found matching 'sampletests' under directory 'src'
    Requirement already satisfied (use --upgrade to upgrade): setuptools 
in ./tmp-e
    nv/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg (from 
zope.testing)
    Downloading/unpacking zope.exceptions (from zope.testing)
      Downloading zope.exceptions-3.6.1.zip
      Running setup.py egg_info for package zope.exceptions
    Requirement already satisfied (use --upgrade to upgrade): 
zope.interface in ./t
    mp-env/lib/python2.7/site-packages (from zope.testing)
    Installing collected packages: zope.testing, zope.exceptions
      Running setup.py install for zope.testing
        warning: no files found matching '*.test' under directory 'src'
        warning: no files found matching 'sampletests' under directory 'src'
        Skipping installation of 
/home/aroldo/tmp-env/lib/python2.7/site-packages/z
    ope/__init__.py (namespace package)
        Installing 
/home/aroldo/tmp-env/lib/python2.7/site-packages/zope.testing-4.
    1.1-py2.7-nspkg.pth
      Running setup.py install for zope.exceptions
        Skipping installation of 
/home/aroldo/tmp-env/lib/python2.7/site-packages/z
    ope/__init__.py (namespace package)
        Installing 
/home/aroldo/tmp-env/lib/python2.7/site-packages/zope.exceptions
    -3.6.1-py2.7-nspkg.pth
    Successfully installed zope.testing zope.exceptions
    Cleaning up...

Running the ZODB3 tests again
-----------------------------

.. code-block:: bash

    (tmp-env)aroldo&amp;lt; at &amp;gt;aroldo-laptop:~$ python 
tmp-env/lib/python2.7/site-packages/ZOD
    B/tests/testZODB.py
    No handlers could be found for logger "txn.-1215990080"
    Ran 10 tests in 0.998s
    OK
    (tmp-env)aroldo&amp;lt; at &amp;gt;aroldo-laptop:~$
_______________________________________________
For more information about ZODB, see http://zodb.org/

ZODB-Dev mailing list  -  ZODB-Dev&amp;lt; at &amp;gt;zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev

&lt;/pre&gt;</description>
    <dc:creator>Aroldo Souza-Leite</dc:creator>
    <dc:date>2012-02-28T08:43:11</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.web.zope.zodb/12055">
    <title>Error when running zeopack (zeopack.py) from command line ("ImportError: No module named ZEO.ClientStorage")</title>
    <link>http://comments.gmane.org/gmane.comp.web.zope.zodb/12055</link>
    <description>&lt;pre&gt;Hi all,

I'm getting an error when trying to run zeopack (zeopack.py) from the
command line. This is a Linux server running the following "Zope
Version": "Zope 2.10.9-final, python 2.4.6, linux2". The Plone version
is 3.3.1

The error message is "ImportError: No module named ZEO.ClientStorage".
Here's my attempt to run the command:

myhost:/soft/Plone/Zope-2.10.9-final-py2.4/lib/python/ZEO/scripts #
/soft/Plone/Python-2.4/bin/python
/soft/Plone/Zope-2.10.9-final-py2.4/lib/python/ZEO/scripts/zeopack.py
Traceback (most recent call last):
  File "/soft/Plone/Zope-2.10.9-final-py2.4/lib/python/ZEO/scripts/zeopack.py",
line 33, in ?
    from ZEO.ClientStorage import ClientStorage
ImportError: No module named ZEO.ClientStorage


I saw some threads about this error that suggested to set / expand the
PYTHONPATH environment variable. I did not have that PYTHONPATH
environment variable defined.  So, I tried to define that variable:

myhost:# export
PYTHONPATH=/soft/Plone/Zope-2.10.9-final-py2.4/lib/python/ZEO:/soft/Plone/Zope-2.10.9-final-py2.4/lib/python/ZEO/scripts

myhost:# env | grep -i pythonpath
PYTHONPATH=/soft/Plone/Zope-2.10.9-final-py2.4/lib/python/ZEO:/soft/Plone/Zope-2.10.9-final-py2.4/lib/python/ZEO/scripts


... but I still get the same "ImportError: No module named
ZEO.ClientStorage" error message when trying to run again the command,
event after having defined PYTHONPATH with the above values.  :(


Could anyone give me some tips / pointers to what I'm doing wrong /
should be doing instead, please?


Thanks in advance!  :)

Best wishes,
Ricardo Dias Marques
lists AT ricmarques DOT net
Identi.ca / Twitter: &amp;lt; at &amp;gt;ricmarques
_______________________________________________
For more information about ZODB, see http://zodb.org/

ZODB-Dev mailing list  -  ZODB-Dev&amp;lt; at &amp;gt;zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev

&lt;/pre&gt;</description>
    <dc:creator>Ricardo Dias Marques</dc:creator>
    <dc:date>2012-02-17T11:20:42</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.web.zope.zodb">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.web.zope.zodb</link>
  </textinput>
</rdf:RDF>

