processone / ejabberd

Robust, Ubiquitous and Massively Scalable Messaging Platform (XMPP, MQTT, SIP Server)
https://www.process-one.net/en/ejabberd/
Other
6.1k stars 1.51k forks source link

mod_muc:handle_info:340 unexpected info: {#Ref<0.2354930856.1946419201.58898>,false} #2880

Closed lemon2015 closed 5 years ago

lemon2015 commented 5 years ago

What version of ejabberd are you using?

18.01

What operating system (version) are you using?

Centos 7.3

How did you install ejabberd (source, package, distribution)?

package

What did not work as expected? Are there error messages in the log? What

2019-05-05 15:36:17.287 [error] <0.720.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2354930856.1946419201.51287>,false}
2019-05-05 15:36:17.288 [error] <0.720.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2354930855.70778882.229404>,false}

was the unexpected behavior? What was the expected result?

At that time, all of the users of online group chat could not send messages normally. It lasts about 1-3 minutes. I didn't see the scene client. so , can you give me some advise for it ? I will go to the scene tomorrow. thanks.

this is a part of my ejabberd.yml about mod_muc

 mod_mam:
    iqdisc: one_queue
    db_type: sql
    default: always
    request_activates_archiving: false
    assume_mam_usage: false
    cache_size: 1000
    cache_life_time: 3600
  mod_muc:
    db_type: sql
    host: "conference.@HOST@"
    max_user_conferences: 50
    history_size: 20
    default_room_options:
      mam: true
      logging: true
      persistent: false
    access:
      - allow
    access_admin:
      - allow: admin
    access_create: muc_create
    access_persistent: muc_create
  mod_muc_admin: {}
  ## mod_muc_log: {}
licaon-kter commented 5 years ago

Full config? More error log?

prefiks commented 5 years ago

So those errors in itself should cause problems with a platform, but i am not completly sure what send those messages, possibly some messages aren't processed due to timeouts? Are there any other errors in your logs?

lemon2015 commented 5 years ago

here is my ejabberd cluster config:

##
###'           ejabberd configuration file
###
###

### The parameters used in this configuration file are explained in more detail
### in the ejabberd Installation and Operation Guide.
### Please consult the Guide in case of doubts, it is included with
    ### your copy of ejabberd, and is also available online at
### http://www.process-one.net/en/ejabberd/docs/

    ### The configuration file is written in YAML.
### Refer to http://en.wikipedia.org/wiki/YAML for the brief description.
    ### However, ejabberd treats different literals as different types:
    ###
### - unquoted or single-quoted strings. They are called "atoms".
###   Example: dog, 'Jupiter', '3.14159', YELLOW
###
### - numeric literals. Example: 3, -45.0, .0
###
### - quoted or folded strings.
###   Examples of quoted string: "Lizzard", "orange".
###   Example of folded string:
    ###   > Art thou not Romeo,
###     and a Montague?

###.  =======
###'  LOGGING

##
## loglevel: Verbosity of log files generated by ejabberd.
## 0: No ejabberd log at all (not recommended)
## 1: Critical
## 2: Error
## 3: Warning
## 4: Info
## 5: Debug
##
loglevel: 2 

##
## rotation: Describe how to rotate logs. Either size and/or date can trigger
## log rotation. Setting count to N keeps N rotated logs. Setting count to 0
## does not disable rotation, it instead rotates the file and keeps no previous
## versions around. Setting size to X rotate log when it reaches X bytes.
## To disable rotation set the size to 0 and the date to ""
## Date syntax is taken from the syntax newsyslog uses in newsyslog.conf.
## Some examples:
    ##  $D0     rotate every night at midnight
##  $D23    rotate every day at 23:00 hr
##  $W0D23  rotate every week on Sunday at 23:00 hr
##  $W5D16  rotate every week on Friday at 16:00 hr
##  $M1D0   rotate on the first day of every month at midnight
##  $M5D6   rotate on every 5th day of the month at 6:00 hr
##
log_rotate_size: 10485760
log_rotate_date: "$D0"
log_rotate_count: 5

##
## overload protection: If you want to limit the number of messages per second
## allowed from error_logger, which is a good idea if you want to avoid a flood
## of messages when system is overloaded, you can set a limit.
## 100 is ejabberd's default.
log_rate_limit: 100

##
## watchdog_admins: Only useful for developers: if an ejabberd process
## consumes a lot of memory, send live notifications to these XMPP
## accounts.
##
## watchdog_admins:
    ##   - "admin@****.com"

###.  ===============
###'  CACHE CONFIG

use_cache: true
cache_missed: true
cache_size: 3000
cache_life_time: 3600

###.  ===============
###'  NODE PARAMETERS

##
## net_ticktime: Specifies net_kernel tick time in seconds. This options must have
## identical value on all nodes, and in most cases shouldn't be changed at all from
## default value.
##
## net_ticktime: 60

