durusmail: durus-users: unable to persist stuff from client.py with 1 character python filename?
README example does not work
2004-07-31
2004-07-31
RELEASED: Durus 1.0
2004-07-31
unable to persist stuff from client.py with 1 character python filename?
2004-07-31
Re: unable to persist stuff from client.py with 1 character python filename?
2004-07-31
unable to persist stuff from client.py with 1 character python filename?
Jon Dyte
2004-07-31
Hi David

I hope it's not too early to report some strangeness but, given this python
script
----a.py----
from durus.persistent import Persistent

class A(Persistent):
        pass


if I import that into the client.py, I observe the following :-

>>> import a
>>> a0 = a.A()
>>> root['a0'] = a0
>>> connection.commit()
Traceback (most recent call last):
  File "", line 1, in ?
  File "/sw/pythonextra//lib/python2.3/site-packages/durus/connection.py",
line 233, in commit
    self.tid = self.storage.end(self._handle_invalidations)
  File "/sw/pythonextra/lib/python2.3/site-packages/durus/client_storage.py",
line 63, in end
    status = recv(self.s, 1)
  File "/sw/pythonextra/lib/python2.3/site-packages/durus/storage_server.py",
line 42, in recv
    raise IOError, 'connection reset by peer'
IOError: connection reset by peer
>>>
 the server logs
 File "/sw/pythonextra/bin/run_durus.py", line 79, in ?
    options.port)
  File "/sw/pythonextra/bin/run_durus.py", line 26, in run_durus
    StorageServer(storage, host=host, port=port).serve()
  File "/sw/pythonextra//lib/python2.3/site-packages/durus/storage_server.py",
line 81, in serve
    self.handle(s)
  File "/sw/pythonextra//lib/python2.3/site-packages/durus/storage_server.py",
line 92, in handle
    handler(s)
  File "/sw/pythonextra//lib/python2.3/site-packages/durus/storage_server.py",
line 139, in handle_C
    u64(oid), rlen, extract_class_name(record))
  File "/sw/pythonextra//lib/python2.3/site-packages/durus/serialize.py", line
54, in extract_class_name
    class_name = record[20:80].split('\n', 2)[1] # assumes pickle protocol 2
IndexError: list index out of range


where as a file
----bmin.py----- with
from durus.persistent import Persistent

class A(Persistent):
        pass

works :-

Durus (127.0.0.1:2972)
    connection -> the connection
    root       -> get(0)
    get(oid)   -> get an object
    pp(object) -> pretty-print
>>> import bmin
>>> b = bmin.A()
>>> root['b'] = b
>>> connection.commit()
>>>

It seems to me that one character filenames  are not working!!
The python is
Python 2.3.3 (#2, Dec 23 2003, 08:50:31)
[GCC 3.3.1 (Mandrake Linux 9.2 3.3.1-4mdk)] on linux2


Jon



reply