Opened 12 years ago

Closed 12 years ago

#1331 closed defect (fixed)

Rainbow problem with Turtle Art save image

Reported by: walter Owned by: walter
Priority: Unspecified by Maintainer Milestone: Unspecified
Component: Turtleart Version: Unspecified
Severity: Unspecified Keywords:
Cc: Distribution/OS: Unspecified
Bug Status: Unconfirmed

Description

v63 doesn't save images with Rainbow enabled. Permission denied trying to read /home/olpc/isolation/1/uid_to_home_dir/10002/tmp/tmp_45lE6.png while writing to the datastore.

Not sue if this is a datastore problem, a Rainbow problem, or a TA problem... will investigate further.

Change History (2)

comment:1 Changed 12 years ago by walter

reserved credentials (10002, 10003)
adding group: /usr/sbin/groupadd -o -g 10003 10003
groupadd: group 10003 exists
adding user: /usr/sbin/useradd -m -u 10002 -g 10003 -c org.laptop.TurtleArtActivity.10002 -d /home/olpc/isolation/1/uid_to_home_dir/10002 10002
Creating mailbox file: File exists
dropping privilege to (10002, 10003)
chdir to /home/olpc/Activities/TurtleArt.activity
umask(0)
about to execve
argv: dbus.Array([dbus.UTF8String('sugar-activity'), dbus.UTF8String('TurtleArtActivity.TurtleArtActivity'), dbus.UTF8String('-b'), dbus.UTF8String('org.laptop.TurtleArtActivity'), dbus.UTF8String('-a'), dbus.UTF8String('40c63b5db58eb69697dc05100b7755df60ab7b83')], signature=dbus.Signature('s'))
env: dbus.Dictionary({dbus.UTF8String('LOGNAME'): dbus.UTF8String('olpc'), 'USER': '10002', dbus.UTF8String('HOME'): '/home/olpc/isolation/1/uid_to_home_dir/10002', dbus.UTF8String('PATH'): dbus.UTF8String('/home/olpc/Activities/TurtleArt.activity/bin:/usr/bin:/bin'), dbus.UTF8String('DISPLAY'): dbus.UTF8String(':0'), dbus.UTF8String('LANG'): dbus.UTF8String('en_US.UTF-8'), dbus.UTF8String('SHELL'): dbus.UTF8String('/bin/bash'), dbus.UTF8String('TZ'): dbus.UTF8String('UTC'), dbus.UTF8String('XDG_SESSION_COOKIE'): dbus.UTF8String('142965e3803eaf3413006c0038435a92-1252667317.901457-1619472273'), dbus.UTF8String('SESSION_MANAGER'): dbus.UTF8String('local/unix:@/tmp/.ICE-unix/1272,unix/unix:/tmp/.ICE-unix/1272'), dbus.UTF8String('SHLVL'): dbus.UTF8String('1'), dbus.UTF8String('ICEAUTHORITY'): '/home/olpc/isolation/1/uid_to_home_dir/10002/.ICEauthority', dbus.UTF8String('WINDOWPATH'): dbus.UTF8String('3'), dbus.UTF8String('SUGAR_BUNDLE_PATH'): dbus.UTF8String('/home/olpc/Activities/TurtleArt.activity'), dbus.UTF8String('SUGAR_LOCALEDIR'): dbus.UTF8String('/home/olpc/Activities/TurtleArt.activity/locale'), dbus.UTF8String('SUGAR_THEME'): dbus.UTF8String('sugar-xo'), dbus.UTF8String('SUGAR_ACTIVITY_ROOT'): '/home/olpc/isolation/1/uid_to_home_dir/10002', dbus.UTF8String('GTK2_RC_FILES'): dbus.UTF8String('/usr/share/sugar/data/sugar-xo.gtkrc'), dbus.UTF8String('SUGAR_BUNDLE_ID'): dbus.UTF8String('org.laptop.TurtleArtActivity'), dbus.UTF8String('DBUS_SESSION_BUS_ADDRESS'): dbus.UTF8String('unix:path=/tmp/olpc-session-bus,guid=3a82784f5588854dd107de0c4aaa2fb6'), 'TMPDIR': '/home/olpc/isolation/1/uid_to_home_dir/10002/tmp', dbus.UTF8String('XAUTHORITY'): '/home/olpc/isolation/1/uid_to_home_dir/10002/.Xauthority', dbus.UTF8String('GTK_IM_MODULE'): dbus.UTF8String('gtk-im-context-simple'), dbus.UTF8String('XSERVERAUTH'): dbus.UTF8String('/var/tmp/olpc-auth/.Xserverauth'), dbus.UTF8String('PWD'): dbus.UTF8String('/home/olpc')}, signature=dbus.Signature('ss'))
closing all fds but (1, 2)
{dbus.UTF8String('LOGNAME'): dbus.UTF8String('olpc'), 'USER': '10002', 'PATH': dbus.UTF8String('/home/olpc/Activities/TurtleArt.activity/bin:/usr/bin:/bin'), dbus.UTF8String('HOME'): '/home/olpc/isolation/1/uid_to_home_dir/10002', 'DISPLAY': dbus.UTF8String(':0'), 'LANG': dbus.UTF8String('en_US.UTF-8'), 'TERM': 'linux', dbus.UTF8String('SHELL'): dbus.UTF8String('/bin/bash'), dbus.UTF8String('TZ'): dbus.UTF8String('UTC'), 'XAUTHORITY': '/home/olpc/isolation/1/uid_to_home_dir/10002/.Xauthority', dbus.UTF8String('SESSION_MANAGER'): dbus.UTF8String('local/unix:@/tmp/.ICE-unix/1272,unix/unix:/tmp/.ICE-unix/1272'), dbus.UTF8String('SHLVL'): dbus.UTF8String('1'), 'ICEAUTHORITY': '/home/olpc/isolation/1/uid_to_home_dir/10002/.ICEauthority', dbus.UTF8String('WINDOWPATH'): dbus.UTF8String('3'), dbus.UTF8String('SUGAR_BUNDLE_PATH'): dbus.UTF8String('/home/olpc/Activities/TurtleArt.activity'), dbus.UTF8String('SUGAR_LOCALEDIR'): dbus.UTF8String('/home/olpc/Activities/TurtleArt.activity/locale'), dbus.UTF8String('SUGAR_THEME'): dbus.UTF8String('sugar-xo'), 'UPSTART_JOB': 'rainbow', 'UPSTART_JOB_ID': '3', dbus.UTF8String('SUGAR_BUNDLE_ID'): dbus.UTF8String('org.laptop.TurtleArtActivity'), 'DBUS_SESSION_BUS_ADDRESS': dbus.UTF8String('unix:path=/tmp/olpc-session-bus,guid=3a82784f5588854dd107de0c4aaa2fb6'), 'TMPDIR': '/home/olpc/isolation/1/uid_to_home_dir/10002/tmp', dbus.UTF8String('XDG_SESSION_COOKIE'): dbus.UTF8String('142965e3803eaf3413006c0038435a92-1252667317.901457-1619472273'), dbus.UTF8String('GTK_IM_MODULE'): dbus.UTF8String('gtk-im-context-simple'), dbus.UTF8String('XSERVERAUTH'): dbus.UTF8String('/var/tmp/olpc-auth/.Xserverauth'), dbus.UTF8String('SUGAR_ACTIVITY_ROOT'): '/home/olpc/isolation/1/uid_to_home_dir/10002', dbus.UTF8String('PWD'): dbus.UTF8String('/home/olpc'), 'UPSTART_EVENT': 'started', 'GTK2_RC_FILES': dbus.UTF8String('/usr/share/sugar/data/sugar-xo.gtkrc')}
OIL: ERROR liboiltest.c 361: oil_test_check_impl(): illegal instruction in mmxCombineAddU