###.  ================
###'  SERVED HOSTNAMES

##
## hosts: Domains served by ejabberd.
## You can define one or several, for example:
## hosts:
    ##   - "example.net"
##   - "example.com"
##   - "example.org"
##
hosts:
    - "**.****.com"
##
## route_subdomains: Delegate subdomains to other XMPP servers.
## For example, if this ejabberd serves example.org and you want
## to allow communication with an XMPP server called im.example.org.
##
## route_subdomains: s2s

###.  ============
###'  Certificates

## List all available PEM files containing certificates for your domains,
## chains of certificates or certificate keys. Full chains will be built
## automatically by ejabberd.
##
certfiles:
    - "/opt/ejabberd/conf/server.pem"
##   - "/etc/letsencrypt/live/example.org/*.pem"
##   - "/etc/letsencrypt/live/example.com/*.pem"

ca_file: "/opt/ejabberd/conf/cacert.pem"

###.  =================
###'  TLS configuration

## Note that the following configuration is the default
## configuration of the TLS driver, so you don't need to
## uncomment it.
##
## define_macro:
    ##   'TLS_CIPHERS': "HIGH:!aNULL:!eNULL:!3DES:@STRENGTH"
##   'TLS_OPTIONS':
##     - "no_sslv3"
##     - "cipher_server_preference"
##     - "no_compression"
##   'DH_FILE': "/opt/ejabberd/conf/dhparams.pem" # generated with: openssl dhparam -out dhparams.pem 2048
##
## c2s_dhfile: 'DH_FILE'
## s2s_dhfile: 'DH_FILE'
## c2s_ciphers: 'TLS_CIPHERS'
## s2s_ciphers: 'TLS_CIPHERS'
## c2s_protocol_options: 'TLS_OPTIONS'
## s2s_protocol_options: 'TLS_OPTIONS'
define_macro:
    ## 'CERTFILE': "/opt/ejabberd/conf/server.pem"
'TLSOPTS':
- "no_sslv3"
###.  ===============
###'  LISTENING PORTS
##
## listen: The ports ejabberd will listen on, which service each is handled
## by and what options to start it with.
##
listen:
    -
        port: 7222
    ## ip: "::"
module: ejabberd_c2s
starttls: true
protocol_options: 'TLSOPTS'
    ##
## To enforce TLS encryption for client connections,
    ## use this instead of the "starttls" option:
    ##
## starttls_required: true
    ##
## Stream compression
    ##
## zlib: true
    ##
    max_stanza_size: 65536
shaper: c2s_shaper
access: c2s
-
port: 7269
    ## ip: "::"
module: ejabberd_s2s_in
max_stanza_size: 131072
shaper: s2s_shaper
-
port: 7280
    ## ip: "::"
module: ejabberd_http
request_handlers:
    "/websocket": ejabberd_http_ws
"/bosh": mod_bosh
    ##  "/api": mod_http_api
    ##  "/pub/archive": mod_http_fileserver
web_admin: false
http_bind: true
    ## register: true
captcha: false
tls: true
protocol_options: 'TLSOPTS'
-
port: 7281
    ## ip: "::"
module: ejabberd_http
request_handlers:
    ##  "/websocket": ejabberd_http_ws
    ##  "/bosh": mod_bosh
"/api": mod_http_api
    ##  "/pub/archive": mod_http_fileserver
web_admin: true
    ## register: true
captcha: false
tls: true

  ##
## ejabberd_service: Interact with external components (transports, ...)
##
## -
  ##   port: 8888
  ##   ip: "::"
  ##   module: ejabberd_service
  ##   access: all
  ##   shaper_rule: fast
  ##   ip: "127.0.0.1"
  ##   privilege_access:
    ##      roster: "both"
  ##      message: "outgoing"
  ##      presence: "roster"
  ##   delegations:
    ##      "urn:xmpp:mam:1":
##        filtering: ["node"]
  ##      "http://jabber.org/protocol/pubsub":
##        filtering: []
  ##   hosts:
    ##     "icq.example.org":
##       password: "secret"
  ##     "sms.example.org":
##       password: "secret"

  ##
## ejabberd_stun: Handles STUN Binding requests
  ##
## -
  ##   port: 3478
  ##   transport: udp
  ##   module: ejabberd_stun

  ##
## To handle XML-RPC requests that provide admin credentials:
    ##
## -
  ##   port: 4560
  ##   ip: "::"
  ##   module: ejabberd_xmlrpc
  ##   maxsessions: 10
  ##   timeout: 5000
  ##   access_commands:
    ##     admin:
    ##       commands: all
  ##       options: []

  ##
## To enable secure http upload
  ##
