1
votes

I ran Dialyzer and got the following error:

Checking whether the PLT /tmp/.BRANCH.service.deps.plt is up-to-date...
{"init terminating in do_boot",
 {{case_clause,
      {{nocatch,
           {dialyzer_error,
               [78,111,116,32,97,32,114,101,103,117,108,97,114,32,102,105,108,
                101,58,32,
                "/usr/lib/erlang/lib/compiler-6.0.3/ebin/beam_a.beam",10]}},
       [{dialyzer_plt,compute_md5_from_file,1,
            [{file,"dialyzer_plt.erl"},{line,543}]},
        {dialyzer_plt,compute_new_md5_1,3,
            [{file,"dialyzer_plt.erl"},{line,509}]},
        {dialyzer_plt,check_plt1,3,[{file,"dialyzer_plt.erl"},{line,485}]},
        {dialyzer_plt,'-subproc/1-fun-0-',1,
            [{file,"dialyzer_plt.erl"},{line,603}]}]}},
  [{dialyzer_cl,check_plt,3,[{file,"dialyzer_cl.erl"},{line,249}]},
   {dialyzer_cl,plt_common,3,[{file,"dialyzer_cl.erl"},{line,182}]},
   {dialyzer,'-cl_check_init/1-fun-0-',1,[{file,"dialyzer.erl"},{line,94}]},
   {dialyzer,doit,1,[{file,"dialyzer.erl"},{line,236}]},
   {dialyzer,plain_cl,0,[{file,"dialyzer.erl"},{line,75}]},
   {init,start_em,1,[]},
   {init,do_boot,3,[]}]}}

What went wrong and how do I fix it? What do the list of integers mean?

1
This is not just a failure, it's an ugly crash, and it warrants reporting as a bug, because Dialyzer shouldn't be crashing and burning like that!aronisstav

1 Answers

2
votes

The print-out inside the dialyzer_error tuple is an iolist. We can pretty print it using the Erlang shell (started with erl):

1> [78,111,116,32,97,32,114,101,103,117,108,97,114,32,102,105,108,101,58,32].
"Not a regular file: "
2>

You realize it is complaining about bytecode (.beam) from a previous compiler version than the current one I am running. I removed them, and then it ran.