[sugar] Does datastore.write() work at all?

Benjamin M. Schwartz bmschwar at fas.harvard.edu
Sat Mar 8 19:43:50 EST 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

When I call datastore.write(jobject), my program dies, producing the
appended logfile.  The error is

~  File "/usr/lib/python2.5/site-packages/olpc/datastore/datastore.py",
line 177, in _resolveMountpoint
~    mp = self.mountpoints[mountpoint]
KeyError: dbus.String(u'1285c87a-1b13-4463-9e19-87f0ad8e1828',
variant_level=1)

This is very mysterious to me.

Please help,
Ben

Log:

groupadd: group 10001 exists
Creating mailbox file: File exists

(sugar-activity:1141): libgnomevfs-WARNING **: Unable to create ~/.gnome2
directory: Permission denied

(sugar-activity:1141): libgnomevfs-WARNING **: gnome_vfs_init(): .gnome
does not exist
Archive:  /home/olpc/isolation/1/uid_to_home_dir/10004/tmp/1205022091.xoj
~   creating:
/home/olpc/isolation/1/uid_to_home_dir/10004/instance/2a21b50d415bff49d9cac7b55cc87ab4887cc550/
~ extracting:
/home/olpc/isolation/1/uid_to_home_dir/10004/instance/2a21b50d415bff49d9cac7b55cc87ab4887cc550/preview/2a21b50d415bff49d9cac7b55cc87ab4887cc550

~ extracting:
/home/olpc/isolation/1/uid_to_home_dir/10004/instance/2a21b50d415bff49d9cac7b55cc87ab4887cc550/_metadata.json

~ extracting:
/home/olpc/isolation/1/uid_to_home_dir/10004/instance/2a21b50d415bff49d9cac7b55cc87ab4887cc550/2a21b50d415bff49d9cac7b55cc87ab4887cc550

caution: excluded filename not matched:  mimetype
- ---------------------------------------------------------------------------
<class 'dbus.exceptions.DBusException'>   Traceback (most recent call last)

/home/olpc/Activities/Distribute.activity/distribute.py in
_download_result_cb(self=<DistributeActivity object at 0x86ffbbc
(SugarActivity at 0x8790000)>, getter=<GlibURLDownloader object at
0x83c2504 (sugar+network+GlibURLDownloader at 0x87c7190)>,
tempfile='/home/olpc/isolation/1/uid_to_home_dir/10004/tmp/1205022091.xoj',
suggested_name='1205022091.xoj', tube_id=dbus.UInt32(463787902L))
~    113         self._bundle =
journalentrybundle.JournalEntryBundle(tempfile)
~    114         _logger.debug("Saving %s to datastore...", tempfile)
- --> 115         self._bundle.install()
~        self._bundle.install = <bound method JournalEntryBundle.install of
<journalentrybundle.JournalEntryBundle instance at 0x83c0d4c>>
~    116         self._load_document()
~    117

/home/olpc/Activities/Distribute.activity/journalentrybundle.py in
install(self=<journalentrybundle.JournalEntryBundle instance at 0x83c0d4c>)
~    108                 jobject.metadata['uid'] = ''
~    109                 jobject.file_path = os.path.join(install_dir, uid,
uid)
- --> 110                 datastore.write(jobject)
~        global datastore.write = <function write at 0x84ba374>
~        jobject = <sugar.datastore.datastore.DSObject object at 0x83c0e4c>
~    111             finally:
~    112                 jobject.destroy()

/usr/lib/python2.5/site-packages/sugar/datastore/datastore.py in
write(ds_object=<sugar.datastore.datastore.DSObject object at 0x83c0e4c>,
update_mtime=True, transfer_ownership=False, reply_handler=None,
error_handler=None, timeout=-1)
~    255         ds_object.object_id = dbus_helpers.create(properties,
~    256                                                   file_path,
- --> 257 
transfer_ownership)
~        transfer_ownership = False
~    258         # TODO: register the object for updates
~    259     logging.debug('Written object %s to the datastore.' %
ds_object.object_id)

