Re: Urgent: Balsa crashes on send - one reason found



On 11/27/2017 03:15:18 AM, Peter Bloomfield wrote:
On 11/20/2017 04:08:40 PM Mon, Peter Bloomfield wrote:
…
With 1.6.1 installed I get what appears to be the same crash. I'm using spell-checker=internal, to avoid rebuilding gspell; the issue seems to be that enchant lists no available dictionaries, and Balsa is unprepared for handling that!

So the immediate fix is to have Balsa gracefully disable spell-checking when no dictionaries can be found--that should be a straightforward patch. Longer term, we need to find out why 1.6.1 lists no dictionaries when 1.6.0 lists several.

1. Master has been patched to cope with a situation where no spell-checker dictionary is found.

2. One reason that Balsa finds no dictionaries when built with enchant-1.6.1 seems to be that it looks for myspell/*.dic in /usr/share/myspell/dicts, while earler versions expected them to be in /usr/share/myspell/ (or at least that's where hunspell-en-0.20140811.1-9.fc27.noarch installs them).

3. Even with the patch to master, and with a symlink "sudo ln -s /usr/share/myspell/ /usr/share/myspell/dicts" to make the dictionaries visible to enchant-1.61, I *still* get a SEGV when opening a compose window. The attached program should reproduce the crash, but, when I test it, it does some of the time and not others. So I'm quite mystified by the issue :-(


Here (on Gentoo)
the current version of Balsa (GIT from today) still segfaults with enchant=1.61. (In the composition window, 'Spelling' didn't show any languages)

I've tried your test program. Here are the outputs:

--- with enchant 1.6.0 ---
tag "de", provider "aspell", desc "Aspell Provider", file "/usr/lib64/enchant/libenchant_aspell.so" tag "de_AT", provider "aspell", desc "Aspell Provider", file "/usr/lib64/enchant/libenchant_aspell.so" tag "de_CH", provider "aspell", desc "Aspell Provider", file "/usr/lib64/enchant/libenchant_aspell.so" tag "de_DE", provider "aspell", desc "Aspell Provider", file "/usr/lib64/enchant/libenchant_aspell.so" tag "en", provider "aspell", desc "Aspell Provider", file "/usr/lib64/enchant/libenchant_aspell.so" tag "en_AU", provider "aspell", desc "Aspell Provider", file "/usr/lib64/enchant/libenchant_aspell.so" tag "en_CA", provider "aspell", desc "Aspell Provider", file "/usr/lib64/enchant/libenchant_aspell.so" tag "en_GB", provider "aspell", desc "Aspell Provider", file "/usr/lib64/enchant/libenchant_aspell.so" tag "en_US", provider "aspell", desc "Aspell Provider", file "/usr/lib64/enchant/libenchant_aspell.so" tag "fr", provider "aspell", desc "Aspell Provider", file "/usr/lib64/enchant/libenchant_aspell.so" tag "fr_CH", provider "aspell", desc "Aspell Provider", file "/usr/lib64/enchant/libenchant_aspell.so" tag "fr_FR", provider "aspell", desc "Aspell Provider", file "/usr/lib64/enchant/libenchant_aspell.so" tag "en_ZA", provider "myspell", desc "Myspell Provider", file "/usr/lib64/enchant/libenchant_myspell.so" tag "nl_NL", provider "myspell", desc "Myspell Provider", file "/usr/lib64/enchant/libenchant_myspell.so" tag "it_IT", provider "myspell", desc "Myspell Provider", file "/usr/lib64/enchant/libenchant_myspell.so"


-- with enchant 1.6.1 ---
tag "de", provider "aspell", desc "Aspell Provider", file "/usr/lib64/enchant/libenchant_aspell.so" tag "it_IT", provider "myspell", desc "Myspell Provider", file "/usr/lib64/enchant/libenchant_myspell.so" tag "de_AT", provider "myspell", desc "Myspell Provider", file "/usr/lib64/enchant/libenchant_myspell.so" tag "en_US", provider "myspell", desc "Myspell Provider", file "/usr/lib64/enchant/libenchant_myspell.so" tag "fr_CH", provider "aspell", desc "Aspell Provider", file "/usr/lib64/enchant/libenchant_aspell.so" tag "en", provider "aspell", desc "Aspell Provider", file "/usr/lib64/enchant/libenchant_aspell.so" tag "en_CA", provider "myspell", desc "Myspell Provider", file "/usr/lib64/enchant/libenchant_myspell.so" tag "fr", provider "aspell", desc "Aspell Provider", file "/usr/lib64/enchant/libenchant_aspell.so" tag "nl_NL", provider "myspell", desc "Myspell Provider", file "/usr/lib64/enchant/libenchant_myspell.so" tag "en_GB", provider "myspell", desc "Myspell Provider", file "/usr/lib64/enchant/libenchant_myspell.so" tag "fr_FR", provider "myspell", desc "Myspell Provider", file "/usr/lib64/enchant/libenchant_myspell.so" tag "de_DE", provider "myspell", desc "Myspell Provider", file "/usr/lib64/enchant/libenchant_myspell.so" tag "de_CH", provider "myspell", desc "Myspell Provider", file "/usr/lib64/enchant/libenchant_myspell.so" tag "en_ZA", provider "myspell", desc "Myspell Provider", file "/usr/lib64/enchant/libenchant_myspell.so" tag "en_AU", provider "myspell", desc "Myspell Provider", file "/usr/lib64/enchant/libenchant_myspell.so"

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]