(rainbow-daemon:1990): libgnomevfs-WARNING : Unable to create ~/.gnome2 directory: Permission denied

(rainbow-daemon:1990): libgnomevfs-WARNING : gnome_vfs_init(): .gnome does not exist
GConf Error: Failed to contact configuration server; some possible causes are that you need to enable TCP/IP networking for ORBit, or you have stale NFS locks due to a system crash. See http://www.gnome.org/projects/gconf/ for information. (Details - 2: IOR file '/tmp/gconfd-root/lock/ior' not opened successfully, no gconfd located: No such file or directory)
OIL: ERROR liboiltest.c 361: oil_test_check_impl(): illegal instruction in mmxCombineAddU

(rainbow-daemon:1167): libgnomevfs-WARNING : Unable to create ~/.gnome2 directory: Permission denied

(rainbow-daemon:1167): libgnomevfs-WARNING : gnome_vfs_init(): .gnome does not exist
GConf Error: Failed to contact configuration server; some possible causes are that you need to enable TCP/IP networking for ORBit, or you have stale NFS locks due to a system crash. See http://www.gnome.org/projects/gconf/ for information. (Details - 2: IOR file '/tmp/gconfd-root/lock/ior' not opened successfully, no gconfd located: No such file or directory)
/usr/lib/python2.5/site-packages/sugar/graphics/combobox.py:93: PangoWarning: error opening config file '/root/.pangorc': Permission denied

