After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 462044 - Orca failed to put the zoom area to display :0.1
Orca failed to put the zoom area to display :0.1
Status: RESOLVED FIXED
Product: gnome-mag
Classification: Deprecated
Component: magnifier-utility
0.14.x
Other All
: Normal major
: ---
Assigned To: Orca Maintainers
Orca Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-07-31 07:53 UTC by Tim Miao
Modified: 2007-08-03 03:55 UTC
See Also:
GNOME target: ---
GNOME version: 2.19/2.20


Attachments
xorg configuration file (3.35 KB, text/plain)
2007-07-31 07:53 UTC, Tim Miao
Details

Description Tim Miao 2007-07-31 07:53:26 UTC
Please describe the problem:
This bug could be found with two physical display device. Orca failed to bring the magnifier up and put zoom area to another display.

Steps to reproduce:
1. Prepare a box with two physical monitor.
2. Configure display to seperate X screen.
3. Start orca, enable the magnifier, set source display and target display to :0.0 and :0.1, click OK button to reload the orca settings.


Actual results:
Magnifier could not be launched, zoom area won't be put to target display.

Expected results:
Orca could bring up magnifier, and zoom area could be put to target display.

Does this happen every time?
Yes.

Other information:
I attached the xorg.conf file of my testing box.
Comment 1 Tim Miao 2007-07-31 07:53:58 UTC
Created attachment 92768 [details]
xorg configuration file
Comment 2 Willie Walker 2007-07-31 16:37:20 UTC
> Steps to reproduce:
> 1. Prepare a box with two physical monitor.

All Orca is doing in attempting to set the displays is the following in mag.py:

    try:
        _magnifier.TargetDisplay = settings.magTargetDisplay
    except:
        pass

    try:
        _magnifier.SourceDisplay = settings.magSourceDisplay
    except:
        pass

Unfortunately, I don't have a dual head machine to test with.  :-(  Anyone else have one?

In the meantime -- Tim, if you run gnome-mag on its own, are you able to reliably set its source and target displays to different heads?
Comment 3 Joanmarie Diggs (IRC: joanie) 2007-07-31 16:45:01 UTC
 
> Unfortunately, I don't have a dual head machine to test with.  :-(  Anyone else
> have one?

I suppose I can take my tri-head machine and sever a head. ;-)  Currently I'm using Xinerama, and I'm not the best at Xorg stuff... But I see that Tim has posted his (Thanks Tim!!).    I can take a look at it later today/this evening and at least try the things you're suggesting Will.  I suppose it's about time I figure out how magnification works.... :-)

Comment 4 Joanmarie Diggs (IRC: joanie) 2007-07-31 19:05:14 UTC
I'm missing Xinerama already.... <mutter>THREE top panels</mutter>
;-) ;-) ;-) ;-)

What I know so far is this:

1. If I start gnome-mag from a terminal window AND I specify the full screen option along with the source and targets, I can cause the source to be magnified on the target.

e.g. magnifier -f -t :0.0 -s :0.2 works

2. If I don't specify full screen, things don't magnify. 

e.g. magnifier -t :0.0 -s :0.1 (typed within gnome-terminal from :0.2), cause gnome-mag to launch, no magnification to be used, and the following to be output to the terminal window:

** Message: added event source to xfixes cursor-notify connection
** Message: added event source to composite connection
initial viewport 1680 1050

3.  If I don't specify full screen, things might also dump core:

e.g. magnifier -t :0.0 -s :0.2 (typed within gnome-terminal from :0.2)

(magnifier:11417): Bonobo-WARNING **: Assigning a default value to a non readable property 'source-display-screen'

(magnifier:11417): Bonobo-WARNING **: Assigning a default value to a non readable property 'target-display-screen'

** Message: added event source to xfixes cursor-notify connection
** Message: added event source to composite connection
initial viewport 1680 1050

