Experts in Instant Messaging and Push
  • Products
  • Solutions
  • Services
  • Shop
  • Customers
  • Company
  • Contact
  • Blog
  • | 3

    ejabberd 2.1 vs 3.0 memory consumption

    ejabberd is memory bound as session data is kept in RAM for each connected user. This means that available memory is the factor that limits the number of users an ejabberd node can handle. So memory usage was one of the main concern on the ejabberd 3 roadmap.

    We’re finally pleased to show some good results on this side.

    This shows ejabberd memory usage while running a Tsung benchmark scenario, which simulated users chatting and changing presence using real anonymized rosters, on ejabberd 2.1.11 and 3.0.0. The 2.1.11 crashed early during the test by lack of memory with 45000 connected users while 3.0 was using half the memory at the same time and was able to complete the whole test, handling 60000 users with limited memory usage.

    | Reply

    ejabberd 2.1.5 and exmpp 0.9.5 bugfix releases

    We are pleased to announce the bugfix releases ejabberd 2.1.5 and exmpp 0.9.5.

    Regarding ejabberd 2.1.5:

    The main changes are:

    • Erlang/OTP R12 support fixed
    • Erlang/OTP R14A support added
    • OpenSSL 0.9.8 or higher is required
    • BOSH: New optional connection attribute process-delay
    • C2S: Don’t ask for client certificate when using TLS
    • C2S: Inform client that SSL session caching is disabled
    • CTL: Fix problem when FIREWALL_WINDOW options for erl kernel were used
    • CTL: Some systems delete the lock dir; in such case don’t use Flock at all
    • Caps: Support all the hash functions required by XEP-0115
    • Config: Fix typo in –enable-transient_supervisors
    • Config: New configure option: –enable-nif
    • Extauth: Support parallel script running
    • MUC: Allow admins to see private rooms in disco
    • ODBC: Correct handling of SQL boolean types
    • ODBC: Discard too old queued requests (the caller has already got a timeout)
    • ODBC: Fixes wrong SQL escaping when –enable-full-xml is set
    • ODBC: Use ets instead of asking supervisor in ejabberd_odbc_sup:get_pids/1
    • Pubsub: Enforce disco features results
    • S2S: When logging s2s out connection attempt or success, log if TLS is used
    • Shared Rosters: When account is deleted, delete also member of stored rosters

    Release Notes

    Check the Release Notes for a more complete list of changes:
    http://www.process-one.net/en/ejabberd/release_notes/release_note_ejabberd_2.1.5

    If you upgrade from ejabberd 2.0.5 or older, read carefully the release notes of ejabberd 2.1.0 too, because there were several changes in the  installation path and the configuration options.

    Links

    The list of solved tickets since previous version is available on ProcessOne bug tracker:
    http://redir.process-one.net/ejabberd-2.1.5

    ejabberd 2.1.5 is available as source code package and binary installers for Linux 32 bits, 64 bits, Mac OS X Intel, and Windows:
    http://www.process-one.net/en/ejabberd/downloads

    Regarding exmpp 0.9.5:

    Brief summary of changes:

    • Add method to retrieve underling connection properties
    • Configurable Zlib support
    • Fix BOSH that didn’t work
    • Modify exmpp_component to use exmpp_socket instead of exmpp_tcp
    • Negotiate zlib compression before OR after SASL
    • Raise requirement to Erlang/OTP R12B-5
    • Replace calls to OTP module ssl_pkix with public_key
    • STARTTLS support
    • Session enhancements
    • Stream compression support for session

    Links

    exmpp home page:

    http://support.process-one.net/doc/display/EXMPP/ or easier to remember: http://exmpp.org/.

    Download exmpp 0.9.5 source code package from:

    http://download.process-one.net/exmpp/

    You can also check the ProcessOne Labs page:

    http://www.process-one.net/en/labs/

    | Reply

    ejabberd 2.1.4 and exmpp 0.9.4 bugfix releases

    We are pleased to announce the bugfix releases ejabberd 2.1.4 and exmpp 0.9.4.

    Regarding ejabberd 2.1.4:

    Brief summary of changes:

     

    • Bounce messages when closing c2s session
    • Bugfixes when handling Service Discovery to contacts
    • Don’t send error stanza as reply to error stanza
    • Don’t store blocked messages in offline queue
    • Extauth: Optionally cache extauth users in mnesia
    • Full support for XEP-0115 Entity Capabilities v1.5
    • HTTP-Bind: Remove 100ms delay, export functions for prebinding methods
    • LDAP: Inband password change, Extensible match support, and ldap_tls_verify
    • Localization: Updated most translations
    • MUC: Refactor code to reduce calls to get_affiliation and get_role
    • ODBC: Add created_at column also to PostgreSQL schema
    • PAM: New option pam_userinfotype to provide username or JID
    • Pubsub: Send node notification. Enforce presence_based_delivery, show_values
    • Vcard: Automatic vcard avatar addition in presence
    • WebAdmin: New Access rule webadmin_view for read-only

     

    Check the Release Notes for a more complete list of changes:

    http://www.process-one.net/en/ejabberd/release_notes/release_note_ejabberd_2.1.4

    If you upgrade from ejabberd 2.0.5 or older, read carefully the release notes of ejabberd 2.1.0 too, because there were several changes in the installation path and the configuration options.

    The list of solved tickets since previous version is available on ProcessOne bug tracker:
    http://redir.process-one.net/ejabberd-2.1.4

    Download

    ejabberd 2.1.4 is available as source code package and binary installers for Linux 32 bits, 64 bits, Mac OS X Intel, and Windows:
    http://www.process-one.net/en/ejabberd/downloads

    Regarding exmpp 0.9.4:

    Brief summary of changes:

    • Add unexpected-request with cancel needed by pubsub
    • Caps: Add exmpp_caps to the compilation scripts
    • Caps: Move Caps erlang records to a header file
    • Handle the case that the payload is incorrectly defined in error stanzas
    • Preliminary documentation of functions from ejabberd 2 available in exmpp
    • Remove unexpected-request with cancel as this is pubsub specific
    • Support for SRV DNS query

     

    exmpp home page:

    http://support.process-one.net/doc/display/EXMPP/
    or easier to remember: http://exmpp.org/

    Download

    Download exmpp 0.9.4 source code package from:

    http://download.process-one.net/exmpp/

    You can also check the ProcessOne Labs page:
    http://www.process-one.net/en/labs/

    | Reply

    [ANN] ejabberd 2.1.2 bugfix release

    We are pleased to announce ejabberd 2.1.2, which contains several bugfixes over last month’s maintenance release.

    Brief summary of changes:

    • Fix SASL PLAIN authentication message for RFC4616 compliance
    • Fix support for old Erlang/OTP R10 and R11
    • If server start fails due to config file problem, display some lines and stop node
    • PubSub and PEP: several improvements and bugfixes
    • WebAdmin: fix offline message displaying
    • When server stops with new stop_kindly command: inform users, clients, MUC

     

    Check the Release Notes for a more complete list of changes:
    http://www.process-one.net/en/ejabberd/release_notes/release_note_ejabberd_2.1.2

    If you upgrade from ejabberd 2.0.5 or older, read carefully the release notes of ejabberd 2.1.0 too, because there were several changes in the installation path and the configuration options.

    The list of solved tickets since previous version is available on ProcessOne bug tracker:
    http://redir.process-one.net/ejabberd-2.1.2

    ejabberd 2.1.2 is available as source code package and binary installers for Linux 32 bits, 64 bits, Mac OS X Intel, and Windows:
    http://www.process-one.net/en/ejabberd/downloads

    | Reply

    [ANN] exmpp 0.9.2 new release

    We are pleased to announce a new release of exmpp.

    exmpp is a XMPP library written in Erlang and released under the Erlang Public License. It helps the development of XMPP entities by providing functions to build and interpret XML stanzas. Once compiled, check the generated HTML documentation.

    List of main changes since the previous release six months ago:

    • Adding support for stream error stanzas in exmpp_session when logged in
    • Autodetect compilation parameters for Mac OS X Snow Leopard
    • Component support for exmpp, and some fixes
    • Fix segmentation fault with exmpp and expat
    • New functions exmpp_client_pubsub:discover_nodes/1 and 2
    • Stringprep Bidi checking doesn’t reject strings with RandALCat and LCat characters
    • queryns was not defined for IQ packets in received_packet record

    The API of exmpp 0.9.2 is considered to be stable, so there aren’t any
    major changes expected in the API before reaching 1.0.0.

    exmpp home page:
    http://exmpp.org/

    Download exmpp 0.9.2 source code package from:
    http://download.process-one.net/exmpp/

    You can also check the ProcessOne Labs page:
    http://www.process-one.net/en/labs/

    | Reply

    [ANN] ejabberd 2.1.1 bugfix release

    We are pleased to announce the bugfix release ejabberd 2.1.1, which was published on the 17th of December. ejabberd 2.1.1 contains several important bugfixes over last month’s major release.  None of the fixes is critical, but you are encouraged to update if you are running ejabberd 2.1.0.

    Short list of bugfixes:

    • Fix connection if starttls_required and zlib are set
    • S2S: fix allow_host/2 on subdomains. added hook s2s_allow_host
    • MUC: Add support for serving a Unique Room Name
    • MUC: Route vCard request to the occupant bare JID
    • MUC: Support converting one-to-one chat to MUC
    • PubSub: Receive same last published PEP items at reconnect if several resources online
    • PubSub: Typo in mod_pubsub_odbc breaks Service Discovery and more
    • Web: Fix memory and port leak when TLS is enabled in HTTP
    • WebAdmin: report correct last activity with odbc backends
    • Change captcha.sh to not depend on bash
    • Generate main XML file also when exporting only a vhost
    • Fix last newline in ejabberdctl result
    • Guide: fix -setcookie, mod_pubsub_odbc host, content_types

    Check the Release Notes for a more complete list of changes:
    http://www.process-one.net/en/ejabberd/release_notes/release_note_ejabberd_2.1.1

    If you upgrade from ejabberd 2.0.5 or older, read carefully the release notes, because there were several changes in the installation path and the configuration options.

    The list of solved tickets since 2.1.0 is available on ProcessOne bug tracker:
    http://redir.process-one.net/ejabberd-2.1.1

    ejabberd 2.1.1 is available as source code package and binary installers for Linux 32 bits, 64 bits, Mac OS X Intel, and Windows:
    http://www.process-one.net/en/ejabberd/downloads

    | Reply

    ejabberd 2.1.0 finally released

    ejabberd 2.1.0 is finally released, and it comes with an enormous list of 314 new features, improvements and bugfixes. It has been 21 months since the last major ejabberd release 2.0.0, and 8 months since 2.0.5.

    Very brief list of additions:

    • Erlang/OTP R13 support
    • HTTP-Bind (BOSH) optimization and clean-up
    • LDAPS support
    • MUC rooms can require a CAPTCHA to join the room
    • PubSub: major improvements. Update to XEP version 1.12
    • PEP and Caps: many improvements
    • Run commands with ejabberdctl or other frontends (XML-RPC, HTTP)
    • STUN server
    • XEPs like: XMPP Ping, Roster Versioning, Import/Export Format

    Check the Release Notes for a more complete list of changes:
    http://www.process-one.net/en/ejabberd/release_notes/release_note_ejabberd_2.1.0

    If you upgrade from a previous ejabberd version, read carefully the release notes, because there were several changes in the installation path and the configuration options.

    The list of solved tickets since 2.0.0 is available on ProcessOne bug tracker:
    http://redir.process-one.net/ejabberd-2.1.0

    ejabberd 2.1.0 is available as source code package and binary installers for Linux 32 bits, 64 bits, Mac OS X Intel, and Windows:
    http://www.process-one.net/en/ejabberd/downloads

    Acknowledgments:

    A big thank you to everyone who helped in the ejabberd project during the last months. This list is extracted from ejabberd’s commit log between version 2.0.0 and 2.1.0:

    Alexander Tsvyashchenko, Alexey Shchepin, Anastasia Gornostaeva, Andreas Ntaflos, Andreas van Cranenburgh, Andrzej Smyk, Andy Harb, Andy Skelton, Anton Podavalov, Apag0r, Attila Vangel, Badlop, Brian Cully, Carlos E. Lopez, Chris Newcombe, Christoph Anton Mitterer, Christophe Romain, Christopher Dupont, Clochix, Dariusz Markowicz, Dominges, Doruk Fisek, Eric Cestari, Etan Reisner, Evgeniy Khramtsov, Fabrice Colliot, Felix Geyer, Gabriele Stilli, Geoff Cant, George Hazan, Glenn Sieb, Graham Whitted, Gustaf Alströmer, Igor Goryachev, Jack Moffitt, Jacob Vorreuter, James Iakovos Mandelis, Jan Kusanagi, Janusz Dziemidowicz, Jeffrey Rogiers, Jon Bendtsen, Jonathan Auer, Jonathan Schleifer, Juan Pablo Carlino, Justin Boffemmyer, Justin Kirby, Jérôme Sautret, Kevin Crosbie, Konstantin Khomoutov, Luca Brivio, Lukáš Polívka, Magnus Henoch, Marcin Owsiany, Marek Bečka, Martin Langhoff, Massimiliano Mirra, Mats Cronqvist, Matthew Reilly, Maxim Ryazanov, Michal Schmidt, Mickaël Rémond, Myers Carpenter, Neustradamus, Nicolas Vérité, Nikolaus Polak, Oleg Palij, Otávio Fernandes, Pablo Polvorin, Pablo Saratxaga, Paul Guyot, Pedro Melo, Philipp Hancke, Ruslan Rakhmanin, Sergei Golovan, Shelley Shyan, Smart2128, Spike, Stefan Strigler, Stephan Maka, Stian B. Barmen, Thomas, Thomas Baden, Thore Alstromer, Tsukasa Hamano, Vincent Barat, Viq, Zbyszek Żółkiewski, and Zhan Caibao.

    | Reply

    Announcing ejabberd 2.1.0 RC2

    The second release candidate of ejabberd 2.1 has been published by ProcessOne.

    ejabberd 2.1.0 RC2 is available as source code as well as binary installers for Linux, Mac OS X and Windows from here: http://www.process-one.net/downloads/ejabberd/2.1.0-rc2/.

    The readme text is here: http://www.process-one.net/downloads/ejabberd/2.1.0-rc2/README.txt.

     

    The list of changes in RC2 compared to RC1 are:

    • Use queue to reduce quadratic time effort on selective receive.
    • Pack presences stored in C2S processes to reduce memory consumption.
    • Support gen_tcp send timeout to close the connection if the destination has disconnected ungracefully or cannot keep up with the rate at which we are sending data.
    • Pubsub node names are used verbatim, without separating by slash, unless a node plugin uses its own separator.
    • Many miscellaneous fixes and improvements in PubSub, PEP and Caps.
    • New general option max_fsm_queue.
    • New option backlog for ejabberd_listener to increase TCP backlog.
    • New mod_pubsub option max_items_node.
    • New CAPTCHA example script.
    • In default config, only local accounts can create rooms and pubsub nodes.
    • New Greek translation. Also updated Catalan and Polish.
    • Improve compilation in Mac OS X Snow Leopard.

    The involved tickets can be browsed here: http://redir.process-one.net/ejabberd-2.1.0_rc2. You can report problems by creating new tickets here: https://support.process-one.net/browse/EJAB.

    | Reply

    Announcing ejabberd 2.1.0 beta2

    ProcessOne has released the second beta of ejabberd 2.1.0.

     

    It’s available at http://www.process-one.net/downloads/ejabberd/2.1.0-beta2/

    The changes between this second beta and previous one are:

    • A STUN server has been added, see the ejabberd Guide for configuration details
    • Updated many translation files: Chinese, Dutch, French, Galician, German, Italian, Norwegian, Polish, Portugese (Brazil), Russian, Slovak, Spanish, Turkish, and Ukrainian
    • PubSub fixes
    • MUC and doc improvements
    • A few bugfixes

    You can report bugs at: https://support.process-one.net/browse/EJAB