self._model.append([action_id, text, pixbuf, False])

1252758368.332649 WARNING root: No gtk.AccelGroup in the top level window.
1252758368.389691 WARNING root: No gtk.AccelGroup in the top level window.

/usr/lib/python2.5/site-packages/sugar/graphics/window.py:116: GtkWarning: gtk_container_remove: assertion `GTK_IS_TOOLBAR (container)
widget->parent == GTK_WIDGET (container)' failed

self._vbox.remove(self.toolbox)

1252758368.447795 WARNING root: No gtk.AccelGroup in the top level window.
1252758368.507914 WARNING root: No gtk.AccelGroup in the top level window.
1252758368.540734 WARNING root: No gtk.AccelGroup in the top level window.
1252758368.602250 WARNING root: No gtk.AccelGroup in the top level window.
1252758368.631614 WARNING root: No gtk.AccelGroup in the top level window.
1252758368.660659 WARNING root: No gtk.AccelGroup in the top level window.
1252758368.719291 WARNING root: No gtk.AccelGroup in the top level window.
1252758368.745157 WARNING root: No gtk.AccelGroup in the top level window.
1252758368.771132 WARNING root: No gtk.AccelGroup in the top level window.
1252758368.829869 WARNING root: No gtk.AccelGroup in the top level window.
1252758368.918193 WARNING root: No gtk.AccelGroup in the top level window.
1252758368.943925 WARNING root: No gtk.AccelGroup in the top level window.
trying ... /home/olpc/Activities/TurtleArt.activity/images/turtlemask.png
trying ... /home/olpc/Activities/TurtleArt.activity/images/penmask.png
trying ... /home/olpc/Activities/TurtleArt.activity/images/numbersmask.png
trying ... /home/olpc/Activities/TurtleArt.activity/images/sensorsmask.png
trying ... /home/olpc/Activities/TurtleArt.activity/images/flowmask.png
trying ... /home/olpc/Activities/TurtleArt.activity/images/myblocksmask.png
trying ... /home/olpc/Activities/TurtleArt.activity/images/templatesmask.png
(rainbow-daemon:1167): DEBUG: Got client ID "1050740f74e7495cf11252758373209300000012720013"
(rainbow-daemon:1167): DEBUG: Setting initial properties
(rainbow-daemon:1167): DEBUG: Received SaveYourself(SmSaveLocal, !Shutdown, SmInteractStyleNone, !Fast) in state idle
(rainbow-daemon:1167): DEBUG: Sending SaveYourselfDone(True) for initial SaveYourself
(rainbow-daemon:1167): DEBUG: Received SaveComplete message in state save-yourself-done
['arc', 90.0, 100.0]
['arc', 90.0, 100.0]
['arc', 90.0, 100.0]
['arc', 90.0, 100.0]


DBusException Traceback (most recent call last)

/home/olpc/Activities/TurtleArt.activity/TurtleArtActivity.py in do_saveimage(self=<SaveAsToolbar object at 0xa4c4edc (GtkToolbar at 0xa5019f8)>, button=<ToolButton object at 0xa4c6b6c (SugarToolButton at 0xa74d130)>)

681 dsobject.set_file_path(pngfile)
682

--> 683 datastore.write(dsobject)

global datastore.write = <function write at 0xb60486f4>
dsobject = <sugar.datastore.datastore.DSObject object at 0xa4d9bec>

684 dsobject.destroy()
685 gobject.timeout_add(250,self.saveimage.set_icon, "image-saveoff")

/usr/lib/python2.5/site-packages/sugar/datastore/datastore.py in write(ds_object=<sugar.datastore.datastore.DSObject object at 0xa4d9bec>, update_mtime=True, transfer_ownership=False, reply_handler=None, error_handler=None, timeout=-1)

271 ds_object.object_id = dbus_helpers.create(properties,
272 file_path,

--> 273 transfer_ownership)

transfer_ownership = False

274 # TODO: register the object for updates
275 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': , 'activity_id': , 'icon-color': '#FF2B34,#F8E800', 'mime_type': 'image/png', 'mtime': '2009-09-12T12:26:29.552559', 'timestamp': 1252758389, 'title': 'Turtle Art Activity image', 'title_set_by_user': }, filename='/home/olpc/isolation/1/uid_to_home_dir/10002/tmp/tmp_4SlE6.png', transfer_ownership=False)

40 def create(properties, filename, transfer_ownership=False):
41 object_id = _get_data_store().create(dbus.Dictionary(properties), filename,

---> 42 transfer_ownership)

transfer_ownership = False

43 logging.debug('dbus_helpers.create: ' + object_id)
44 return object_id

/usr/lib/python2.5/site-packages/dbus/proxies.py in call(self=<dbus.proxies._ProxyMethod instance at 0xa4d996c>, *args=(dbus.Dictionary({'activity_id': , 'title_set_b...2559', 'mime_type': 'image/png'}, signature=None), '/home/olpc/isolation/1/uid_to_home_dir/10002/tmp/tmp_4SlE6.png', False), keywords={})

138 introspect_sig,
139 args,

--> 140 keywords)

keywords = {}

141
142 def call_async(self, *args, keywords):

/usr/lib/python2.5/site-packages/dbus/connection.py in call_blocking(self=<dbus._dbus.SessionBus (session) at 0xa47938c>, bus_name=dbus.UTF8String(':1.4'), object_path='/org/laptop/sugar/DataStore', dbus_interface='org.laptop.sugar.DataStore', method='create', signature=u'a{sv}sb', args=(dbus.Dictionary({'activity_id': , 'title_set_b...2559', 'mime_type': 'image/png'}, signature=None), '/home/olpc/isolation/1/uid_to_home_dir/10002/tmp/tmp_4SlE6.png', False), timeout=-1.0, utf8_strings=False, byte_arrays=False)

628 # make a blocking call
629 reply_message = self.send_message_with_reply_and_block(

--> 630 message, timeout)

message = <dbus.lowlevel.MethodCallMessage object at 0xa4b0df0>
timeout = -1.0

631 args_list = reply_message.get_args_list(get_args_opts)
632 if len(args_list) == 0:

DBusException: org.freedesktop.DBus.Python.IOError: Traceback (most recent call last):

File "/usr/lib/python2.5/site-packages/dbus/service.py", line 702, in _message_cb

retval = candidate_method(self, *args, keywords)

File "/usr/lib/python2.5/site-packages/olpc/datastore/datastore.py", line 195, in create

completion=lambda *args: self._create_completion(async_cb, async_err_cb, *args))

File "/usr/lib/python2.5/site-packages/olpc/datastore/backingstore.py", line 582, in create_async

filelike = open(filelike, "r")

IOError: [Errno 13] Permission denied: dbus.String(u'/home/olpc/isolation/1/uid_to_home_dir/10002/tmp/tmp_4SlE6.png')

comment:2 Changed 12 years ago by walter

  • Resolution set to fixed
  • Status changed from new to closed

Did a work-around in v66 (not yet in git) by opening the file in the instance directory explicitly (no longer using tmpfile). Somewhat unsatisfactory because I don't understand the root cause of the problem, but otherwise, it works.

Note: See TracTickets for help on using tickets.