Gdk-ERROR **: The program 'magnifier' received an X Window System error.
This probably reflects a bug in the program.
The error was '167'.
  (Details: serial 580 error_code 167 request_code 152 minor_code 12)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)
aborting...
Trace/breakpoint trap (core dumped)

4.  No matter what I specify for the source and target in Orca, we seem to be failing when setting the source display.
Comment 5 Willie Walker 2007-07-31 19:21:58 UTC
> 3.  If I don't specify full screen, things might also dump core:
> 
> e.g. magnifier -t :0.0 -s :0.2 (typed within gnome-terminal from :0.2)

Does it dump core always if full screen is not used?

> 4.  No matter what I specify for the source and target in Orca, we seem to be
> failing when setting the source display.

Orca launches gnome-mag via Bonobo activation.  The thing that controls how gnome-mag is started is the "exe" line in /usr/lib/bonobo/servers/GNOME_Magnifier.server:

                   type="exe" location="/usr/bin/magnifier --ignore-composite">

So...if "/usr/bin/magnifier --ignore-composite" pukes, then there's nothing Orca can do.  :-(  I've seen some activity regarding gnome-mag bug 452159, though I haven't studied it in enough detail to know if it might be related to this bug.
Comment 6 Joanmarie Diggs (IRC: joanie) 2007-07-31 19:28:22 UTC
> Does it dump core always if full screen is not used?

Nope.  But it doesn't magnify either. See point 2.

> So...if "/usr/bin/magnifier --ignore-composite" pukes, 

Ah, yes, that seems to reliably puke if typed just as you have it.

> Orca can do.  :-(  I've seen some activity regarding gnome-mag bug 452159,
> though I haven't studied it in enough detail to know if it might be related to
> this bug.

Well, I don't know how much sense I'll be able to make of it, but I'll look. :-)  Thanks for the tip!
Comment 7 Joanmarie Diggs (IRC: joanie) 2007-07-31 21:40:42 UTC
The fix for bug 452159 seems to cause the --ignore-composite pukage to no longer be present.  It doesn't seem to help this bug, however.  Still investigating....
Comment 8 Tim Miao 2007-08-01 02:53:35 UTC
Hi Joan and Will,

Thanks for your investigation on this bug. I'd like to give some updates and tips for it here too:

1. For crashing problem
Carlos who is the gnome-mag maintainer has the patch for this, and he has committed this patch. We might need to get the latest trunk code for testing. This might not be reproducible any more.

2. For full screen magnification
This feature depends the xorg composite extension if we do not clarify the source and target screen. So, we need xserver->xorg 7.2 or above (run command: /usr/X11/bin/Xorg -version). At same time, we need to enable composite extension in xorg.conf (like what I've post previous). But if we have dual head configuration, this is not necessary for full screen mag, we could put mag screen to another monitor to implement full screen mag.

Please feel free to comment if it still doesn't work for you.

Thank you!
Comment 9 Joanmarie Diggs (IRC: joanie) 2007-08-01 04:48:55 UTC
Hi Tim.

> This might not be reproducible any more.

I'm using the latest from trunk now.  *The crashing* is no longer a problem, but when Orca attempts to set _magnifier.SourceDisplay, it fails.  I *think* it's failing in magnifier.c somewhere in magnifier_set_property(), but I'm too unfamiliar with gnome-mag. :-(

Tim, if you have the latest everything, can you still reproduce this bug.  If you cannot, I say we call it WORKSFORME and be done with it. :-)  But assuming you still can reproduce it with everything from trunk, I think it would be really handy if Carlos could chime in so I'm adding him to the CC list.   (Thanks in advance Carlos!).

> So, we need xserver->xorg 7.2 or above (run command:
> /usr/X11/bin/Xorg -version).

Here's what I get (numbers don't seem to jive with 7.2....):

X Window System Version 1.3.0
Release Date: 19 April 2007
X Protocol Version 11, Revision 0, Release 1.3
Build Operating System: Linux Ubuntu
Current Operating System: Linux blockhead 2.6.22-9-generic #1 SMP Mon Jul 30 18:00:27 GMT 2007 i686
Build Date: 26 July 2007

