Opened 6 years ago

Closed 4 years ago

Last modified 4 years ago

#9022 closed defect (fixed)

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:
Blocked By: Blocking:
Deployments affected: Action Needed: test in build
Verified: no

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 (5)

comment:1 Changed 6 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

comment:2 Changed 6 years ago by thomaswamm

  • Action Needed 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.

comment:3 Changed 6 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.

comment:4 Changed 4 years ago by godiard

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

Fixed in 28

comment:5 Changed 4 years ago by godiard

  • Action Needed 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.