View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000894 | OpenMPT | User Interface | public | 2016-11-23 21:20 | 2016-11-27 14:52 |
Reporter | Wodd | Assigned To | Saga Musix | ||
Priority | normal | Severity | major | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | x64 | OS | Windows | OS Version | 10 |
Product Version | OpenMPT 1.27.00.* (old testing) | ||||
Target Version | OpenMPT 1.27.01.00 / libopenmpt 0.3.1 (upgrade first) | Fixed in Version | OpenMPT 1.27.01.00 / libopenmpt 0.3.1 (upgrade first) | ||
Summary | 0000894: Channel Manager Displays Improperly | ||||
Description | I updated to the latest revision (7418) and the channel manager does not display properly. | ||||
Steps To Reproduce | Open the channel manager from within a module (new or "old"). | ||||
Tags | No tags attached. | ||||
Has the bug occurred in previous versions? | |||||
Tested code revision (in case you know it) | 7418 | ||||
That's not the latest revision. Try again. |
|
I am sorry. I was incorrect. It was revision 7420, not 7418. I see the revision numbers in TortoiseSVN, but I don't think to mentally track them like I probably should. Also, I will give the link to the image as hypertext instead of an "image," since that didn't work. I haven't shared through Google Drive before. The channel manager does not display properly. Revision 7420. |
|
The only time it should look like that is when closing any open modules. Please give step-by-step instructions what you do to trigger it, and confirm that you have not modified the code in any way (I cannot give support for personal modified OpenMPT versions). |
|
Steps to reproduce:
|
|
Works just fine here.
That's just the test suite running through. |
|
Hmm, strange
Ah |
|
Please try an official test bild from https://buildbot.openmpt.org/builds/ to see if it also happens there. |
|
I tried both the 32- and 64-bit test builds from The page to which you linked (revision 7423). Here is what I found.
|
|
It sounds like some assumption somewhere does not hold but MFC catches an error for us (and handles it badly) rather than passing it on. Here are two more things to do:
|
|
I did not detect the issue in revision 7417.
That is what I saw in the Output box. Incidentally, while the channel manager is open, the Windows Critical Stop sound continuously plays. It plays one last time when I stop debugging. |
|
Can you try the same with r7426? |
|
...or even better, try r7427 which should fix the minimized window issue. |
|
Things that might help you:
For information on how your program can cause an assertion (Press Retry to debug the application)
'mptrack.exe' (Win32): Loaded 'C:\Windows\SysWOW64\iertutil.dll'. Cannot find or open the PDB file.
c:\software\modplug tracker\source code\mptrack\inputhandler.cpp(587): + 33459 debug: Changing command set. [CInputHandler::SetEffectLetters]
c:\software\modplug tracker\source code\mptrack\inputhandler.cpp(587): + 69978 debug: Changing command set. [CInputHandler::SetEffectLetters]
Program: ...\vs2015....\bin\debug\vs2015-static\x86-32-win7\mptrack.exe For information on how your program can cause an assertion (Press Retry to debug the application)
Exception thrown at 0x00007FF81DE57788 (KernelBase.dll) in mptrack.exe: 0x0EEDFADE (parameters: 0x0000000001D0A30E, 0x0000022B82470D50, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000). |
|
That's strange. That failing assertion implies that the channel manager "sees" a different active document than the application itself, which really shouldn't be possible if you just open one document to reproduce this issue as you say. Can you try adding the following line right before the MPT_ASSERT in line 623 and paste its debug output? |
|
When I debugged with that line inserted, I saw the lines below and several more lines that looked similar to them. |
|
So the two values are equal and yet the assertion in the line after them fires? Are the two values in the debug output always identical to each other? |
|
I did find a mismatch in the each build. |
|
Please test r7429. |
|
Upon performing a subversion update operation, TortoiseSVN returned that ChannelManager.cpp had a conflict. Downloading a fresh batch of code worked with no problems. |
|
You were not supposed to re-insert that log line. The question is, does the channel manager display as intended now or not? |
|
The issue does persist, to answer your question. |
|
To hopefully get a clue about the exception in the win64 build, enable the exceptions from 0000894:0002768, and in addition to that also the "All Win32 exceptions not in this list" further down in the list. |
|
Upon doing as you requested and debugging again, a dialog appears with the thrown exception. the code also navigates to line 478 of wincore.cpp. It reads: |
|
The line alone is not very interesting, since there are several possible paths leading to it - I need the complete call stack up to a function that's inside CChannelManagerDlg. |
|
There is the call stack up to a white arrow (line 478 of ChannelManagerDlg.cpp).
|
|
I need the part below _AfxActivationWndProc, not above. I already knew we are in there. Just post the full stack trace, I will pick out the interesting stuff then. |
|
There is the full stack Trace for you. |
|
That stacktrace suggests that you already get the exception while the splash screen is showing, not the channel manager. But since the program does not actually crash, maybe it's not relevant. Maybe it is. It's hard to tell. I think it all boils down to this "Actual Window Manager" thing though. Can you please confirm that you are using this software? If so, can you check if running Windows without "Actual Window Manager" shows the channel manager as expected? |
|
In addition to what I wrote above, try the following: |
|
Prior to adding the suggested line: With Actual Window Manager exited, the exception is not thrown and the channel manager behaves as expected. Upon launching Actual Window Manager, the exception is thrown immediately. Even with Actual Window Manager paused, the exception is thrown. Actual Window Manager must be exited before the exception is not thrown. |
|
So we have found the culprit, it's just not clear yet why it does not like the changes. Try adding the following line instead: And if that still doesn't work, try this instead: |
|
I assume that, by "instead," you mean replace the line that didn't help.
I agree completely. |
|
At this point I am pretty much out of ideas. Even if we find a solution, I think you should try sending the executable to the Actual Window Manager developers and tell them that their program is messing up other programs that run just fine otherwise (with included steps how to reproduce the issue with and without their software running). It's not our job to work around software that hijacks our window procedure. |
|
I have installed Actual Window Manager into a virtual machine. What I have found is that it seems to intercept the SetWindowPos call in CChannelManagerDlg::OnPaint and immediately causes the window to re-paint before even setting the intended window size. This causes an infinite loop and as a consequence probably a stack overflow, which is why you heard the constant error sound. |
|
r7430 should hopefully fix the issue even with AWM enabled. Still, you should send one of the faulty EXE files to them as their code is broken. |
|
Thank you for trying to help. It seems that, as you allude to in your note, the issue is out of your control and unrelated to your code. You have probably done as much troubleshooting as you can with your code. I guess that it is time to close this case. I will try something within Actual Window Manager to see if it helps (that is: make an exception for the channel manager and, perhaps, ModPlug Tracker entirely). But, there is probably nothing more that you can do. Thank you, again, for trying to help. |
|
I tested a 64-bit release build and the channel manager worked with no problems. You can disregard my previous note. I submitted it before I saw your 2 notes before it. The issue is resolved in revision 7430. |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2016-11-23 21:20 | Wodd | New Issue | |
2016-11-23 21:22 | Saga Musix | Status | new => feedback |
2016-11-23 21:22 | Saga Musix | Note Added: 0002756 | |
2016-11-23 21:26 | Wodd | Note Added: 0002757 | |
2016-11-23 21:26 | Wodd | Status | feedback => new |
2016-11-23 21:35 | Saga Musix | Note Added: 0002758 | |
2016-11-23 22:49 | Wodd | Note Added: 0002759 | |
2016-11-23 22:53 | Saga Musix | Note Added: 0002760 | |
2016-11-23 23:32 | Wodd | Note Added: 0002761 | |
2016-11-23 23:46 | Saga Musix | Note Added: 0002762 | |
2016-11-24 12:34 | Wodd | Note Added: 0002767 | |
2016-11-24 12:41 | Saga Musix | Note Added: 0002768 | |
2016-11-24 21:01 | Wodd | Note Added: 0002769 | |
2016-11-24 23:46 | Saga Musix | Note Added: 0002771 | |
2016-11-25 00:48 | Saga Musix | Note Added: 0002772 | |
2016-11-25 02:38 | Wodd | Note Added: 0002773 | |
2016-11-25 13:24 | Saga Musix | Note Added: 0002774 | |
2016-11-25 14:13 | Wodd | Note Added: 0002775 | |
2016-11-25 14:17 | Saga Musix | Note Added: 0002776 | |
2016-11-25 15:51 | Wodd | Note Added: 0002777 | |
2016-11-25 16:07 | Saga Musix | Note Added: 0002778 | |
2016-11-25 16:07 | Saga Musix | Assigned To | => Saga Musix |
2016-11-25 16:07 | Saga Musix | Status | new => assigned |
2016-11-25 18:52 | Wodd | Note Added: 0002779 | |
2016-11-25 19:12 | Saga Musix | Note Added: 0002780 | |
2016-11-25 19:23 | Wodd | Note Added: 0002781 | |
2016-11-25 20:52 | Saga Musix | Note Added: 0002782 | |
2016-11-25 23:57 | Wodd | Note Added: 0002783 | |
2016-11-26 01:48 | Saga Musix | Note Added: 0002784 | |
2016-11-26 03:11 | Wodd | Note Added: 0002785 | |
2016-11-26 12:14 | Saga Musix | Note Added: 0002786 | |
2016-11-26 13:28 | Wodd | Note Added: 0002787 | |
2016-11-26 13:35 | Saga Musix | Note Added: 0002788 | |
2016-11-26 13:48 | Saga Musix | Note Added: 0002789 | |
2016-11-26 16:00 | Wodd | Note Added: 0002790 | |
2016-11-26 20:23 | Saga Musix | Note Added: 0002791 | |
2016-11-26 21:45 | Wodd | Note Added: 0002792 | |
2016-11-26 22:06 | Saga Musix | Note Added: 0002793 | |
2016-11-26 23:34 | Saga Musix | Note Added: 0002794 | |
2016-11-27 00:17 | Saga Musix | Status | assigned => feedback |
2016-11-27 00:17 | Saga Musix | Note Added: 0002795 | |
2016-11-27 01:12 | Wodd | Note Added: 0002796 | |
2016-11-27 01:12 | Wodd | Status | feedback => assigned |
2016-11-27 01:55 | Wodd | Note Added: 0002797 | |
2016-11-27 14:52 | Saga Musix | Status | assigned => resolved |
2016-11-27 14:52 | Saga Musix | Resolution | open => fixed |
2016-11-27 14:52 | Saga Musix | Product Version | OpenMPT 1.26.07.00 / libopenmpt 0.2-beta20.3 (upgrade first) => OpenMPT 1.27.00.* (old testing) |
2016-11-27 14:52 | Saga Musix | Fixed in Version | => OpenMPT 1.27.01.00 / libopenmpt 0.3.1 (upgrade first) |
2016-11-27 14:52 | Saga Musix | Target Version | => OpenMPT 1.27.01.00 / libopenmpt 0.3.1 (upgrade first) |