> But if we have dual head  configuration, this is not necessary 
> for full screen mag, we could put mag screen to another monitor 
> to implement full screen mag.

That's what I'm attempting to do.  Mind you it's with a tri-head.... But I'm only using one head as the source and another head as the target.  In this environment, if I call magnifier from the command line, I can cause it to magnify the screen to another monitor.  However, if I attempt to do the same thing through Orca, setting the SourceDisplay fails 100% of the time.

Carlos, any ideas?  Thanks!
Comment 10 Carlos Eduardo Rodrigues Diógenes 2007-08-01 14:39:46 UTC
Hi,

I also don't know much about orca internals, so I can't say why I'm getting the following output when using target display different from source display (I'm using a dummy driver to simulate two displays):

Traceback (most recent call last):  File "/usr/lib/python2.5/site-packages/orca/mag.py", line 554, in init    applySettings()  File "/usr/lib/python2.5/site-packages/orca/mag.py", line 302, in applySettings
    magnifierPBag = _magnifier.getProperties()
COMM_FAILURE


Traceback (most recent call last):
  • File "/usr/lib/python2.5/site-packages/orca/orca.py", line 932 in loadUserSettings
    mag.init()
  • File "/usr/lib/python2.5/site-packages/orca/mag.py", line 564 in init
    __setROICenter(0, 0)
  • File "/usr/lib/python2.5/site-packages/orca/mag.py", line 145 in __setROICenter
    __setROI(GNOME.Magnifier.RectBounds(x1, y1, x2, y2))
  • File "/usr/lib/python2.5/site-packages/orca/mag.py", line 115 in __setROI
    _zoomer.setROI(_roi)
AttributeError: 'NoneType' object has no attribute 'setROI'

Could not initialize connection to magnifier.

** (orca:15650): WARNING **: Invalid object type load-complete


** (orca:15650): WARNING **: Invalid object type load-stopped


** (orca:15650): WARNING **: Invalid object type reload

If after this I set the target and source display to empty or :0.0 I get a functional magnifier, except that sometimes I get some parts of the screen black, something that appear to be related with bug #434660, but after using the desktop for a while, the problem disappear.

From what I experienced here, I don't know if this is a bug in gnome-mag, since , for example, I can start gnome-mag, with the following command:

#: magnifier -fm

and then use the control-client application, that is in the test folder of the gnome-mag source tree to set the source display to :0.1 as follow:

#: ./control-client s:0.1

Although this worked, the output is not the desired, since damage aren't tracked properly after this last operation and the desktop becomes practically unusable. I will open a bug in gnome-mag against it and investigate it as soon as possible.
Comment 11 Joanmarie Diggs (IRC: joanie) 2007-08-01 16:08:44 UTC
Hi Carlos.  Thanks for looking at this!  

I haven't tried using a dummy driver yet so I'm not getting the error you cite.  I'll look at that a bit later today.  In the meantime, I started adding debugging code to magnifier.c in order to try to learn what was taking place and how things worked. 

It *seems to me* that when Orca is trying to set the source display impl_magnifier_set_source_display() gets called.  This method doesn't seem to get called when I launch magnifier from the command line (e.g. magnifier -f -t :0.1 -s :0.2)

