Discussion:
[BitPim-devel] VX8600 T9 download: crashes editor consistently
Christopher Bowns
2007-07-14 23:05:35 UTC
Permalink
I had originally posted this to the bitpim-users list, but realized I'd love
to work on fixing it, so -devel seems more apropos.

I'm having a tough time with my VX8600 over Bluetooth and the T9 editor.
When I got the phone, and there were only a few words in the database,
BitPim did fine downloading and displaying it. Now that I've added more
words on the phone, BitPim consistently bombs out when trying to parse and
display the database.

A log of the error is at the end of this email. I don't know where to chase
this from here: try to isolate the bits that BitPim doesn't like? Any ideas?

~Christopher

Log follows:

BitPim version: 1.0.0-official
An unexpected exception has occurred.
Please see the help for details on what to do.

Traceback (most recent call last):
File "gui.pyo", line 1768, in OnCallback
File "gui.pyo", line 182, in __call__
File "gui.pyo", line 139, in __call__
File "gui.pyo", line 1437, in OnDataGetPhoneResults
File "t9editor.pyo", line 239, in populatefs
File "t9editor.pyo", line 151, in save
File "database.pyo", line 265, in _transactionwrapper
File "database.pyo", line 522, in savemajordict
File "database.pyo", line 589, in updateindirecttable
UnicodeDecodeError: 'ascii' codec can't decode byte 0xa0 in position 7:
ordinal not in range(128)

Variables by last 8 frames, innermost last

Frame __call__ in gui.pyo at line 182
self = <gui.HelperReturnEvent; proxy of <Swig Object of type
'wxPyEvent *' at 0x7d45cd0