## -
  ##   port: 5444
  ##   ip: "::"
  ##   module: ejabberd_http
  ##   request_handlers:
    ##     "": mod_http_upload
  ##   tls: true
  ##   protocol_options: 'TLSOPTS'
  ##   dhfile: 'DHFILE'
  ##   ciphers: 'CIPHERS'

## Disabling digest-md5 SASL authentication. digest-md5 requires plain-text
## password storage (see auth_password_format option).
## disable_sasl_mechanisms: "digest-md5"

###.  ==================
###'  S2S GLOBAL OPTIONS

##
## s2s_use_starttls: Enable STARTTLS for S2S connections.
## Allowed values are: false, optional or required
## You must specify 'certfiles' option
##
s2s_use_starttls: optional

##
## S2S whitelist or blacklist
##
## Default s2s policy for undefined hosts.
##
## s2s_access: s2s

##
## Outgoing S2S options
##
## Preferred address families (which to try first) and connect timeout
## in seconds.
##
## outgoing_s2s_families:
    ##   - ipv4
##   - ipv6
## outgoing_s2s_timeout: 190

###.  ==============
###'  AUTHENTICATION

##
## auth_method: Method used to authenticate the users.
## The default method is the internal.
## If you want to use a different method,
## comment this line and enable the correct ones.
## auth_method: internal

##
## Store the plain passwords or hashed for SCRAM:
auth_password_format: plain
## auth_password_format: scram
##
## Define the FQDN if ejabberd doesn't detect it:
## fqdn: "server3.example.com"

##
## Authentication using external script
## Make sure the script is executable by ejabberd.
##
auth_method: external
extauth_program: "/bin/php /opt/ejabberd/ext_scripts/auth_script.php"
extauth_instances: 3
auth_use_cache: false
resource_conflict: closeold

##
## Authentication using SQL
## Remember to setup a database in the next section.
##
## auth_method: sql

##
## Authentication using PAM
##
## auth_method: pam
## pam_service: "pamservicename"

##
## Authentication using LDAP
##
## auth_method: ldap
##
## List of LDAP servers:
    ## ldap_servers:
    ##   - "localhost"
##
## Encryption of connection to LDAP servers:
    ## ldap_encrypt: none
## ldap_encrypt: tls
##
## Port to connect to on LDAP servers:
    ## ldap_port: 389
## ldap_port: 636
##
## LDAP manager:
    ## ldap_rootdn: "dc=example,dc=com"
##
## Password of LDAP manager:
    ## ldap_password: "******"
##
## Search base of LDAP directory:
    ## ldap_base: "dc=example,dc=com"
##
## LDAP attribute that holds user ID:
    ## ldap_uids:
    ##   - "mail": "%u@mail.example.org"
##
## LDAP filter:
    ## ldap_filter: "(objectClass=shadowAccount)"

##
## Anonymous login support:
    ##   auth_method: anonymous
##   anonymous_protocol: sasl_anon | login_anon | both
##   allow_multiple_connections: true | false
##
## host_config:
    ##   "public.example.org":
##     auth_method: anonymous
##     allow_multiple_connections: false
##     anonymous_protocol: sasl_anon
##
## To use both anonymous and internal authentication:
    ##
## host_config:
    ##   "public.example.org":
##     auth_method:
    ##       - internal
##       - anonymous

###.  ==============
###'  DATABASE SETUP

## ejabberd by default uses the internal Mnesia database,
## so you do not necessarily need this section.
## This section provides configuration examples in case
## you want to use other database backends.
## Please consult the ejabberd Guide for details on database creation.

    sql_type: mysql
sql_server: "172.17.100.11"
sql_database: "ejabberd"
sql_username: "ejabberd"
sql_password: "ejabberd"
sql_port: 3306

##
## MySQL server:
    ##
## sql_type: mysql
## sql_server: "server"
## sql_database: "database"
## sql_username: "username"
## sql_password: "password"
##
## If you want to specify the port:
    ## sql_port: 1234

##
## PostgreSQL server:
    ##
## sql_type: pgsql
## sql_server: "server"
## sql_database: "database"
## sql_username: "username"
## sql_password: "password"
##
## If you want to specify the port:
    ## sql_port: 1234
##
## If you use PostgreSQL, have a large database, and need a
## faster but inexact replacement for "select count(*) from users"
    ##
## pgsql_users_number_estimate: true

##
## SQLite:
    ##
## sql_type: sqlite
## sql_database: "/opt/ejabberd-18.01/database/ejabberd.db"

##
## ODBC compatible or MSSQL server:
    ##
## sql_type: odbc
## sql_server: "DSN=ejabberd;UID=ejabberd;PWD=ejabberd"

##
## Number of connections to open to the database for each virtual host
##
sql_pool_size: 10

##
## Interval to make a dummy SQL request to keep the connections to the
## database alive. Specify in seconds: for example 28800 means 8 hours
##
sql_keepalive_interval: 28800 