It also seems like we're good up to this point within impl_magnifier_set_source_display():

	if (strcmp (full_display_string, magnifier->source_display_name)) {

I *think* where things are going wrong is in the code that immediately follows:

 	    magnifier_set_property (magnifier->property_bag,
				    arg,
				    MAGNIFIER_SOURCE_DISPLAY_PROP,
				    ev,
				    magnifier); 

because the debug statement I inserted immediately before magnifier_set_property() was called and the one I inserted immediately after it was not called.  If that sounds silly, please forgive me.  I'm one of those "community contributors" who's learning as she goes -- oh and who doesn't (yet) know C.  :-)  Anyhoo, I was in the process of pursuing this further by examining magnifier_set_property() when I was made aware of some Firefox issues that needed addressing so I had to put this issue aside.

I don't know if that helps at all or not, but I figured it was worth a try. :-)

Thanks again!
Comment 12 Carlos Eduardo Rodrigues Diógenes 2007-08-01 20:21:50 UTC
Hi Joanmarie,

I think that I was able to reproduce the bug here, but only to be certain that we are talking about the same bug do the following, please:

open a terminal and start the magnifier with the command #: magnifier --ignore-composite --override-redirect

then start orca (make sure it will load the source and target that make the bug appear).

In this case the magnifier worked normally?

now close everything and run the magnifier without any argument and open orca again. The magnifier crash, isn't is?
Comment 13 Joanmarie Diggs (IRC: joanie) 2007-08-01 20:49:24 UTC
> In this case the magnifier worked normally?

For now, let's go with "differently". :-)  In this case, we are apparently successfully setting the SourceDisplay because I am not getting the error I was.  I'm still not getting magnification though.  I'm not sure if that's Orca or magnifier or me/my setup.  But I get errors such as this:

** (magnifier:7249): WARNING **: Bad bounds request (0,0 to 0,507), ignoring.
 
> now close everything and run the magnifier without any argument and open 
> orca again. The magnifier crash, isn't is?

Yup, sure does!

Gdk-ERROR **: The program 'magnifier' received an X Window System error.
This probably reflects a bug in the program.
The error was '167'.
  (Details: serial 27 error_code 167 request_code 152 minor_code 10)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)
aborting...
Comment 14 Carlos Eduardo Rodrigues Diógenes 2007-08-02 16:11:55 UTC
(In reply to comment #13)
> > In this case the magnifier worked normally?
> 
> For now, let's go with "differently". :-)  In this case, we are apparently
> successfully setting the SourceDisplay because I am not getting the error I
> was.  I'm still not getting magnification though.  I'm not sure if that's Orca
> or magnifier or me/my setup.  But I get errors such as this:
> 
> ** (magnifier:7249): WARNING **: Bad bounds request (0,0 to 0,507), ignoring.
> 

This WARNING is generated when the ROI (Region Of Interest) passed to the magnifier are in an unexpected way. Although Orca sometimes passes some of they, they are very infrequently, AFAICT, since I get only one warning about this per magnifier configuration.

This WARNING appeared in the terminal where you launch gnome-mag. From the terminal that you launch Orca don't you get any output that can indicate an error?
Comment 15 Carlos Eduardo Rodrigues Diógenes 2007-08-02 19:37:33 UTC
Hi Joanmarie,

I just opened a bug #462890 against it in gnome-mag and published a patch. If you can test it, I will be very thankful.
Comment 16 Joanmarie Diggs (IRC: joanie) 2007-08-02 22:29:09 UTC
Thanks Carlos.  As I commented on bug #462890, that made the crash go away.  However, I'm still getting the bad bounds requests.  Anywhere I move the mouse generates them and I still don't have magnification.   I'll keep looking but if you have any ideas/suggestions they are most certainly welcome.  :-)
Comment 17 Joanmarie Diggs (IRC: joanie) 2007-08-02 22:45:22 UTC
AHA!  I altered the Zoomer Position in Orca and now things seem to be working.  I don't yet know if they're working perfectly.  But things are looking up.  :-)

Based on this, on the Orca side of things, we probably should be doing some checking to be sure that we're not sending bogus Zoomer Positions to magnifier. :-)

Tim, could you please try Carlos' patch to bug #462890 and see if that solves the problem you reported?  Thanks much!
Comment 18 Tim Miao 2007-08-03 03:54:49 UTC
Hi Joan,

I tried the patch which Carlos made to bug #462890, it fixed this bug. I'd like to move this bug to FIXED. If you have any problem, please feel free to open it.
Thanks for everyone's great work!