Frame __call__ in gui.pyo at line 139
self = <gui.Callback instance at 0x6241418>
args = (None, {'uniqueserial':
'c1a76383963a0748cd24795a04301423ca6e6e59', 'T9 Data': <
d = Keys []
{}
kwargs = Keys []
{}

Frame OnDataGetPhoneResults in gui.pyo at line 1437
updwp = False
exception = None
results = Keys ['T9 Data', 'groups', 'ringtone-index', 'sync',
'uniqueserial', 'wallpaper-index']
{'uniqueserial':
'c1a76383963a0748cd24795a04301423ca6e6e59', 'T9 Data': <t9edito
updrng = False
self = <gui.MainWindow; proxy of <Swig Object of type 'wxFrame
*' at 0x1a22600> >

Frame populatefs in t9editor.pyo at line 239
self = <t9editor.T9EditorWidget; proxy of <Swig Object of type
'wxPanel *' at 0x7f72990
dict = Keys ['T9 Data', 'groups', 'ringtone-index', 'sync',
'uniqueserial', 'wallpaper-index']
{'uniqueserial':
'c1a76383963a0748cd24795a04301423ca6e6e59', 'T9 Data': <t9edito

Frame save in t9editor.pyo at line 151
_list = ['parkway']
self = <t9editor.T9WordsList object at 0x6247970>
db = <database.Database instance at 0x6db1850>
_ = '7275929'
x = 'parkway'
_dict = Keys ['T9 Data']
{'T9 Data': {'words': [{'word': ''}, {'word': ''},
{'word': ''}, {'word': ''}, {
_rec = [{'word': ''}, {'word': ''}, {'word': ''}, {'word': ''},
{'word': ''}, {'word':

Frame _transactionwrapper in database.pyo at line 285
cmd = 'ROLLBACK TRANSACTION'
success = False
self = <database.Database instance at 0x6db1850>
args = (<database.Database instance at 0x6db1850>, 'T9 Data',
{'T9 Data': {'words': [{'
w = True
kwargs = Keys []
{}
method = <function savemajordict at 0x2d27d30>

Frame savemajordict in database.pyo at line 522
dbkeys = [u'__rowid__', u'__timestamp__', u'__deleted__',
u'__uid__', u'words']
dbtkeys = [[0, u'__rowid__', u'integer primary key'], [1,
u'__timestamp__', u''], [2, u'__
record = Keys ['words']
{'words': [{'word': ''}, {'word': ''}, {'word': ''},
{'word': ''}, {'word': ''},
self = <database.Database instance at 0x6db1850>
tablename = 'T9 Data'
current = Keys [u'T9 Data']
{u'T9 Data': {u'words': [{u'word': u'Kristina'},
{u'word': u'Bowns'}, {u'word':
dict = Keys ['T9 Data']
{'T9 Data': {'words': [{'word': ''}, {'word': ''},
{'word': ''}, {'word': ''}, {
new = []
dl = []
dk = ['words']
missing = []
deleted = []
timestamp = 1184452439.527035
indirects = Keys ['T9 Data']
{'T9 Data': [{'word': ''}, {'word': ''}, {'word': ''},
{'word': ''}, {'word': ''
_ = 4
kk = 'words'
k = 'words'
modified = ['T9 Data']
n = u'words'
i = 0
r = 'T9 Data'
t = u'indirectBLOB'
v = [{'word': ''}, {'word': ''}, {'word': ''}, {'word': ''},
{'word': ''}, {'word':

Frame updateindirecttable in database.pyo at line 589
tablename = u'T9 Data__words'
res = u'T9
Data__words,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,
d = 'word'
missing = []
i = 'T9 Data'
coals = []
k = 'word'
cmd = ['select __rowid__ from', u'[T9 Data__words]', 'where',
'[word]', '= ?']
datakeys = ['word']
p = '1143'
indirects = Keys ['T9 Data']
{'T9 Data': [{'word': ''}, {'word': ''}, {'word': ''},
{'word': ''}, {'word': ''
record = Keys ['word']
{'word':
'Y_SID\x04\x00\xa0BKEY\x03\x00\xa0200\xc5\x006\x11D`\t\x02\xc5\x006\x11
r = 'T9 Data'
params =
['Y_SID\x04\x00\xa0BKEY\x03\x00\xa0200\xc5\x006\x11D`\t\x02\xc5\x006\x11D`\t\x02
dbkeys = [u'__rowid__', u'word']
v =
'Y_SID\x04\x00\xa0BKEY\x03\x00\xa0200\xc5\x006\x11D`\t\x02\xc5\x006\x11D`\t\x02\
found = None
self = <database.Database instance at 0x6db1850>
Nathan Hjelm
2007-07-15 05:58:55 UTC
Permalink
I took a look at this problem a month ago and I noticed that when this error occurs the problem is not with parsing the database. It seems Bitpim does not set a value(s) correctly in the database and the phone ends up corrupting the database. You will notice some of your learned words no longer work when this has happened. If I am correct the only way to fix the error is to decipher the header of the database. There are some interesting values in the first few words you can look at that the phone changes on database access/modification.


-Nathan
Post by Christopher Bowns
I had originally posted this to the bitpim-users list, but realized I'd love
to work on fixing it, so -devel seems more apropos.
I'm having a tough time with my VX8600 over Bluetooth and the T9 editor.
When I got the phone, and there were only a few words in the database,
BitPim did fine downloading and displaying it. Now that I've added more
words on the phone, BitPim consistently bombs out when trying to parse and
display the database.
A log of the error is at the end of this email. I don't know where to chase
this from here: try to isolate the bits that BitPim doesn't like? Any ideas?
~Christopher
BitPim version: 1.0.0-official
An unexpected exception has occurred.
Please see the help for details on what to do.
File "gui.pyo", line 1768, in OnCallback
File "gui.pyo", line 182, in __call__
File "gui.pyo", line 139, in __call__
File "gui.pyo", line 1437, in OnDataGetPhoneResults
File "t9editor.pyo", line 239, in populatefs
File "t9editor.pyo", line 151, in save
File "database.pyo", line 265, in _transactionwrapper
File "database.pyo", line 522, in savemajordict
File "database.pyo", line 589, in updateindirecttable
ordinal not in range(128)
Variables by last 8 frames, innermost last
Frame __call__ in gui.pyo at line 182
self = <gui.HelperReturnEvent; proxy of <Swig Object of type
'wxPyEvent *' at 0x7d45cd0
Frame __call__ in gui.pyo at line 139
self = <gui.Callback instance at 0x6241418>
'c1a76383963a0748cd24795a04301423ca6e6e59', 'T9 Data': <
d = Keys []
{}
kwargs = Keys []
{}
Frame OnDataGetPhoneResults in gui.pyo at line 1437
updwp = False
exception = None
results = Keys ['T9 Data', 'groups', 'ringtone-index', 'sync',
'uniqueserial', 'wallpaper-index']
'c1a76383963a0748cd24795a04301423ca6e6e59', 'T9 Data': <t9edito
updrng = False
self = <gui.MainWindow; proxy of <Swig Object of type 'wxFrame
*' at 0x1a22600> >
Frame populatefs in t9editor.pyo at line 239
self = <t9editor.T9EditorWidget; proxy of <Swig Object of type
'wxPanel *' at 0x7f72990
dict = Keys ['T9 Data', 'groups', 'ringtone-index', 'sync',
'uniqueserial', 'wallpaper-index']
'c1a76383963a0748cd24795a04301423ca6e6e59', 'T9 Data': <t9edito
Frame save in t9editor.pyo at line 151
_list = ['parkway']
self = <t9editor.T9WordsList object at 0x6247970>
db = <database.Database instance at 0x6db1850>
_ = '7275929'
x = 'parkway'
_dict = Keys ['T9 Data']
{'T9 Data': {'words': [{'word': ''}, {'word': ''},
{'word': ''}, {'word': ''}, {
_rec = [{'word': ''}, {'word': ''}, {'word': ''}, {'word': ''},
Frame _transactionwrapper in database.pyo at line 285
cmd = 'ROLLBACK TRANSACTION'
success = False
self = <database.Database instance at 0x6db1850>
args = (<database.Database instance at 0x6db1850>, 'T9 Data',
{'T9 Data': {'words': [{'
w = True
kwargs = Keys []
{}
method = <function savemajordict at 0x2d27d30>
Frame savemajordict in database.pyo at line 522
dbkeys = [u'__rowid__', u'__timestamp__', u'__deleted__',
u'__uid__', u'words']
dbtkeys = [[0, u'__rowid__', u'integer primary key'], [1,
u'__timestamp__', u''], [2, u'__
record = Keys ['words']
{'words': [{'word': ''}, {'word': ''}, {'word': ''},
{'word': ''}, {'word': ''},
self = <database.Database instance at 0x6db1850>
tablename = 'T9 Data'
current = Keys [u'T9 Data']
{u'T9 Data': {u'words': [{u'word': u'Kristina'},
dict = Keys ['T9 Data']
{'T9 Data': {'words': [{'word': ''}, {'word': ''},
{'word': ''}, {'word': ''}, {
new = []
dl = []
dk = ['words']
missing = []
deleted = []
timestamp = 1184452439.527035
indirects = Keys ['T9 Data']
{'T9 Data': [{'word': ''}, {'word': ''}, {'word': ''},
{'word': ''}, {'word': ''
_ = 4
kk = 'words'
k = 'words'
modified = ['T9 Data']
n = u'words'
i = 0
r = 'T9 Data'
t = u'indirectBLOB'
v = [{'word': ''}, {'word': ''}, {'word': ''}, {'word': ''},
Frame updateindirecttable in database.pyo at line 589
tablename = u'T9 Data__words'
res = u'T9
Data__words,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,
d = 'word'
missing = []
i = 'T9 Data'
coals = []
k = 'word'
cmd = ['select __rowid__ from', u'[T9 Data__words]', 'where',
'[word]', '= ?']
datakeys = ['word']
p = '1143'
indirects = Keys ['T9 Data']
{'T9 Data': [{'word': ''}, {'word': ''}, {'word': ''},
{'word': ''}, {'word': ''
record = Keys ['word']
'Y_SID\x04\x00\xa0BKEY\x03\x00\xa0200\xc5\x006\x11D`\t\x02\xc5\x006\x11
r = 'T9 Data'
params =
['Y_SID\x04\x00\xa0BKEY\x03\x00\xa0200\xc5\x006\x11D`\t\x02\xc5\x006\x11D`\t\x02
dbkeys = [u'__rowid__', u'word']
v =
'Y_SID\x04\x00\xa0BKEY\x03\x00\xa0200\xc5\x006\x11D`\t\x02\xc5\x006\x11D`\t\x02\
found = None
self = <database.Database instance at 0x6db1850>
Joe Pham
2007-07-16 00:42:27 UTC
Permalink
Post by Christopher Bowns
I'm having a tough time with my VX8600 over Bluetooth and the T9
editor
The T9 Read feature will be disabled in the next release. It'll
still be available in the debug mode for those who still want to work
it.

-Joe Pham



_____________________________________________________________________
Save hundreds of dollars a year with NetZero Internet access.
Plans start as low as $9.95 a month. Visit NetZero today!
http://track.netzero.net/s/lc?u=http://ads.addynamix.com/click/2-2130420-238
Christopher Bowns
2007-07-17 13:29:47 UTC
Permalink
Is there any way I can help out with fixing the T9 database write process?
I'm starting to compile a series of "captures," if you will, of the T9
database as I add words to it via the phone. I don't mind blowing away the
database to help test BitPim.
Joe Pham
2007-07-17 23:25:34 UTC
Permalink
Post by Christopher Bowns
Is there any way I can help out with fixing the T9 database write
process?
Yes, you can try looking at the T9 Users Database file on your phone
and figure out its format. Once we determine the format, the
implementation is easy.

-Joe Pham



_____________________________________________________________________
Save hundreds of dollars a year with NetZero Internet access.
Plans start as low as $9.95 a month. Visit NetZero today!
http://track.netzero.net/s/lc?u=http://ads.addynamix.com/click/2-2130420-238
Loading...