###.  ===============
###'  TRAFFIC SHAPERS

shaper:
    ##
## The "normal" shaper limits traffic speed to 1000 B/s
  ##
  normal: 1000

  ##
## The "fast" shaper limits traffic speed to 50000 B/s
  ##
  fast: 50000

##
## This option specifies the maximum number of elements in the queue
## of the FSM. Refer to the documentation for details.
    ##
max_fsm_queue: 10000

###.   ====================
###'   ACCESS CONTROL LISTS
acl:
    ##
## The 'admin' ACL grants administrative privileges to XMPP accounts.
  ## You can put here as many accounts as you want.
  ##
  admin:
      user:
          - "admin@**.***.com"
  ##
## Blocked users
  ##
## blocked:
    ##   user:
    ##     - "baduser@example.org"
  ##     - "test"

  ## Local users: don't modify this.
  ##
  local:
      user_regexp: ""

  ##
## More examples of ACLs
  ##
## jabberorg:
    ##   server:
    ##     - "jabber.org"
  ## aleksey:
    ##   user:
    ##     - "aleksey@jabber.ru"
  ## test:
    ##   user_regexp: "^test"
  ##   user_glob: "test*"

  ##
## Loopback network
  ##
  loopback:
      ip:
          - "127.0.0.0/8"
          - "::1/128"
          - "::FFFF:127.0.0.1/128"

  ##
## Bad XMPP servers
  ##
## bad_servers:
    ##   server:
    ##     - "xmpp.zombie.org"
  ##     - "xmpp.spam.com"

##
## Define specific ACLs in a virtual host.
##
## host_config:
    ##   "localhost":
##     acl:
    ##       admin:
    ##         user:
    ##           - "bob-local@localhost"

###.  ============
###'  SHAPER RULES

shaper_rules:
    ## Maximum number of simultaneous sessions allowed for a single user:
    ##max_user_sessions: 10
max_user_sessions:
    - 50: admin
- 10
  ## Maximum number of offline messages that users can have:
    max_user_offline_messages:
        - 5000: admin
- 100
  ## For C2S connections, all users except admins use the "normal" shaper
c2s_shaper:
    - none: admin
- normal
  ## All S2S connections use the "fast" shaper
s2s_shaper: fast

###.  ============
###'  ACCESS RULES
access_rules:
    ## This rule allows access only for local users:
    local:
        - allow: local
  ## Only non-blocked users can use c2s connections:
    c2s:
        - deny: blocked
- allow
  ## Only admins can send announcement messages:
    announce:
        - allow: admin
  ## Only admins can use the configuration interface:
configure:
    - allow: admin
  ## Only accounts of the local ejabberd server can create rooms:
    muc_create:
        - allow: local
  ## Only accounts on the local ejabberd server can create Pubsub nodes:
    pubsub_createnode:
        - allow: local
  ## In-band registration allows registration of any possible username.
  ## To disable in-band registration, replace 'allow' with 'deny'.
    register:
- allow
  ## Only allow to register from localhost
trusted_network:
    - allow: loopback
  ## Do not establish S2S connections with bad servers
  ## If you enable this you also have to uncomment "s2s_access: s2s"
  ## s2s:
    ##   - deny:
##     - ip: "XXX.XXX.XXX.XXX/32"
  ##   - deny:
##     - ip: "XXX.XXX.XXX.XXX/32"
  ##   - allow

## ===============
## API PERMISSIONS
## ===============
##
## This section allows you to define who and using what method
## can execute commands offered by ejabberd.
##
## By default "console commands" section allow executing all commands
## issued using ejabberdctl command, and "admin access" section allows
## users in admin acl that connect from 127.0.0.1 to  execute all
## commands except start and stop with any available access method
## (ejabberdctl, http-api, xmlrpc depending what is enabled on server).
##
## If you remove "console commands" there will be one added by
## default allowing executing all commands, but if you just change
## permissions in it, version from config file will be used instead
## of default one.
##
api_permissions:
    "restful api access":
who: all
what:
    - "*"
    - "!stop"
    - "!start"
"console commands":
from:
    - ejabberd_ctl
who: all
what: "*"
"admin access":
who:
    - access:
- allow:
- acl: loopback
- acl: admin
- oauth:
- scope: "ejabberd:admin"
- access:
- allow:
- acl: loopback
- acl: admin
what:
    - "*"
    - "!stop"
    - "!start"
"public commands":
who:
    - ip: "127.0.0.1/8"
what:
    - "status"
    - "connected_users_number"

## By default the frequency of account registrations from the same IP
## is limited to 1 account every 10 minutes. To disable, specify: infinity
## registration_timeout: 600

##
## Define specific Access Rules in a virtual host.
##
## host_config:
    ##   "localhost":
