[erlang-bugs] Dialyzer Bugs
Michael Truog
mjtruog@REDACTED
Wed Jul 23 04:46:47 CEST 2014
On 07/21/2014 10:24 PM, Kostis Sagonas wrote:
> On 07/22/2014 01:55 AM, Michael Truog wrote:
>> There are two dialyzer bugs that I ran into recently:
>> 1) In 17.1 passing a symbolic link to the --plt option doesn't work as
>> it once did (it is still ok to have ~/.dialyzer_plt as a symbolic link)
>
> An example, or even better a git bisect, that shows the regression compared to some previous version would help here.
I checked the source tree at 17.1.2 as Loïc suggested and there is no longer a problem.
>
>> 2) -Wrace_conditions causes the dialyzer execution time to vary with the
>> possibility that dialyzer execution will not finish. The memory of
>> dialyzer can also grow to much larger sizes >1GB while this occurs. I
>> had this occur awhile ago with R16B03-1 while leaving dialyzer to run
>> and it refused to finish after roughly 40 minutes when a normal run
>> takes 1 minute (roughly). I recently talked to a person on IRC
>> (freenode in the #erlang room) which had the same problem where the
>> person's dev machine was affected but the CI server never had any
>> problem completing the dialyzer runs. It seems like this appears only
>> when a sufficiently large amount of Erlang source code is used for the
>> dialyzer run. The person suspected that a corrupt file might have
>> caused the problem to appear, but I doubted that -Wrace_conditions would
>> be modifying any state on disk (it wouldn't be changing a PLT file,
>> right?).
>
> This is a known issue. The analysis that finds data races performs intra-procedural data flow analysis and can sometimes explode in time. Hence it is not enabled by default. Enable it at your own risk.
It makes sense that this is a known issue, but it would be nice if the dialyzer HTML documentation warned about it.
Thanks,
Michael
More information about the erlang-bugs
mailing list