https://bugs.winehq.org/show_bug.cgi?id=54993
Bug ID: 54993 Summary: Framemaker 8 crashes in internal search operation Product: Wine Version: 8.9 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: wineps.drv Assignee: wine-bugs@winehq.org Reporter: ulrich.gemkow@ikr.uni-stuttgart.de Distribution: ---
Framemaker 8 crashes in an search operation (which seems to be not related to printing) with an internal error which in the past was a sign of memory corruption.
A Bisect shows this commit:
a6cb10bba2d05ceca6ba5b1411c450d38defdbb4 is the first bad commit commit a6cb10bba2d05ceca6ba5b1411c450d38defdbb4 Author: Piotr Caban piotr@codeweavers.com Date: Mon May 15 17:34:23 2023 +0200
wineps: Don't pass PRINTERINFO structure to unixlib.
dlls/wineps.drv/init.c | 5 +- dlls/wineps.drv/unixlib.c | 310 +++++----------------------------------------- dlls/wineps.drv/unixlib.h | 5 +- 3 files changed, 35 insertions(+), 285 deletions(-)
Please tell me when you need more info (log file for which component?). I understand thats its not easy to narrow this bug from the given information.
Thanks!
https://bugs.winehq.org/show_bug.cgi?id=54993
Ulrich Gemkow ulrich.gemkow@ikr.uni-stuttgart.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression Regression SHA1| |a6cb10bba2d05ceca6ba5b1411c | |450d38defdbb4
https://bugs.winehq.org/show_bug.cgi?id=54993
Ulrich Gemkow ulrich.gemkow@ikr.uni-stuttgart.de changed:
What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://bugs.winehq.org/sho | |w_bug.cgi?id=54980
https://bugs.winehq.org/show_bug.cgi?id=54993
--- Comment #1 from Ulrich Gemkow ulrich.gemkow@ikr.uni-stuttgart.de --- Created attachment 74543 --> https://bugs.winehq.org/attachment.cgi?id=74543 Debug log file with WINEDEBUG=warn+heap,+seh
https://bugs.winehq.org/show_bug.cgi?id=54993
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dark.shadow4@web.de
--- Comment #2 from Fabian Maurer dark.shadow4@web.de --- What could help, is there a free trial we could use to test? And how do you trigger the crash?
https://bugs.winehq.org/show_bug.cgi?id=54993
--- Comment #3 from Ulrich Gemkow ulrich.gemkow@ikr.uni-stuttgart.de --- Thanks for looking into this! Unfortunately a free demo is no longer downloadable. I have a installation file which is the same as the demo version as long as no serial number is entered. But distributing this is not allowed per the license. I can provide it when really required (but installing is not trivial).
But the demo is also not very helpful. The program crashes with a dialog box saying (rough translation) "The program deteced a serious error and must be terminated" and then terminates mostly regulary.
In previous regressions of this kind the log files helped showing exceptions or pointing to the right problem.
Hopefully the bisect or more log files helps finding the right solution.
https://bugs.winehq.org/show_bug.cgi?id=54993
--- Comment #4 from Fabian Maurer dark.shadow4@web.de --- FWIW, I found a download at ftp://ftp.adobe.com/pub/adobe/framemaker/win/8.x/AdobeFrameMaker80_extract.exe You need a FTP client like filezilla though.
https://bugs.winehq.org/show_bug.cgi?id=54993
--- Comment #5 from Fabian Maurer dark.shadow4@web.de --- Can you tell me how to reproduce the issue?
https://bugs.winehq.org/show_bug.cgi?id=54993
--- Comment #6 from Ulrich Gemkow ulrich.gemkow@ikr.uni-stuttgart.de --- Great!! Would you share how you found this? I searched for a long time without success. For completeness two update files named FM8_patcher_p273.exe and FM8_patcher_p277.exe would also be helpful.
I will produce a minimal example to show the bug, please give me two days, I am not in my office.
https://bugs.winehq.org/show_bug.cgi?id=54993
--- Comment #7 from Fabian Maurer dark.shadow4@web.de --- Just googled "Download Adobe Framemaker 8", until I found https://community.adobe.com/t5/framemaker-discussions/download-a-copy-of-fra... Then I managed to get through the ftp paths, it changed but can easily be found.
https://bugs.winehq.org/show_bug.cgi?id=54993
Ulrich Gemkow ulrich.gemkow@ikr.uni-stuttgart.de changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |ftp://ftp.adobe.com/pub/ado | |be/framemaker/win/8.x/Adobe | |FrameMaker80_extract.exe
https://bugs.winehq.org/show_bug.cgi?id=54993
--- Comment #8 from Ulrich Gemkow ulrich.gemkow@ikr.uni-stuttgart.de --- Thanks again for finding the download.
To reproduce the bug:
- Download the Framemaker 8 Demo installer from the given URL
- Install Framemaker by calling AdobeFrameMaker80_extract.exe: Go through all steps with "Yes" or "Next", select US English and do _not_ install the "Adobe PDF creation AddOn" which is offered in the last step of the install wizzard
- Set the "Screen resolution" with winecfg in the "Graphics" tab to 168 (important, see below)
- Start Framemaker 8 with the command "wine start FrameMaker.exe"
- Select "Framemaker" (not "Structured FrameMaker") and start the 30-day trial period in the dialog
- Save the two attached .fm files in a directory
- Open the File "Skript.fm" by using the File->Open menu entry in FrameMaker
- Select Edit->"Find/Change" and select in the "Find"-Select box "Unresolved cross reference" (upper entry)
- Press the "Find" Button
Framemaker crashes with an internal error. This is a regression - the exact same sequence works in wine-8.8.
While looking further into this bug, we found the following:
When you do _not_ change the screen resolution as described above, the bug does not happen (not in wine-8.9 and not in wine-8.8). This seems to be weired, I will file a separate bug about this - screen resolution should have no effect.
Second - the bug described here is a follow-up of #54980. When "tricking" that no font is missing, this bug also does not occur (difficult because FrameMaker is very PS-dependent).
Thanks again!
https://bugs.winehq.org/show_bug.cgi?id=54993
--- Comment #9 from Ulrich Gemkow ulrich.gemkow@ikr.uni-stuttgart.de --- Created attachment 74570 --> https://bugs.winehq.org/attachment.cgi?id=74570 First FrameMaker document needed to reproduce the bug
https://bugs.winehq.org/show_bug.cgi?id=54993
--- Comment #10 from Ulrich Gemkow ulrich.gemkow@ikr.uni-stuttgart.de --- Created attachment 74571 --> https://bugs.winehq.org/attachment.cgi?id=74571 Second FrameMaker document needed to reproduce the bug
https://bugs.winehq.org/show_bug.cgi?id=54993
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1|a6cb10bba2d05ceca6ba5b1411c | |450d38defdbb4 | Keywords|regression |
--- Comment #11 from Fabian Maurer dark.shadow4@web.de --- Seems also related to i there is a .lck file present and I open it as readonly. It behaves differently when I delete the .lck files... Can you confirm those findings? Or maybe it's a race condition, not so sure anymore...
Anyways, something is terribly wrong here, and I don't know what. But I don't think that regression is correct, I had it crash the exact same way in wine-8.8 as well.
https://bugs.winehq.org/show_bug.cgi?id=54993
--- Comment #12 from Ulrich Gemkow ulrich.gemkow@ikr.uni-stuttgart.de --- Thanks again! Unfortunately its a little bit difficult: The bug happens always (also in old wine releases) when FrameMaker cannot open a file (in this case 0_1_Inhalt.fm) which is needed for its operations. The described search operation in only one of these operations. This is an old problem and we know how to handle it and it shows in different ways (memory corruption, maybe also be a race).
One reason for FrameMaker not being able to open a file is the existence of a .lck-File. This tells FrameMaker that the file is already open for reading and FrameMaker refuses to open it. Such .lck-Files remain when FrameMaker crashes, normally they are deleted when FrameMaker closes regulary. The solution is simple - delete the .lck file and all is fine.
But starting with the given commit, FrameMaker _always_ cannot open a file in book operations because of the missing Postscript base font. So there is no way around this anymore (like deleting the .lck file) and so IMHO this is a regression caused by this commit (or something around, the commit itself looks good). This is what i meant in comment #8 last paragraph regarding bug #54980.
Is this a regression in the wine-sense? For the user of the program it is - its no longer usable because many operations fail.
https://bugs.winehq.org/show_bug.cgi?id=54993
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression
--- Comment #13 from Fabian Maurer dark.shadow4@web.de ---
Thanks again! Unfortunately its a little bit difficult: The bug happens always (also in old wine releases) when FrameMaker cannot open a file (in this case 0_1_Inhalt.fm) which is needed for its operations.
I see, it's a pretty messy bug.
But starting with the given commit, FrameMaker _always_ cannot open a file in book operations because of the missing Postscript base font. So there is no way around this anymore (like deleting the .lck file) and so IMHO this is a regression caused by this commit (or something around, the commit itself looks good).
Well, my problem is, that old wine releases crash exactly the same. As I said, even wine-8.8 (before the commit) has the exact same behavior.
https://bugs.winehq.org/show_bug.cgi?id=54993
--- Comment #14 from Fabian Maurer dark.shadow4@web.de --- I found another thing, I still had cups disabled from years ago, apparently it crashes as well when there's no printers found.
Now it crashes directly on startup, same error message. Figured that out to be a divide my zero crash. I'll continue investigation, maybe I can soon see the regression you talked about.
May I ask what kind of printer you got configured? Because I got cups virtual pdf, and that seems to make issues.
https://bugs.winehq.org/show_bug.cgi?id=54993
--- Comment #15 from Ulrich Gemkow ulrich.gemkow@ikr.uni-stuttgart.de --- (In reply to Fabian Maurer from comment #14)
I found another thing, I still had cups disabled from years ago, apparently it crashes as well when there's no printers found.
Now it crashes directly on startup, same error message. Figured that out to be a divide my zero crash. I'll continue investigation, maybe I can soon see the regression you talked about.
May I ask what kind of printer you got configured? Because I got cups virtual pdf, and that seems to make issues.
The crash-dialog you see is shown when FrameMaker encounters something which it regards as an internal error or an unexpected condition it cannot handle. ("assertion"). The dialog is caused by many different circumstances, its a kind of exception handler to prevent more damage (FrameMaker is build for reliabilty). There are a few causes we know and can bypass.
So that you see the dialog box also in previous wine releases does not mean its the same error - it may very well be of different cause. Unfortunately FrameMake is a little bit sensitive but because of this a very good source to find regressions.
That is the reason why I mostly report Framemaker bugs as regressions after careful exclusion of other differences in the environment.
Regarding the printer/CUPS question: Yes, the printer configuration makes a difference. We use network connected printers which are described by a ppd-file (Postscript printer) which have the Postscript Fonts build in.
In the meantime I found why the named commit causes problems (please see my changed description of #54980 and my last comment) and the problem goes beyond FrameMaker, it also affects other word processing programs which rely on printer supplied fonts (cups sends a list of fonts which the printer supports, in our case the base postscript fonts and a few more).
Would you share how you found that the problem is a division by zero? I never managed to find a bug before the crash handler dialog appears. Thanks!
https://bugs.winehq.org/show_bug.cgi?id=54993
--- Comment #16 from Ulrich Gemkow ulrich.gemkow@ikr.uni-stuttgart.de --- (In reply to Fabian Maurer from comment #13)
Thanks again! Unfortunately its a little bit difficult: The bug happens always (also in old wine releases) when FrameMaker cannot open a file (in this case 0_1_Inhalt.fm) which is needed for its operations.
I see, it's a pretty messy bug.
But starting with the given commit, FrameMaker _always_ cannot open a file in book operations because of the missing Postscript base font. So there is no way around this anymore (like deleting the .lck file) and so IMHO this is a regression caused by this commit (or something around, the commit itself looks good).
Well, my problem is, that old wine releases crash exactly the same. As I said, even wine-8.8 (before the commit) has the exact same behavior.
I understand. As said in comment #15 the crash dialog may also be caused by other reasons which FrameMaker does not like. I can only say that I checked very carefully that the behavior changes between old and new release caused by the changed font handling.
https://bugs.winehq.org/show_bug.cgi?id=54993
--- Comment #17 from Fabian Maurer dark.shadow4@web.de ---
Would you share how you found that the problem is a division by zero? I never managed to find a bug before the crash handler dialog appears. Thanks!
You can use +seh to see what exceptions are thrown, this and +relay helps narrow it down.
https://bugs.winehq.org/show_bug.cgi?id=54993
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1| |a6cb10bba2d05ceca6ba5b1411c | |450d38defdbb4 Status|UNCONFIRMED |NEW Ever confirmed|0 |1
--- Comment #18 from Fabian Maurer dark.shadow4@web.de --- Okay, I can now finally reproduce the issue. It is indeed this commit that breaks it.
https://bugs.winehq.org/show_bug.cgi?id=54993
--- Comment #19 from Fabian Maurer dark.shadow4@web.de --- Created attachment 74579 --> https://bugs.winehq.org/attachment.cgi?id=74579 Patch to fix the issue
Can you please test if the attached patch fixes the issue for you as well? Just to make sure, since I had troubles pinpointing the issue. Applies cleanly on wine-8.10.
https://bugs.winehq.org/show_bug.cgi?id=54993
--- Comment #20 from Ulrich Gemkow ulrich.gemkow@ikr.uni-stuttgart.de --- Your patch fixes the issue, thanks a lot!
This also fixes #54980 for FrameMaker and Office 2007
https://bugs.winehq.org/show_bug.cgi?id=54993
--- Comment #21 from Fabian Maurer dark.shadow4@web.de --- Alright, thanks. Opened a MR at https://gitlab.winehq.org/wine/wine/-/merge_requests/3032
https://bugs.winehq.org/show_bug.cgi?id=54993
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |9b12065fc5b04d661b97f63586e | |2b43f25afcfd8 Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #22 from Fabian Maurer dark.shadow4@web.de --- Should be fixed by https://gitlab.winehq.org/wine/wine/-/commit/9b12065fc5b04d661b97f63586e2b43...
https://bugs.winehq.org/show_bug.cgi?id=54993
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #23 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 8.11.