From 242d7a4466f4ed1fd07d87b4f654b338e931b09f Mon Sep 17 00:00:00 2001 From: Agniva De Sarker Date: Mon, 12 Dec 2022 20:35:09 +0530 Subject: [PATCH] MM-48553: Fix panic in json.MarshalerError (#21846) Although this isn't the root cause for the panic in the sentry crash, this is indeed a bug and will cause a crash in the exact same way. I have looked at other possibilities and I don't see any other way for model.ChannelMembers to panic during json marshaling. Other sentry crashes are there for ths customer and they point to data corruption which indicates there is something funky going on. Nevertheless, this is a valid bug and should be fixed. https://mattermost.atlassian.net/browse/MM-48553 ```release-note NONE ``` --- model/group_syncable.go | 4 +--- model/group_syncable_test.go | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 model/group_syncable_test.go diff --git a/model/group_syncable.go b/model/group_syncable.go index afad357a10..e876a4c55f 100644 --- a/model/group_syncable.go +++ b/model/group_syncable.go @@ -144,9 +144,7 @@ func (syncable *GroupSyncable) MarshalJSON() ([]byte, error) { Alias: (*Alias)(syncable), }) default: - return nil, &json.MarshalerError{ - Err: fmt.Errorf("unknown syncable type: %s", syncable.Type), - } + return nil, fmt.Errorf("unknown syncable type: %s", syncable.Type) } } diff --git a/model/group_syncable_test.go b/model/group_syncable_test.go new file mode 100644 index 0000000000..525ddf02a4 --- /dev/null +++ b/model/group_syncable_test.go @@ -0,0 +1,20 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +package model + +import ( + "encoding/json" + "testing" + + "github.com/stretchr/testify/require" +) + +func TestGroupSyncableMarshal(t *testing.T) { + require.NotPanics(t, func() { + var syncable GroupSyncable + _, err := json.Marshal(&syncable) + require.Error(t, err) + t.Log(err.Error()) + }, "marshaling groupsyncable should not panic") +}