/usr/lib/python2.5/site-packages/sugar/datastore/dbus_helpers.py in
create(properties={'activity': 'org.laptop.AbiWordActivity',
'activity_id': '2a21b50d415bff49d9cac7b55cc87ab4887cc550', 'icon-color':
'#5E008C,#AC32FF', 'keep': '0', 'mime_type':
'application/vnd.oasis.opendocument.text', 'mountpoint':
'1285c87a-1b13-4463-9e19-87f0ad8e1828', 'mtime':
'2008-03-09T00:21:42.626965', 'preview':
dbus.ByteArray('\x89PNG\r\n\x1a\n\x00\x00\x00\rI...{\xf8\x0f\xe6\x93\x00\x00\x00\x00IEND\xaeB`\x82'),
'share-scope': 'private', 'timestamp': 1205022102, ...},
filename='/home/olpc/isolation/1/uid_to_home_dir/10004/ins...887cc550/2a21b50d415bff49d9cac7b55cc87ab4887cc550',
transfer_ownership=False)
~     43 def create(properties, filename, transfer_ownership=False):
~     44     object_id =
_get_data_store().create(dbus.Dictionary(properties), filename,
- ---> 45                     transfer_ownership)
~        transfer_ownership = False
~     46     logging.debug('dbus_helpers.create: ' + object_id)
~     47     return object_id

/usr/lib/python2.5/site-packages/dbus/proxies.py in
__call__(self=<dbus.proxies._ProxyMethod instance at 0x83c0eac>,
*args=(dbus.Dictionary({'activity_id':
'2a21b50d415bff4...on/vnd.oasis.opendocument.text'}, signature=None),
'/home/olpc/isolation/1/uid_to_home_dir/10004/ins...887cc550/2a21b50d415bff49d9cac7b55cc87ab4887cc550',
False), **keywords={})
~    134                                                   introspect_sig,
~    135                                                   args,
- --> 136                                                   **keywords)
~        keywords = {}
~    137
~    138     def call_async(self, *args, **keywords):

/usr/lib/python2.5/site-packages/dbus/connection.py in
call_blocking(self=<dbus._dbus.SessionBus (session) at 0x8423ecc>,
bus_name=dbus.UTF8String(':1.6'),
object_path='/org/laptop/sugar/DataStore',
dbus_interface='org.laptop.sugar.DataStore', method='create',
signature=u'a{sv}sb', args=(dbus.Dictionary({'activity_id':
'2a21b50d415bff4...on/vnd.oasis.opendocument.text'}, signature=None),
'/home/olpc/isolation/1/uid_to_home_dir/10004/ins...887cc550/2a21b50d415bff49d9cac7b55cc87ab4887cc550',
False), timeout=-1.0, utf8_strings=False, byte_arrays=False)
~    605         # make a blocking call
~    606         reply_message = self.send_message_with_reply_and_block(
- --> 607             message, timeout)
~        message = <dbus.lowlevel.MethodCallMessage object at 0x848b7f0>
~        timeout = -1.0
~    608         args_list = reply_message.get_args_list(**get_args_opts)
~    609         if len(args_list) == 0:

<class 'dbus.exceptions.DBusException'>:
org.freedesktop.DBus.Python.KeyError: Traceback (most recent call last):
~  File "/usr/lib/python2.5/site-packages/dbus/service.py", line 692, in
_message_cb
~    retval = candidate_method(self, *args, **keywords)
~  File "/usr/lib/python2.5/site-packages/olpc/datastore/datastore.py",
line 211, in create
~    mp = self._resolveMountpoint(props)
~  File "/usr/lib/python2.5/site-packages/olpc/datastore/datastore.py",
line 177, in _resolveMountpoint
~    mp = self.mountpoints[mountpoint]
KeyError: dbus.String(u'1285c87a-1b13-4463-9e19-87f0ad8e1828',
variant_level=1)

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFH0zLGUJT6e6HFtqQRAhc3AKCZ68tJUHnwPXYePjT3ca8S8L2iGwCfSnQU
V3epfn5hdDfFmS7vfS97JoM=
=du0j
-----END PGP SIGNATURE-----


More information about the Sugar mailing list