##     access:
    ##       c2s:
    ##         - allow: admin
##         - deny
##       register:
    ##         - deny

###.  ================
###'  DEFAULT LANGUAGE

##
## language: Default language used for server messages.
##
language: "en"

##
## Set a different default language in a virtual host.
##
## host_config:
    ##   "localhost":
##     language: "ru"

###.  =======
###'  CAPTCHA

##
## Full path to a script that generates the image.
##
## captcha_cmd: "/opt/ejabberd-18.01/lib/ejabberd-18.01/priv/bin/captcha.sh"

##
## Host for the URL and port where ejabberd listens for CAPTCHA requests.
##
## captcha_host: "****:5280"

##
## Limit CAPTCHA calls per minute for JID/IP to avoid DoS.
##
## captcha_limit: 5

###.  ====
###'  ACME
##
## In order to use the acme certificate acquiring through "Let's Encrypt"
## an http listener has to be configured to listen to port 80 so that
## the authorization challenges posed by "Let's Encrypt" can be solved.
##
## A simple way of doing this would be to add the following in the listening
## section and to configure port forwarding from 80 to 5280 either via NAT
## (for ipv4 only) or using frontends such as haproxy/nginx/sslh/etc.
##   - 
##    port: 5280
##    ip: "::"
##    module: ejabberd_http

acme:

    ## A contact mail that the ACME Certificate Authority can contact in case of
   ## an authorization issue, such as a server-initiated certificate revocation.
   ## It is not mandatory to provide an email address but it is highly suggested.
    contact: "mailto:admin@****"

   ## The ACME Certificate Authority URL.
   ## This could either be:
    ##   - https://acme-v01.api.letsencrypt.org - (Default) for the production CA
##   - https://acme-staging.api.letsencrypt.org - for the staging CA
##   - http://localhost:4000 - for a local version of the CA
ca_url: "https://acme-v01.api.letsencrypt.org"

###.  =======
###'  MODULES

##
## Modules enabled in all ejabberd virtual hosts.
##
modules:
    mod_adhoc: {}
mod_admin_extra: {}
mod_announce: # recommends mod_adhoc
access: announce
mod_blocking: {} # requires mod_privacy
mod_caps: {}
mod_carboncopy: {}
mod_client_state: {}
mod_configure: {} # requires mod_adhoc
  ## mod_delegation: {} # for xep0356
    mod_disco: {}
  ## mod_echo: {}
  ## mod_irc: {}
mod_bosh: {}
  ## mod_http_fileserver:
    ##   docroot: "/var/www"
  ##   accesslog: "/opt/ejabberd-18.01/logs/access.log"
  ## mod_http_upload:
    ##   # docroot: "@HOME@/upload"
  ##   put_url: "https://@HOST@:5444"
  ##   thumbnail: false # otherwise needs the identify command from ImageMagick installed
  ## mod_http_upload_quota:
    ##   max_days: 30
mod_last: {}
  ## XEP-0313: Message Archive Management
  ## You might want to setup a SQL backend for MAM because the mnesia database is
  ## limited to 2GB which might be exceeded on large servers
  ## mod_mam: {} # for xep0313, mnesia is limited to 2GB, better use an SQL backend
mod_mam:
    iqdisc: one_queue
db_type: sql
default: always
request_activates_archiving: false
assume_mam_usage: false
cache_size: 1000
cache_life_time: 3600
mod_muc:
    db_type: sql
host: "conference.@HOST@"
max_user_conferences: 50
history_size: 20
default_room_options:
    mam: true
      ##logging: true
persistent: false
access:
    - allow
access_admin:
    - allow: admin
access_create: muc_create
access_persistent: muc_create
mod_muc_admin: {}
  ## mod_muc_log: {}
mod_multicast: {} 
  ##  host: "multicast.****.com"
  ##  access: all
  ##  limits:
    ##    local:
    ##      message: 40
  ##      presence: infinite
  ##    remote:
    ##      message: 150
mod_offline:
    db_type: sql
access_max_user_messages: max_user_offline_messages
  ##mod_offline_http_post: {}
  ##   post_url: "https://***.com/path"
mod_ping: {}
  ## mod_pres_counter:
    ##   count: 5
  ##   interval: 60
mod_privacy: {}
mod_private: {}
  ## mod_proxy65: {}
mod_pubsub:
    access_createnode: pubsub_createnode
    ## reduces resource comsumption, but XEP incompliant
ignore_pep_from_offline: true
    ## XEP compliant, but increases resource comsumption
    ## ignore_pep_from_offline: false
last_item_cache: false
max_items_node: 10
plugins:
    - "flat"
    - "pep" # pep requires mod_caps
mod_push: {}
mod_push_keepalive: {}
mod_register:
    ##
## Protect In-Band account registrations with CAPTCHA.
    ##
##   captcha_protected: true
    ##
