|
List Info
Thread: PYYIMT Transport fault with multiple users
|
|
| PYYIMT Transport fault with multiple
users |

|
2008-01-16 09:06:41 |
|
Dear
All,
I got some trouble
with my PYYIMT transport, because I couldn't find it I installed the newest CVS
version of PYYIMT and also the newest xmpp library.
My problem is the
following:
1. user1 registers
to the PYYIMT transport, no problem transport comes online and user1 can work.
user1 logs off.
2. user2 registers
to the transport, no problems at all. user2 logs off.
3. if user2 logs-on
again I don't see the transport coming online. And the following errors appears
in the log:
Wed 16 Jan 2008 15:30:44 - CVS 1.71 Traceback
(most recent call last): File "yahoo.py", line 1315, in
<module> rdsocketlist[each].Process() File
"/opt/contrib/imgatew/run/PYYIMT/ylib.py", line 696, in Process
self.ymsg_online(s,t) File "/opt/contrib/imgatew/run/PYYIMT/ylib.py", line
154, in ymsg_online self.handlers['avatar'](self,pay[each][7],b)
File "yahoo.py", line 861, in y_avatar userfile[yobj.fromjid] = conf
File "/opt/contrib/imserv/run/PYTHON/lib/python2.5/shelve.py", line 124, in
__setitem__ self.dict[key] = f.getvalue() error: cannot add item to
database
After a minute of 5
i get errors in the log like
Wed 16 Jan 2008
15:35:43 - CVS 1.71 Traceback (most recent call last): File "yahoo.py",
line 1315, in <module> rdsocketlist[each].Process() File
"/opt/contrib/imgatew/run/PYYIMT/ylib.py", line 696, in Process
self.ymsg_online(s,t) File "/opt/contrib/imgatew/run/PYYIMT/ylib.py", line
154, in ymsg_online self.handlers['avatar'](self,pay[each][7],b)
File "yahoo.py", line 851, in y_avatar conf = userfile[yobj.fromjid]
File "/opt/contrib/imserv/run/PYTHON/lib/python2.5/shelve.py", line 112, in
__getitem__ f = StringIO(self.dict[key]) KeyError: %27user2 test.ibpmail.com%27">'user2 test.ibpmail.com'
I don't know
how the database of the transport works but it never gets bigger than 1024
bytes.
When the first
user registers this is in the database (normal cat on the
file):
au(dp1 S'username' p2 Vuser1
p3 sS'password' p4 Vpassword p5 sS'subscribed' p6 I01 sS'usubscribed' p7 I01
s.user1  test.ibpma il.com">s.user1 test.ibpmail.com
This is when the
second user authorizes itself:
auZU(dp1 S'username' p2 Vuser2 p3 sS'subscribed' p4 I01 sS'password' p5 Vpassword p6 sS'avatar' p7 (dp8 sS'usubscribed' p9 I01 s.user2 test.ibpmail.com%28dp1">s.user2 test.ibpmail.com(dp1 S'username' p2 Vuser1
p3 sS'password' p4 Vpassword p5 sS'subscribed' p6 I01 sS'usubscribed' p7 I01 s.user1 test.ibpmail.com">s.user1 test.ibpmail.com
but this is
when a third user registers itself (also had the error "cannot add item to the
database).
Where is
user2???
abFô(dp1 S'username' p2 Vuser1
Strangely it looks
like you can't register more than 1 user without breaking the transport. The
yahoouser.dbm.pag file stays 1024 bytes and the yahoouser.dbm.dir stays 0
bytes.
anyone have an idea
why this happens?? I register using PSI.
Regards,
Oliver.
Express yourself instantly with MSN Messenger! MSN Messenger |
| Re: PYYIMT Transport fault with
multiple users |

|
2008-01-17 03:55:10 |
|
On Jan 16, 2008 5:06 PM, oliver bril < oliver_bril hotmail.com">oliver_bril hotmail.com> wrote:
File "/opt /contrib/imserv/run/PYTHON/lib/python2.5/shelve.py", line 124, in
__setitem__
self.dict[key] = f.getvalue() error: cannot add item to
database
I don't know
how the database of the transport works but it never gets bigger than 1024
bytes.
Strangely it looks
like you can't register more than 1 user without breaking the transport. The
yahoouser.dbm.pag file stays 1024 bytes and the yahoouser.dbm.dir stays 0
bytes.
anyone have an idea
why this happens?? I register using PSI.
This looks like your python shelve module is playing up. Silly question: do you have enough free disk space? When I use shelve it only creates a single file, not .pag and .dir files. It might be possible that shelve is falling back on a weird backend that isn't working correctly. I think the default is bsddb (aka as dbhash to anydbm)?
What output do you get for this:
$ python >>> import anydbm >>> s=anydbm.open('testshelve9;,'c39;) >>> s.__class__ <class bsddb._DBWithCursor at 0xb7dd653c>
>>> s.__module__ 'bsddb' >>> anydbm._names ['dbhash', 'gdbm', 'dbm39;, 'dumbdbm']
and what files are created?
-- - Norman Rasmussen
- Email: norman rasmussen.co.za">norman rasmussen.co.za - Home page: http://norman.rasmussen.co.za/
|
[1-2]
|
|
|
about | contact Other archives ( Real Estate discussion Medical topics )
|