views:

154

answers:

2

I'm a huge erlang noob, and while compiling ejabberd, I get this error:

make[1]: Entering directory `/usr/src/ejabberd-2.0.5/src/mod_muc'
/usr/local/bin/erlc -W -I .. -pz .. -o .. mod_muc_room.erl
Function: '-process_admin_items_set/4-fun-0-'/2
./mod_muc_room.erl:none: internal error in v3_codegen;
crash reason: {{case_clause,
                   {'EXIT',
                       {function_clause,
                           [{v3_codegen,longest,
                                [[{ker39},{ker38},{ker37},{ker36},{cor36}],
                                 []]},
                            {v3_codegen,longest,2},
                            {v3_codegen,sr_merge,2},
                            {v3_codegen,match_cg,5},
                            {v3_codegen,guard_match_cg,6},
                            {v3_codegen,guard_cg,5},
                            {v3_codegen,'-guard_cg_list/6-anonymous-0-',4},
                            {v3_codegen,flatmapfoldl,3}]}}},
               [{compile,'-select_passes/2-anonymous-2-',2},
                {compile,'-internal_comp/4-anonymous-1-',2},
                {compile,fold_comp,3},
                {compile,internal_comp,4},
                {compile,internal,3}]}
make[1]: *** [../mod_muc_room.beam] Error 1
make[1]: Leaving directory `/usr/src/ejabberd-2.0.5/src/mod_muc'
make: *** [all-recursive] Error 1

What would cause this?

+1  A: 

Hello.

This is internal Erlang compiler bug. Please upgrade your Erlang runtime. Probably Erlang R12B-5 is the best choice.

Quick search shows this email from the Erlang/OTP team. It is states that the bug existed before R12B-0, so it is probably fixed in newer releases.

Erlang R12B-5 is available here:

  • Ubuntu - use Jaunty packages
  • Debian - use packages from Sid
  • Windows - use packages from http://erlang.org/download.html
  • other - figure out on your own :)
gleber
+3  A: 

This is an internal compiler bug in R13A - it has been fixed in the R13B snapshot as of 2009-04-15_18. R13B-0 will be released on Wednesday 22nd April 2009, and mod_muc will compile fine with that.

However, ejabberd isn't quite R13B compatible yet - the ram_file_io server doesn't support the new unicode option in the IO server protocol, so you won't be able to successfully start ejabberd with R13B until that is fixed. Your best bet for now is R12B-5.

archaelus