Ticket #9022 (closed defect: fixed)

Opened 5 years ago

Last modified 3 years ago

Copying a selection from an image within Paint fails

Reported by: HoboPrimate Owned by: alexandre
Priority: normal Milestone: 10.1.3
Component: paint/drawing-activity (oficina) Version: not specified
Keywords: cjbfor9.1.0 Cc:
Action Needed: test in build Verified: no
Deployments affected: Blocked By:
Blocking:

Description

Build 8.2 Paint 23

Take a screenshot of the screen, and open it up with paint. Select a part of the image with the select tool, and click the copy button. A new grayed out picture-shaped icon appears in the clipboard, but it can't be manipulated. The copy fails.

Pasting logs of Paint and shell.log (this last one seems the most telling to me).

Log of Paint: "

reserved credentials (10000, 10011) adding group: /usr/sbin/groupadd -o -g 10011 10011 adding user: /usr/sbin/useradd -m -u 10000 -g 10011 -c org.laptop.Oficina.10000 -d /home/olpc/isolation/1/uid_to_home_dir/10000 10000 Criar ficheiro mailbox: File exists dropping privilege to (10000, 10011) chdir to /home/olpc/Activities/Paint.activity umask(0) about to execve argv: dbus.Array([dbus.UTF8String('sugar-activity'), dbus.UTF8String('OficinaActivity.OficinaActivity'), dbus.UTF8String('-b'), dbus.UTF8String('org.laptop.Oficina'), dbus.UTF8String('-a'), dbus.UTF8String('b82951ee932af84954e226cae6f211acbbd6ea18'), dbus.UTF8String('-o'), dbus.UTF8String('dae1e98a-c006-4ba0-a0a5-74ca83b0c964')], signature=dbus.Signature('s')) env: dbus.Dictionary({dbus.UTF8String('LOGNAME'): dbus.UTF8String('olpc'), 'USER': '10000', dbus.UTF8String('HOME'): '/home/olpc/isolation/1/uid_to_home_dir/10000', dbus.UTF8String('PATH'): dbus.UTF8String('/home/olpc/Activities/Paint.activity/bin:/usr/share/sugar/activities/Journal.activity/bin:/usr/bin:/bin'), dbus.UTF8String('DISPLAY'): dbus.UTF8String(':0'), dbus.UTF8String('LANG'): dbus.UTF8String('pt_PT.utf8'), dbus.UTF8String('SHELL'): dbus.UTF8String('/bin/bash'), dbus.UTF8String('TZ'): dbus.UTF8String('UTC'), dbus.UTF8String('XDG_SESSION_COOKIE'): dbus.UTF8String('7b1082944c24c63e6d48e7034920b9ef-1227148040.189243-1854300257'), dbus.UTF8String('SESSION_MANAGER'): dbus.UTF8String('local/unix:@/tmp/.ICE-unix/1231,unix/unix:/tmp/.ICE-unix/1231'), dbus.UTF8String('SHLVL'): dbus.UTF8String('1'), dbus.UTF8String('ICEAUTHORITY'): '/home/olpc/isolation/1/uid_to_home_dir/10000/.ICEauthority', dbus.UTF8String('WINDOWPATH'): dbus.UTF8String('3'), dbus.UTF8String('SUGAR_BUNDLE_NAME'): dbus.UTF8String('Di\xc3\xa1rio'), dbus.UTF8String('SUGAR_BUNDLE_PATH'): dbus.UTF8String('/home/olpc/Activities/Paint.activity'), dbus.UTF8String('SUGAR_LOCALEDIR'): dbus.UTF8String('/home/olpc/Activities/Paint.activity/locale'), dbus.UTF8String('SUGAR_THEME'): dbus.UTF8String('sugar-xo'), dbus.UTF8String('SUGAR_ACTIVITY_ROOT'): '/home/olpc/isolation/1/uid_to_home_dir/10000', dbus.UTF8String('GTK2_RC_FILES'): dbus.UTF8String('/usr/share/sugar/data/sugar-xo.gtkrc'), dbus.UTF8String('SUGAR_BUNDLE_ID'): dbus.UTF8String('org.laptop.Oficina'), dbus.UTF8String('DBUS_SESSION_BUS_ADDRESS'): dbus.UTF8String('unix:path=/tmp/olpc-session-bus,guid=f85edeedea7a5ef4f06f94d94924cb08'), 'TMPDIR': '/home/olpc/isolation/1/uid_to_home_dir/10000/tmp', dbus.UTF8String('XAUTHORITY'): '/home/olpc/isolation/1/uid_to_home_dir/10000/.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'), dbus.UTF8String('SUGAR_BUNDLE_VERSION'): dbus.UTF8String('99')}, signature=dbus.Signature('ss')) closing all fds but (1, 2) {dbus.UTF8String('LOGNAME'): dbus.UTF8String('olpc'), 'USER': '10000', 'PATH': dbus.UTF8String('/home/olpc/Activities/Paint.activity/bin:/usr/share/sugar/activities/Journal.activity/bin:/usr/bin:/bin'), dbus.UTF8String('HOME'): '/home/olpc/isolation/1/uid_to_home_dir/10000', 'DISPLAY': dbus.UTF8String(':0'), 'LANG': dbus.UTF8String('pt_PT.utf8'), 'TERM': 'linux', dbus.UTF8String('SHELL'): dbus.UTF8String('/bin/bash'), dbus.UTF8String('TZ'): dbus.UTF8String('UTC'), 'XAUTHORITY': '/home/olpc/isolation/1/uid_to_home_dir/10000/.Xauthority', dbus.UTF8String('SESSION_MANAGER'): dbus.UTF8String('local/unix:@/tmp/.ICE-unix/1231,unix/unix:/tmp/.ICE-unix/1231'), dbus.UTF8String('SHLVL'): dbus.UTF8String('1'), 'ICEAUTHORITY': '/home/olpc/isolation/1/uid_to_home_dir/10000/.ICEauthority', dbus.UTF8String('WINDOWPATH'): dbus.UTF8String('3'), dbus.UTF8String('SUGAR_BUNDLE_NAME'): dbus.UTF8String('Di\xc3\xa1rio'), dbus.UTF8String('SUGAR_BUNDLE_PATH'): dbus.UTF8String('/home/olpc/Activities/Paint.activity'), dbus.UTF8String('SUGAR_LOCALEDIR'): dbus.UTF8String('/home/olpc/Activities/Paint.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.Oficina'), 'DBUS_SESSION_BUS_ADDRESS': dbus.UTF8String('unix:path=/tmp/olpc-session-bus,guid=f85edeedea7a5ef4f06f94d94924cb08'), 'TMPDIR': '/home/olpc/isolation/1/uid_to_home_dir/10000/tmp', dbus.UTF8String('XDG_SESSION_COOKIE'): dbus.UTF8String('7b1082944c24c63e6d48e7034920b9ef-1227148040.189243-1854300257'), 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/10000', dbus.UTF8String('PWD'): dbus.UTF8String('/home/olpc'), dbus.UTF8String('SUGAR_BUNDLE_VERSION'): dbus.UTF8String('99'), 'UPSTART_EVENT': 'started', 'GTK2_RC_FILES': dbus.UTF8String('/usr/share/sugar/data/sugar-xo.gtkrc')} /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])

1227149124.231145 WARNING root: No gtk.AccelGroup in the top level window. 1227149124.256431 WARNING root: No gtk.AccelGroup in the top level window. {'line shape': 'circle', 'name': 'pencil', 'line size': 2, 'fill color': None, 'vertices': None, 'stroke color': None, 'fill': True} ** (rainbow-daemon:1158): DEBUG: Got client ID "10f4f53e82ec289c7122714912912072700000012310002" ** (rainbow-daemon:1158): DEBUG: Setting initial properties ** (rainbow-daemon:1158): DEBUG: Received SaveYourself(SmSaveLocal, !Shutdown, SmInteractStyleNone, !Fast) in state idle ** (rainbow-daemon:1158): DEBUG: Sending SaveYourselfDone(True) for initial SaveYourself ** (rainbow-daemon:1158): DEBUG: Received SaveComplete message in state save-yourself-done {'line shape': None, 'name': 'marquee-rectangular', 'line size': None, 'fill color': None, 'vertices': None, 'stroke color': <GdkColor at 0xa78f170>, 'fill': None}


GError Traceback (most recent call last)

/home/olpc/Activities/Paint.activity/toolbox.py in _paste_cb(self=<DrawEditToolbar object at 0xb608634c (GtkToolbar at 0xa3a70a8)>, widget=<ToolButton object at 0xb608b784 (SugarToolButton at 0xa65a300)>, data=None)

161 162 def _paste_cb(self, widget, data=None):

--> 163 self._activity.area.past(self._activity.area)

self._activity.area.past = <bound method Area.past of <Area object at 0xb60861e4 (Area+Area at 0xa2928c0)>> self._activity.area = <Area object at 0xb60861e4 (Area+Area at 0xa2928c0)>

164 165 def _on_signal_undo_cb(self, widget, data=None):

/home/olpc/Activities/Paint.activity/Area.py in past(self=<Area object at 0xb60861e4 (Area+Area at 0xa2928c0)>, widget=<Area object at 0xb60861e4 (Area+Area at 0xa2928c0)>)

705 self.emit('select') 706 else:

--> 707 self.loadImage(tempPath, self, True)

self.loadImage = <bound method Area.loadImage of <Area object at 0xb60861e4 (Area+Area at 0xa2928c0)>> tempPath = '/tmp/tempFile' self = <Area object at 0xb60861e4 (Area+Area at 0xa2928c0)> global True = undefined

708 logging.debug('Area.past(self): Load from clipboard fails, loading from tempPatch') 709

/home/olpc/Activities/Paint.activity/Area.py in loadImage(self=<Area object at 0xb60861e4 (Area+Area at 0xa2928c0)>, name='/tmp/tempFile', widget=<Area object at 0xb60861e4 (Area+Area at 0xa2928c0)>, load_selected=True)

958 self.enableUndo(widget) 959 else :

--> 960 pixbuf = gtk.gdk.pixbuf_new_from_file(name)

pixbuf = undefined global gtk.gdk.pixbuf_new_from_file = <built-in function pixbuf_new_from_file> name = '/tmp/tempFile'

961 size = (int)(pixbuf.get_width()), (int)(pixbuf.get_height()) 962 #self.getout(True,widget)

GError: Falha ao abrir ficheiro '/tmp/tempFile': No such file or directory

"

Log of shell.log: " DBusException Traceback (most recent call last)

/usr/share/sugar/shell/view/frame/clipboardpanelwindow.py in _owner_change_cb(self=<ClipboardPanelWindow object at 0x92103ec (SugarFrameWindow at 0x9279c28)>, clipboard=<gtk.Clipboard object at 0x99325f4 (GtkClipboard at 0x9285f28)>, event=<GdkEvent at 0x9907da0>)

69 self._add_selection(key, selection) 70

---> 71 cb_service.set_object_percent(key, percent=100)

cb_service.set_object_percent = <bound method ClipboardService.set_object_percent of <ClipboardService object at 0x9210a7c (sugar+clipboard+clipboardservice+ClipboardService at 0x9293d50)>> key = '/org/laptop/Clipboard/Objects/10' global percent = undefined

72 73 def _add_selection(self, key, selection):

/usr/lib/python2.5/site-packages/sugar/clipboard/clipboardservice.py in set_object_percent(self=<ClipboardService object at 0x9210a7c (sugar+cli...+clipboardservice+ClipboardService at 0x9293d50)>, object_id='/org/laptop/Clipboard/Objects/10', percent=100)

185 """ 186 self._dbus_service.set_object_percent(

--> 187 dbus.ObjectPath(object_id), percent)

global dbus.ObjectPath = <type 'dbus.ObjectPath'> object_id = '/org/laptop/Clipboard/Objects/10' percent = 100

188 189 def get_object(self, object_id):

/usr/lib/python2.5/site-packages/dbus/proxies.py in call(self=<dbus.proxies._ProxyMethod instance at 0x9c1054c>, *args=(dbus.ObjectPath('/org/laptop/Clipboard/Objects/10'), 100), **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 0x91beb0c>, bus_name='org.laptop.Clipboard', object_path='/org/laptop/Clipboard', dbus_interface='org.laptop.Clipboard', method='set_object_percent', signature=u'oi', args=(dbus.ObjectPath('/org/laptop/Clipboard/Objects/10'), 100), 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 0x958a810> 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/share/sugar/service/clipboardservice.py", line 123, in set_object_percent

new_uri = self._copy_file(format.get_data())

File "/usr/share/sugar/service/clipboardservice.py", line 201, in _copy_file

shutil.copyfile(uri.path, new_file_path)

File "/usr/lib/python2.5/shutil.py", line 46, in copyfile

fsrc = open(src, 'rb')

IOError: [Errno 13] Permission denied: '/home/olpc/isolation/1/uid_to_home_dir/10000/instance/tmpZMVf_r.png'

"

Change History

Changed 5 years ago by HoboPrimate

  • summary changed from After making selection of png image, copying it fails to Copying a selection from an image within Paint fails

Changed 5 years ago by thomaswamm

  • next_action changed from never set to diagnose

Reproduced on my XO, same Paint-23 and build 8.2-767. My shell.log looks similar to the above.

Changed 5 years ago by mstone-xmlrpc

  • keywords cjbfor9.1.0 added
  • milestone changed from 8.2.1 to 9.1.0

Pushing out to 9.1.0, per edmcnierney's request.

Changed 4 years ago by godiard

  • status changed from new to closed
  • resolution set to fixed

Fixed in 28

Changed 3 years ago by godiard

  • next_action changed from diagnose to test in build
  • milestone changed from 9.1.0-cancelled to 10.1.3
Note: See TracTickets for help on using tickets.