0 votes

Users at our PT8 workshop right now are so excited to see automatic project conversion. However, there’s a serious new bug in PT 8.0.100. Do this to replicate it:

  • Create a PT8 project of type “Transliteration (Using EncConverter)”.

  • For Encoding Converter, select Add Converter…

  • In the Choose a Transduction Engine dialog, select ICU Transliterator and click Add.

Paratext crashes. This happened on 100% of the dozens of PT 8.0.100 machines at our current PT8 workshop.

I tested that this worked properly without crashing in 8.0.79. Then I updated to 8.0.100.12 and tested again, and now it crashed.

When we had problems with SIL Converters in PT 8.0.79, we could copy the DLLs from Program Files(x86)\Common Files\SIL to Program Files(86)\Paratext 8 and restart Windows, but if we try that in PT 8.0.100, it results in Paratext becoming unable to start. There is a long debug trace message that begins with “Can’t load ICU library”, followed by a shorter error message “Paratext cannot perform this operation because a file (unknown) is currently locked. Please look in Help for ‘Locked files’ in order to solve this problem”. Even uninstalling Paratext (including settings) and SIL Converters and then restarting the computer before reinstalling PT8 still does not get past this file locking problem. -You have to manually delete the added DLLs.

There must be some combinations of correct versions of DLLs that would get this to work. Anyone have any idea what that might be?

Thanks!

P.S. The clunky workaround is to create the ICU Transliterator outside of Paratext (such as from the Clipboard EncConverter), and then since it’s in the Repository, Paratext will include it in the dropdown of available converters, and use it properly. The problem is particularly with adding an ICU Transliteration (either on its own or in a daisy-chained converter) and only when launched from Paratext.

Paratext by (286 points)
reshown

3 Answers

0 votes
Best answer
Thank you for your patience. I have corresponded with Bob Eaton. He did suggest some things to confirm about my system configuration. However, these were not issues on the systems that I was using. I also have compared all the DLLs used in Paratext 8.0.100.x and 8.0.79.x. I didn’t find any differences that would have caused the crash.

However, there is one thing that we have changed in the last few months. We have upgraded to .NET 4.5 and have configured Paratext to use its way of handling crashes as Microsoft recommends. In particular, we no longer attempt to continue running after crashes due to corrupted memory occur. Otherwise, there could be unexpected behavior and, possibly, data loss. The crash that is occurring in the SIL Encoding Converters when adding an ICU Transliterator is caused by corrupted memory.

I have written Bob Eaton about fixing this problem in the Encoding Converters. However, I have not yet heard back when he might be able to provide an update. Hopefully, he will be able to look at it sometime in the near future.
by [Expert]
(251 points)
0 votes

Thank you for reporting this problem. We have confirmed this is a problem in the latest version of Paratext when calling the SIL Encoding Converters. We have contacted the developer for the SIL Encoding Converters about a solution.

by [Expert]
(251 points)

Thanks. Bob Eaton is traveling right now and in the thick of work with MTTs, so I’d be surprised if he’s able to do anything on this in the next couple months. But regardless of what SIL Converters does, you really don’t want Paratext to crash here. Typically you’re making a new project when this happens, and Paratext’s crash leaves you with an unloadable project (“missing language code”) that also can’t be deleted from within Paratext, so each time you start Paratext after this, you get an error message. Then you try again and it crashes again and now you have two unloadable projects to be warned about on PT8 startup. The only way to solve this is to go to the My Paratext 8 Projects folder and delete the project folder, but the typical user at our workshop needed technical support to solve that for them. Even if SEC behaves badly, you don’t want Paratext to handle it this poorly.

I no longer have a PT 8.0.79 installation, but I’m pretty certain that the solution we need is to start with the versions of the DLLs that were present in the Paratext 8 folder in that version, and add to it the versions of the DLLs found in Program Files(x86)\Common Files\SIL once SEC 4.0 is installed, and that works (at least, provided there’s been a restart since SEC installation; Bob does need to update his installer to require a restart). This solution worked on all of the dozens of systems in our March workshop.

Thanks!

Last night, I drafted a response on what would be needed for a solution. However, before I post it, I need to confirm at the office when some changes were made in Paratext.

As you described, this is an error that leaves a project in an invalid state. I saw this problem as we tested this issue yesterday. We will definitely work on a solution but a full solution may require some changes in the Encoding Converters.

That’s helpful to know what Bob Eaton is doing now.

0 votes
We haven’t forgotten about the encoding converters. I have heard back from Bob Eaton and am corresponding with him about a way forward with this issue.
by [Expert]
(251 points)

Related questions

0 votes
2 answers
0 votes
1 answer
0 votes
1 answer
0 votes
10 answers
+1 vote
2 answers
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
There is neither Jew nor Gentile, neither slave nor free, nor is there male and female, for you are all one in Christ Jesus.
Galatians 3:28
2,479 questions
5,175 answers
4,875 comments
1,285 users