erlang - Ejabberd iex live throws 'bad "K" value: \ ' error -


i installed ejabberd correctly( configure --enabled-all) without error. when want run in elixir mode error:

# ejabberdctl iexlive bad "k" value: \ usage: beam.smp [flags] [ -- [init_args] ] flags are:  -a size        suggested stack size in kilo words threads                in async-thread pool, valid range [16-8192] -a number      set number of threads in async thread pool,                valid range [0-1024] -b[c|d|i]      c have ctrl-c interrupt erlang shell,                d (or no option) disable break                handler, ignore break signals -c bool        enable or disable time correction -c mode        set time warp mode; valid modes are:                no_time_warp|single_time_warp|multi_time_warp -d             don't write crash dump internally detected errors                (halt(string) still produce crash dump) -fn[u|a|l]     control how filenames interpreted -hms size      set minimum heap size in words (default 233) -hmbs size     set minimum binary virtual heap size in words (default 32768) -hpds size     initial process dictionary size (default 10) -k boolean     enable or disable kernel poll -n[s|a|d]      control behavior of signals ports                note flag deprecated! -m<x> <y>      memory allocator switches,                see erts_alloc(3) documentation more info. -pc <set>      control characters considered printable (default latin1) -p number      set maximum number of processes on node,                valid range [1024-134217727] -q number      set maximum number of ports on node,                valid range [1024-134217727] -r number      set compatibility release number,                valid range [16-18] -r             force ets memory block moved on realloc -rg amount     set reader groups limit -sbt type      set scheduler bind type, valid types are: -stbt type     u|ns|ts|ps|s|nnts|nnps|tnnps|db -sbwt val      set scheduler busy wait threshold, valid values are:                none|very_short|short|medium|long|very_long. -scl bool      enable/disable compaction of scheduler load,                see erl(1) documentation more info. -sct cput      set cpu topology,                see erl(1) documentation more info. -secio bool    enable/disable eager check i/o scheduling,                see erl(1) documentation more info. -sub bool      enable/disable scheduler utilization balancing,                see erl(1) documentation more info. -sws val       set scheduler wakeup strategy, valid values are:                default|legacy. -swct val      set scheduler wake cleanup threshold, valid values are:                very_lazy|lazy|medium|eager|very_eager. -swt val       set scheduler wakeup threshold, valid values are:                very_low|low|medium|high|very_high. -sss size      suggested stack size in kilo words scheduler threads,                valid range [4-8192] -spp bool      set port parallelism scheduling hint -s n1:n2       set number of schedulers (n1), , number of                schedulers online (n2), maximum both                numbers 1024 -sp p1:p2      specify schedulers (p1) , schedulers online (p2)                percentages of logical processors configured , logical                processors available, respectively -t size        set maximum number of atoms emulator can handle                valid range [8192-0] -t number      set modified timing level, valid range [0-9] -v             print erlang version -v             turn on chatty mode (gcs reported etc) -w<i|w|e>      set error logger warnings mapping,                see error_logger documentation details -zdbbl size    set distribution buffer busy limit in kilobytes                valid range [1-2097151] -zdntgc time   set delayed node table gc in seconds                valid values infinity or intergers in range [0-100000000]  note if emulator started erlexec (typically erl script), these flags should specified +. 

i can run ejabberd server correctly. created user , went well. don't know going wrong.

my config elixir 1.1.1 , erlang r18.

any comment appreciated.

update 1

i didn't pass argument it. did follows:

  • download source file , untar it.

  • ./autogen ./configure --enable-all make && make install

  • everything went well. can run start , stop successfully. can run in live mode(ejabberdctl live).

the problem when run in ejabberdctl iexlive. before download ejabberd i've installed elixir 1.1.1. don't know maybe problem.

update 2

i went through code of ejabberdctl , found problem in line of code:

erlang_opts=" +k $poll -smp $smp +p $erl_processes $erl_options" 

i change

erlang_opts="" 

and worked. don't know make further problem or not. open issue @ repository.

this because $poll variable in +k $poll not initialized correctly. +k flag enables or disables kernel poll functionality erlang vm , acceptable values true or false.

the ejabberdctl shell script has default values $poll , other erlang vm options. uses ejabberdctl.cfg config file , overwrites default values ones included in config file.

you should use ejabberdctl.cfg set desired options uncommenting them follows:

#' poll: kernel polling ([true|false]) # # kernel polling option requires support in kernel. # additionally, need enable feature while compiling erlang. # # default: true # poll=true  #. #' smp: smp support ([enable|auto|disable]) # # explanation in erlang/otp documentation: # enable: starts erlang runtime system smp support enabled. #   may fail if no runtime system smp support available. # auto: starts erlang runtime system smp support enabled if #   available , more 1 logical processor detected. # disable: starts runtime system without smp support. # # default: enable # smp=enable 

this file resides on $ejabberd-installed-path/conf if installed ejabberd manually.


Comments