## Set the minimum informational entropy for passwords.
    ##
##   password_strength: 32
    ##
## After successful registration, the user receives
    ## a message with this subject and body.
    ##
    welcome_message:
        subject: "Welcome!"
body: |-
    Hi.
        Welcome to this XMPP server.
    ##
## When a user registers, send a notification to
    ## these XMPP accounts.
    ##
##   registration_watchers:
    ##     - "admin1@example.org"
    ##
## Only clients in the server machine can register accounts
    ##
    ip_access: trusted_network
    ##
## Local c2s or remote s2s users cannot register accounts
    ##
##   access_from: deny
access: register
mod_roster:
    use_cache: true
cache_size: 10000
cache_life_time: 3600
mod_shared_roster:
    db_type: sql 
  ## mod_stats: {}
  ## mod_time: {}
mod_vcard:
    search: false
use_cache: true
cache_size: 10000
cache_life_time: 3600
mod_vcard_xupdate: {}
  ## Convert all avatars posted by Android clients from WebP to JPEG
  ## mod_avatar:  # this module needs compile option --enable-graphics
  ##   convert:
    ##     webp: jpeg
mod_version: {}
mod_stream_mgmt: {}
  ##   Non-SASL Authentication (XEP-0078) is now disabled by default
##   because it's obsoleted and is used mostly by abandoned
  ##   client software
  ## mod_legacy_auth: {}
  ##   The module for S2S dialback (XEP-0220). Please note that you cannot
  ##   rely solely on dialback if you want to federate with other servers,
  ##   because a lot of servers have dialback disabled and instead rely on
  ##   PKIX authentication. Make sure you have proper certificates installed
  ##   and check your accessibility at https://check.messaging.one/
    mod_s2s_dialback: {}
mod_http_api: {}

##
## Enable modules with custom options in a specific virtual host
##
## host_config:
    ##   "localhost":
##     modules:
    ##       mod_echo:
    ##         host: "mirror.localhost"

##
## Enable modules management via ejabberdctl for installation and
## uninstallation of public/private contributed modules
## (enabled by default)
##

allow_contrib_modules: true

###.
###'
### Local Variables:
    ### mode: yaml
### End:
    ### vim: set filetype=yaml tabstop=8 foldmarker=###',###. foldmethod=marker:
lemon2015 commented 5 years ago

Almost all of them occur at peak business hours(15:00 ~ 16:00).I will merge the same type of error logs to you :


2019-05-03 15:31:59.514 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.1369964546.152374>,false}
2019-05-03 15:31:59.514 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.3611820033.148499>,false}
2019-05-03 15:31:59.514 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.1369964546.153530>,false}
2019-05-03 15:31:59.514 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.3611820033.152001>,false}
2019-05-03 15:31:59.514 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.1369964546.154797>,false}
2019-05-03 15:31:59.514 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.1369964546.155779>,false}
2019-05-03 15:31:59.514 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.3611820033.157423>,false}
2019-05-03 15:31:59.514 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.3611820033.160881>,false}
2019-05-03 15:31:59.514 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.3611820033.165249>,false}
2019-05-03 15:31:59.514 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.3611820033.166776>,false}
2019-05-03 15:31:59.514 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.1369964546.159412>,false}
2019-05-03 15:31:59.514 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.3611820033.169437>,false}
2019-05-03 15:31:59.514 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.3611820033.170142>,false}
2019-05-03 15:31:59.514 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.1369964546.160978>,false}
2019-05-03 15:31:59.514 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.3611820033.173102>,false}

2019-05-05 15:37:52.059 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.1450442754.245134>,false}
2019-05-05 15:37:52.059 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.3862691841.216283>,false}
2019-05-05 15:37:52.059 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.1450442754.246448>,false}
2019-05-05 15:37:52.059 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.1450442754.246993>,false}
2019-05-05 19:11:40.886 [warning]  lager_file_backend dropped 82 messages in the last second that exceeded the limit of 100 messages/sec
2019-05-05 19:11:40.886 [error] <0.5819.4782> unexpected event from XML driver: {xmlstreamelement,{xmlel,<<"presence">>,[{<<"xmlns">>,<<"jabber:client">>},{<<"from">>,<<"u2_210186_980754960561@****.com">>},{<<"to">>,<<"u2_210186_980754960561@conference.****.com/u2_210186_980754960561">>}],[{xmlel,<<"x">>,[{<<"xmlns">>,<<"http://jabber.org/protocol/muc">>}],[{xmlel,<<"history">>,[{<<"maxchars">>,<<"0">>}],[]}]}]}}; xmlstreamstart was expected

