42wim / matterbridge

bridge between mattermost, IRC, gitter, xmpp, slack, discord, telegram, rocketchat, twitch, ssh-chat, zulip, whatsapp, keybase, matrix, microsoft teams, nextcloud, mumble, vk and more with REST API (mattermost not required!)
Apache License 2.0
6.64k stars 617 forks source link

version 1.6.1 crashes while connecting to Mattermost #327

Closed fflorent closed 6 years ago

fflorent commented 6 years ago

Hello,

I get the following crash while running Matterbridge on a Docker environment. The Docker image is built for Raspberry PI, I managed to slightly adapt the Dockerfile to do so (I can provide its source code if you want so).

INFO[2018-01-01T10:36:30Z] Enabling debug                               
INFO[2018-01-01T10:36:30Z] Running version 1.6.1 612acfd                
INFO[2018-01-01T10:36:30Z] Starting bridge: irc.freenode                
INFO[2018-01-01T10:36:30Z] Connecting irc.freenode.org:6667              module=irc
DEBU[2018-01-01T10:36:30Z] "CLIENT_INIT :irc.freenode.org:6667"          module=irc
DEBU[2018-01-01T10:36:30Z] ":tolkien.freenode.net NOTICE * :*** Looking up your hostname..."  module=irc
DEBU[2018-01-01T10:36:30Z] ":tolkien.freenode.net NOTICE * :*** Checking Ident"  module=irc
DEBU[2018-01-01T10:36:30Z] ":tolkien.freenode.net NOTICE * :*** Found your hostname"  module=irc
DEBU[2018-01-01T10:36:38Z] ":tolkien.freenode.net NOTICE * :*** No Ident response"  module=irc
DEBU[2018-01-01T10:36:38Z] ":tolkien.freenode.net CAP * LS :account-notify extended-join identify-msg multi-prefix sasl"  module=irc
DEBU[2018-01-01T10:36:38Z] ":tolkien.freenode.net CAP matterbridge-zet ACK :account-notify extended-join multi-prefix "  module=irc
DEBU[2018-01-01T10:36:39Z] ":tolkien.freenode.net 001 matterbridge-zet :Welcome to the freenode Internet Relay Chat Network matterbridge-zet"  module=irc
DEBU[2018-01-01T10:36:39Z] "CLIENT_GENERAL_UPDATED"                      module=irc
DEBU[2018-01-01T10:36:39Z] Registering callbacks                         module=irc
INFO[2018-01-01T10:36:39Z] Connection succeeded                          module=irc
INFO[2018-01-01T10:36:39Z] irc.freenode: joining #zetetique (#zetetiqueirc.freenode) 
INFO[2018-01-01T10:36:39Z] irc.freenode: joining #zetetique-flotest (#zetetique-flotestirc.freenode) 
INFO[2018-01-01T10:36:39Z] Starting bridge: mattermost.zetetique        
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x124 pc=0x5515a3b0]

goroutine 1 [running]:
github.com/42wim/matterbridge/bridge/mattermost.(*Bmattermost).Connect(0x34dccc60, 0x14, 0x34c79df4)
    /go/src/github.com/42wim/matterbridge/bridge/mattermost/mattermost.go:60 +0x1c
github.com/42wim/matterbridge/gateway.(*Router).Start(0x34ddcc80, 0x34ddcc80, 0x0)
    /go/src/github.com/42wim/matterbridge/gateway/router.go:51 +0x23c
main.main()
    /go/src/github.com/42wim/matterbridge/matterbridge.go:50 +0x39c

AFAICT, that's a regression. It used to work with my configuration using commit 4a4a29c

Which version of matterbridge are you using?

In a docker environment, 1.6.1 612acfd

If you're having problems with mattermost please specify mattermost version.

Version: 4.4.0 (4.4.5)

Any steps to reproduce the behavior?

Just start the container

Please add your configuration file

(be sure to exclude or anonymize private data (tokens/passwords))

