Invalid window geomery in OWMConfig.ini (linux)

Archive of resolved issues and feature additions completed.

Moderator: Kyete

Post Reply
nDervish
Posts: 93
Joined: Sat Nov 15, 2014 12:18 am

Invalid window geomery in OWMConfig.ini (linux)

Post by nDervish » Fri Feb 28, 2020 4:22 am

Just ran into a problem on Linux, which strikes me as particularly odd, because I've successfully run OWM multiple times on this machine before. But, trying to start it today, I get the startup splash screen, but then it crashes when it tries to open the actual main program window, with the console output:

~$ OWM
WARNING : Command not found in hash table : nouicompat
WARNING : Command not found in hash table : deflang
WARNING : Command not found in hash table : viewkind
WARNING : Command not found in hash table : uc
WARNING : Command not found in hash table : nowidctlpar
WARNING : Command not found in hash table : lang
WARNING : Command not found in hash table : sa
WARNING : Command not found in hash table : sl
WARNING : Command not found in hash table : slmult
WARNING : Command not found in hash table : lang

(OWM:6483): Gdk-WARNING **: 10:05:03.055: Native Windows wider or taller than 32767 pixels are not supported
The program 'OWM' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadDrawable (invalid Pixmap or Window parameter)'.
(Details: serial 12166 error_code 9 request_code 70 minor_code 0)
(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.)

Looking in ~/.Other\ World\ Mapper/OWMConfig.ini, I found

[Persistent_Options/Window/OWMMainFrame]
x=0
y=0
w=34418
h=-756823071

which looked likely to be the cause, so I changed them to w=800, h=600 and it started successfully, but the existing values were obviously incorrect. I suspect that they may have come from the previous run having been over a remote X connection (i.e., connecting from another machine using `ssh -X` so that OWM was running on this computer, but displayed windows on a different one) and/or using multiple virtual desktops on a multi-headed display. I don't know how tricky it would be to get valid window geometry values in that scenario, but it should be easy to at least add sanity checks (e.g., 0 < height/width < 32767) when persisting the geometry and preserve the old values if the sanity checks fail.

User avatar
Kyete
Site Moderator
Posts: 237
Joined: Tue Nov 11, 2014 4:52 pm

Re: Invalid window geomery in OWMConfig.ini (linux)

Post by Kyete » Sat May 16, 2020 10:09 pm

Thank you for all the info! Sorry for the late reply. Things have been crazy. We've finished regression testing and are about to release the next version, but we will definitely look into the issue and see where those sanity checks are needed.

nDervish
Posts: 93
Joined: Sat Nov 15, 2014 12:18 am

Re: Invalid window geomery in OWMConfig.ini (linux)

Post by nDervish » Tue Sep 29, 2020 7:05 am

Update on this:

Still having problems, even when not using remote X sessions or any of the other weird stuff I mentioned in the original report. Each time I run OWM, even if I don't move/resize any windows at all, it rewrites OWMConfig.ini with incorrect window geometry. In every case I've looked at, [Persistent_Options/Window/OWMMainFrame] has had "w=34nnn" and "h=-756823nnn" - the last three digits of each value change from run to run, but the preceding digits always appear to be the same.

Starting to think I need to just write a Perl wrapper script that runs OWM and then rewrites the config with w=1800 h=900 after it exits so that I don't have to keep doing that manually...

User avatar
Kanchou
Site Admin
Posts: 1021
Joined: Mon Nov 10, 2014 2:23 pm

Re: Invalid window geomery in OWMConfig.ini (linux)

Post by Kanchou » Fri Oct 09, 2020 10:07 pm

nDervish wrote:
Tue Sep 29, 2020 7:05 am
Update on this:

Still having problems, even when not using remote X sessions or any of the other weird stuff I mentioned in the original report. Each time I run OWM, even if I don't move/resize any windows at all, it rewrites OWMConfig.ini with incorrect window geometry. In every case I've looked at, [Persistent_Options/Window/OWMMainFrame] has had "w=34nnn" and "h=-756823nnn" - the last three digits of each value change from run to run, but the preceding digits always appear to be the same.

Starting to think I need to just write a Perl wrapper script that runs OWM and then rewrites the config with w=1800 h=900 after it exits so that I don't have to keep doing that manually...
Currently working on this, should be fixed with the upcoming release this month. Not sure why it happens, but we'll add the sanity check.

Thank you for the additional detail and your patience!

- Alejandro
Alejandro S. Canosa
Three Minds Software

nDervish
Posts: 93
Joined: Sat Nov 15, 2014 12:18 am

Re: Invalid window geomery in OWMConfig.ini (linux)

Post by nDervish » Sat Oct 10, 2020 7:03 am

Kanchou wrote:
Fri Oct 09, 2020 10:07 pm
Not sure why it happens, but we'll add the sanity check.
If there's any additional information I can provide to help track down the cause (and if you think it's work the effort), just let me know.

User avatar
Kanchou
Site Admin
Posts: 1021
Joined: Mon Nov 10, 2014 2:23 pm

Re: Invalid window geomery in OWMConfig.ini (linux)

Post by Kanchou » Wed Mar 24, 2021 11:09 pm

I was able to fix this issue, finally!

There were several Linux issues we fixed this time around, but I forgot to include them with the release notes.. :roll:

- Alejandro
Alejandro S. Canosa
Three Minds Software

Post Reply