2019-05-06 15:38:51.289 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.3988783105.143389>,{item,<<"u3_ohjrt0q02wlk0ux_n2mvll3_gfgg (1)">>}}
2019-05-06 15:42:17.392 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.1493696514.18583>,false}
2019-05-06 15:42:17.392 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.1493696514.18612>,false}
2019-05-06 15:42:17.392 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.3989045249.185005>,false}
2019-05-06 15:42:17.392 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.1493696514.28001>,false}
2019-05-06 15:42:17.392 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.1493696514.39971>,false}
2019-05-06 15:42:17.392 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.3989045249.207814>,false}
2019-05-06 15:42:17.392 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.3989045249.209748>,false}
2019-05-06 15:42:17.392 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.1493696514.41423>,false}
2019-05-06 15:42:17.392 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.1493696514.43335>,false}
2019-05-06 15:42:17.393 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.3989045249.211645>,false}
2019-05-06 15:42:17.393 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.1493696514.44779>,false}
2019-05-06 15:42:17.393 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.3989045249.213694>,false}
2019-05-06 15:42:17.393 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.3989045249.215065>,false}
2019-05-06 15:42:17.393 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.3989045249.216218>,false}
2019-05-06 15:42:17.394 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.1493696514.47266>,false}
2019-05-06 15:42:17.394 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.3989045249.218741>,false}
2019-05-06 15:42:17.394 [error] <0.677.0>@mod_muc:handle_info:340 unexpected info: {#Ref<0.2933198335.3989045249.219972>,false}
2019-05-06 23:59:01.404 [warning]  lager_file_backend dropped 64 messages in the last second that exceeded the limit of 100 messages/sec

2019-05-07 17:02:45 =ERROR REPORT====
    unexpected event from XML driver: {xmlstreamelement,{xmlel,<<"presence">>,[{<<"xmlns">>,<<"jabber:client">>},{<<"from">>,<<"kf_hongyu1@****.com/web">>}],[{xmlel,<<"show">>,[],[{xmlcdata,<<"chat">>}]},{xmlel,<<"status">>,[],[{xmlcdata,<<"%7B%22aId%22%3A%22225308%22%2C%22sId%22%3A%22292403%22%2C%22timestamp%22%3A1557219764611%2C%22status%22%3A%7B%22im%22%3A1%7D%7D">>}]}]}}; xmlstreamstart was expected2019-05-07 21:41:26 =ERROR REPORT====
    unexpected event from XML driver: {xmlstreamelement,{xmlel,<<"presence">>,[{<<"xmlns">>,<<"jabber:client">>}],[]}}; xmlstreamstart was expected2019-05-07 21:41:38 =ERROR REPORT====
    unexpected event from XML driver: {xmlstreamelement,{xmlel,<<"presence">>,[{<<"xmlns">>,<<"jabber:client">>}],[]}}; xmlstreamstart was expected2019-05-07 21:41:41 =ERROR

2019-05-08 08:06:44.604 [error] <0.537.0>@xmpp_socket:start:108 CRASH REPORT Process <0.537.0> with 0 neighbours crashed with reason: no match of right hand value ignore in xmpp_socket:start/4 line 108
2019-05-08 08:06:44.605 [error] <0.536.0>@xmpp_socket:start:108 Supervisor ejabberd_listener had child {7222,{0,0,0,0},tcp} started with ejabberd_listener:start({7222,{0,0,0,0},tcp}, ejabberd_c2s, [{access,c2s},{shaper,c2s_shaper},{max_stanza_size,65536},{protocol_options,[<<"no_sslv3">>]},{starttls,...}]) at <0.537.0> exit with reason no match of right hand value ignore in xmpp_socket:start/4 line 108 in context child_terminated

2019-05-08 08:06:44 =CRASH REPORT====
    crasher:
initial call: ejabberd_listener:init/3
pid: <0.537.0>
registered_name: []
exception error: {{badmatch,ignore},[{xmpp_socket,start,4,[{file,"src/xmpp_socket.erl"},{line,108}]},{ejabberd_listener,accept,4,[{file,"src/ejabberd_listener.erl"},{line,297}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,247}]}]}    ancestors: [ejabberd_listener,ejabberd_sup,<0.66.0>]
message_queue_len: 0
messages: []
links: [#Port<0.7439635>,<0.536.0>,#Port<0.21070>]
dictionary: []
trap_exit: false
status: running
heap_size: 987
stack_size: 27
reductions: 6001167122
neighbours:
    2019-05-08 08:06:44 =SUPERVISOR REPORT====
    Supervisor: {local,ejabberd_listener}
Context:    child_terminated
Reason:     {{badmatch,ignore},[{xmpp_socket,start,4,[{file,"src/xmpp_socket.erl"},{line,108}]},{ejabberd_listener,accept,4,[{file,"src/ejabberd_listener.erl"},{line,297}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,247}]}]}     Offender:   [{pid,<0.537.0>},{id,{7222,{0,0,0,0},tcp}},{mfargs,{ejabberd_listener,start,[{7222,{0,0,0,0},tcp},ejabberd_c2s,[{access,c2s},{shaper,c2s_shaper},{max_stanza_size,65536},{protocol_options,[<<"no_sslv3">>]},{starttls,true}]]}},{restart_type,transient},{shutdown,brutal_kill},{child_type,worker}]