[general]
    PrefixMessagesWithNick=true
    RemoteNickFormat="[{PROTOCOL}] <{NICK}> "

[irc]
    [irc.geeknode]
    Server="irc.geeknode.org:6667"
    Nick="matterbridge-jdll"

    [irc.freenode]
    Server="irc.freenode.org:6667"
    Nick="matterbridge-zetetique"
    ShowJoinPart=true
    ReplaceNicks=[ ["fflorent", "irc_fflorent"] ]
    Charset="utf-8"

[mattermost]
    [mattermost.zetetique]
    Server="framateam.org"
    Team="zetetique"
    Login="hermes-bot"
    Password="<passphrase>"
    PrefixMessagesWithNick=true
    RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
    ShowJoinPart=true
    ReplaceNicks=[ ["fflorent", "mattermost_fflorent"] ]
    Charset="utf-8"

    [mattermost.jdll]
    Server="framateam.org"
    Team="jdll"
    Login="hermes-bot"
    Password="<passphrase>"
    # FIXME: Pourquoi dois-je recopier ces lignes ?
    PrefixMessagesWithNick=true
    RemoteNickFormat="[{PROTOCOL}] <{NICK}> "

    [mattermost.hackso]
    Server="framateam.org"
    Team="hackingsocial"
    Login="matterbridge-hackso"
    Password="<passphrase>"
    PrefixMessagesWithNick=true
    RemoteNickFormat="[{PROTOCOL}] <{NICK}> "

[discord]
    [discord.hackso]
    Token="<token>"
    Server="Hacking_Social"
    ShowEmbeds=true

[[gateway]]
    name="gateway-jdll"
    enable=true
    [[gateway.inout]]
    account="irc.geeknode"
    channel="#jdll"

    [[gateway.inout]]
    account="mattermost.jdll"
    channel="town-square"

[[gateway]]
    name="gateway-zetetique"
    enable=true
    [[gateway.inout]]
    account="irc.freenode"
    channel="#zetetique"

    [[gateway.inout]]
    account="mattermost.zetetique"
    channel="town-square"

[[gateway]]
    name="gateway-zetetique-test"
    enable=true
    [[gateway.inout]]
    account="irc.freenode"
    channel="#zetetique-flotest"

    [[gateway.inout]]
    account="mattermost.zetetique"
    channel="flo-test"

[[samechannelgateway]]
    name="bundle_hacking_social"
    enable = true
    accounts = [ "mattermost.hackso", "discord.hackso" ]
    channels = [ "investigation", "gymnase_hacks_sociaux", "discussion_serieuse", "presentations", "discussion_bienvenue", "citations_rigolotes", "civilizachtung", "autogestion", "channels_et_interface", "wiki-hackso" ]

[[gateway]]
    name="hackso-images-salades"
    enable=true
    [[gateway.inout]]
    account="mattermost.hackso"
    channel="town-square"

    [[gateway.inout]]
    account="discord.hackso"
    channel="images_et_salades_du_net"

[[gateway]]
    name="hackso-chaos"
    enable=true
    [[gateway.inout]]
    account="mattermost.hackso"
    channel="chaos_general"

    [[gateway.inout]]
    account="discord.hackso"
    channel="chaos_general_"

[[gateway]]
    name="hackso-liens"
    enable=true
    [[gateway.inout]]
    account="mattermost.hackso"
    channel="des_liens_en_voila_ple"

    [[gateway.inout]]
    account="discord.hackso"
    channel="des_liens_en_voila_plein"

[[gateway]]
    name="hackso-caligula"
    enable=true
    [[gateway.inout]]
    account="mattermost.hackso"
    channel="boulangerie_de_caligul"

    [[gateway.inout]]
    account="discord.hackso"
    channel="boulangerie_de_caligula"

Thanks for your great work BTW!

Florent

42wim commented 6 years ago

Thanks for reporting! Fixed in master, I'll release a 1.6.2 soon.

fflorent commented 6 years ago

Thanks for being that quick! Happy new year ;)