[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Two fixes for module bug when interleaving threads
From: |
Juri Linkov |
Subject: |
Re: Two fixes for module bug when interleaving threads |
Date: |
Sun, 29 Nov 2020 21:44:19 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) |
> I just pushed two fixes for the same bug that appears when
> interleaving module calls in separate threads:
> cdc632fbe6e149318147a98cccf1b7af191f2ce8 for the release branch and
> 23974cfa48b9245658667eff81d132b3aecd2618 for master. The intention was
> that a simpler and more localized fix should go to the release branch,
> the "proper" fix to master. Now I've realized that arguably the
> simpler fix is overall better: it's more localized, touches fewer
> moving pieces, and is probably not significantly slower (though I
> haven't benchmarked it). Any opinions? If people agree, we can
> overwrite the fix on master with the fix on the release branch.
Unfortunately, 23974cfa48b9245658667eff81d132b3aecd2618 in master
broke module loading: while loading a module, Emacs prints the
message "Loading (module)..." and hangs, doesn't react to input,
becomes completely unresponsive to C-g.
Here's is the shortest reproducible test case:
M-x package-install RET zmq RET
(load-file "~/.emacs.d/elpa/zmq-20200912.1126/emacs-zmq.so")
It hangs after printing to stderr:
double free or corruption (!prev)
Fatal error 6: Aborted
Fortunately, this problem doesn't exist in the 27 release branch.