2019-05-08 08:06:44.604 [error] <0.537.0>@xmpp_socket:start:108 CRASH REPORT Process <0.537.0> with 0 neighbours crashed with reason: no match of right hand value ignore in xmpp_socket:start/4 line 108
2019-05-08 08:06:44.605 [error] <0.536.0>@xmpp_socket:start:108 Supervisor ejabberd_listener had child {7222,{0,0,0,0},tcp} started with ejabberd_listener:start({7222,{0,0,0,0},tcp}, ejabberd_c2s, [{access,c2s},{shaper,c2s_shaper},{max_stanza_size,65536},{protocol_options,[<<"no_sslv3">>]},{starttls,...}]) at <0.537.0> exit with reason no match of right hand value ignore in xmpp_socket:start/4 line 108 in context child_terminated
lemon2015 commented 5 years ago

Full config? More error log?

Hi, how can I debug this ?

licaon-kter commented 5 years ago

First: loglevel: 4

Raise your limits a bit:

  - 
    port: 7222
    ...
    max_stanza_size: 262144
  -
    port: 7269
    ...
    max_stanza_size: 524288
...

shaper:
  normal: 5242880
  fast: 10485760

Is your php auth_script.php used when this happens?

lemon2015 commented 5 years ago

First: loglevel: 4

Raise your limits a bit:

  - 
    port: 7222
    ...
    max_stanza_size: 262144
  -
    port: 7269
    ...
    max_stanza_size: 524288
...

shaper:
  normal: 5242880
  fast: 10485760

Is your php auth_script.php used when this happens?

yes ,is it related to the number of instances of auth script? Now there are three worked.I've changed the configuration as you said. Feedback later. Thanks a lot.

2019-05-09 18:21:58.492 [warning] <0.16621.965>@ejabberd_c2s:process_info:253 got unexpected info: {item,{<<"bjyrgj10">>,<<"abc.com">>,<<>>},both}
2019-05-09 18:21:59.546 [warning] <0.16621.965>@ejabberd_c2s:process_info:253 got unexpected info: {item,{<<"deeest">>,<<"abc.com">>,<<>>},both}
2019-05-09 18:22:06.505 [warning] <0.16621.965>@ejabberd_c2s:process_info:253 got unexpected info: {item,{<<"030415949557">>,<<"abc.com">>,<<>>},both}
2019-05-09 18:22:06.641 [warning] <0.16621.965>@ejabberd_c2s:process_info:253 got unexpected info: {item,{<<"mark">>,<<"abc.com">>,<<>>},both}
2019-05-09 18:22:06.778 [warning] <0.16621.965>@ejabberd_c2s:process_info:253 got unexpected info: {item,{<<"mark1">>,<<"abc.com">>,<<>>},both}
2019-05-09 18:22:11.482 [warning] <0.16621.965>@ejabberd_c2s:process_info:253 got unexpected info: {item,{<<"hntb002">>,<<"abc.com">>,<<>>},both}

2019-05-09 18:25:07.564 [warning] <0.6638.1010>@ejabberd_websocket:ws_loop:218 received unexpected message, ignoring: {tcp_error,#Port<0.30773880>,etimedout}
zinid commented 5 years ago

The last ones are not related to the problem: they are coming from mod_shared_roster.

zinid commented 5 years ago

{tcp_error,#Port<0.30773880>,etimedout}

And this one must be fixed. But it's not related to the original problem at all.

zinid commented 5 years ago

unexpected info: {#Ref<0.2933198335.3989045249.219972>,false}

This one is caused by late arrival of sync_send_all_state_event reply, which is called here. It's harmless.

zinid commented 5 years ago

The crash of xmpp_socket has been fixed a long time ago.

zinid commented 5 years ago

unexpected event from XML driver

This one is related to Websockets I think, and probably has been fixed as well.

lemon2015 commented 5 years ago

{tcp_error,#Port<0.30773880>,etimedout}

And this one must be fixed. But it's not related to the original problem at all.

thanks again ,I will check it .

zinid commented 5 years ago

thanks again ,I will check it .

I meant that's ejabberd's bug. I have just fixed it in 4b6f1195c690e7532a11342921abdab3d9c9de6b

zinid commented 5 years ago

I close the issue because the original problem has been fixed.

zinid commented 5 years ago

Oops, forgot to mention the commit: 3d8711f708bbd7bb25b2b8b5a1714d775199a026

lock[bot] commented 4 years ago

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

lock[bot] commented 4 years ago

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.