Skip to content

Commit 5aa4709

Browse files
committed
Handled ineffectual errors
Signed-off-by: akilan <[email protected]>
1 parent f15be48 commit 5aa4709

24 files changed

+271
-93
lines changed

go/cmd/zkctld/zkctld.go

+6-1
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,11 @@ func main() {
6969
log.Infof("server shut down on its own")
7070
case <-sig:
7171
log.Infof("signal received, shutting down server")
72-
zkd.Shutdown()
72+
73+
// Action to perform if there is an error
74+
if err := zkd.Shutdown(); err != nil {
75+
log.Errorf("error during shutdown:%v", err)
76+
exit.Return(1)
77+
}
7378
}
7479
}

go/mysql/fakesqldb/server.go

+11-2
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ import (
2929
"testing"
3030
"time"
3131

32+
"vitess.io/vitess/go/vt/log"
33+
3234
"vitess.io/vitess/go/mysql"
3335
"vitess.io/vitess/go/sqltypes"
3436

@@ -347,15 +349,22 @@ func (db *DB) HandleQuery(c *mysql.Conn, query string, callback func(*sqltypes.R
347349
// Check if we should close the connection and provoke errno 2013.
348350
if db.shouldClose {
349351
c.Close()
350-
callback(&sqltypes.Result{})
352+
353+
//log error
354+
if err := callback(&sqltypes.Result{}); err != nil {
355+
log.Errorf("callback failed : %v", err)
356+
}
351357
return nil
352358
}
353359

354360
// Using special handling for 'SET NAMES utf8'. The driver
355361
// may send this at connection time, and we don't want it to
356362
// interfere.
357363
if key == "set names utf8" {
358-
callback(&sqltypes.Result{})
364+
//log error
365+
if err := callback(&sqltypes.Result{}); err != nil {
366+
log.Errorf("callback failed : %v", err)
367+
}
359368
return nil
360369
}
361370

go/mysql/replication_constants.go

+54-39
Original file line numberDiff line numberDiff line change
@@ -152,54 +152,69 @@ const (
152152
// These constants describe the event types.
153153
// See: http://dev.mysql.com/doc/internals/en/binlog-event-type.html
154154
const (
155-
eUnknownEvent = 0
156-
eStartEventV3 = 1
157-
eQueryEvent = 2
158-
eStopEvent = 3
159-
eRotateEvent = 4
160-
eIntVarEvent = 5
161-
eLoadEvent = 6
162-
eSlaveEvent = 7
163-
eCreateFileEvent = 8
164-
eAppendBlockEvent = 9
165-
eExecLoadEvent = 10
166-
eDeleteFileEvent = 11
167-
eNewLoadEvent = 12
168-
eRandEvent = 13
169-
eUserVarEvent = 14
155+
//eUnknownEvent = 0
156+
// Unused
157+
//eStartEventV3 = 1
158+
eQueryEvent = 2
159+
//eStopEvent = 3
160+
eRotateEvent = 4
161+
eIntVarEvent = 5
162+
// Unused
163+
//eLoadEvent = 6
164+
// Unused
165+
//eSlaveEvent = 7
166+
// Unused
167+
//eCreateFileEvent = 8
168+
// Unused
169+
//eAppendBlockEvent = 9
170+
//eExecLoadEvent = 10
171+
// Unused
172+
//eDeleteFileEvent = 11
173+
// Unused
174+
//eNewLoadEvent = 12
175+
eRandEvent = 13
176+
// Unused
177+
//eUserVarEvent = 14
170178
eFormatDescriptionEvent = 15
171179
eXIDEvent = 16
172-
eBeginLoadQueryEvent = 17
173-
eExecuteLoadQueryEvent = 18
174-
eTableMapEvent = 19
175-
eWriteRowsEventV0 = 20
176-
eUpdateRowsEventV0 = 21
177-
eDeleteRowsEventV0 = 22
178-
eWriteRowsEventV1 = 23
179-
eUpdateRowsEventV1 = 24
180-
eDeleteRowsEventV1 = 25
181-
eIncidentEvent = 26
182-
eHeartbeatEvent = 27
183-
eIgnorableEvent = 28
184-
eRowsQueryEvent = 29
185-
eWriteRowsEventV2 = 30
186-
eUpdateRowsEventV2 = 31
187-
eDeleteRowsEventV2 = 32
188-
eGTIDEvent = 33
189-
eAnonymousGTIDEvent = 34
190-
ePreviousGTIDsEvent = 35
180+
//Unused
181+
//eBeginLoadQueryEvent = 17
182+
//Unused
183+
//eExecuteLoadQueryEvent = 18
184+
eTableMapEvent = 19
185+
eWriteRowsEventV0 = 20
186+
eUpdateRowsEventV0 = 21
187+
eDeleteRowsEventV0 = 22
188+
eWriteRowsEventV1 = 23
189+
eUpdateRowsEventV1 = 24
190+
eDeleteRowsEventV1 = 25
191+
// Unused
192+
//eIncidentEvent = 26
193+
//eHeartbeatEvent = 27
194+
// Unused
195+
//eIgnorableEvent = 28
196+
// Unused
197+
//eRowsQueryEvent = 29
198+
eWriteRowsEventV2 = 30
199+
eUpdateRowsEventV2 = 31
200+
eDeleteRowsEventV2 = 32
201+
eGTIDEvent = 33
202+
eAnonymousGTIDEvent = 34
203+
ePreviousGTIDsEvent = 35
191204

192205
// MySQL 5.7 events. Unused.
193206
//eTransactionContextEvent = 36
194207
//eViewChangeEvent = 37
195208
//eXAPrepareLogEvent = 38
196209

197210
// MariaDB specific values. They start at 160.
198-
eMariaAnnotateRowsEvent = 160
199-
eMariaBinlogCheckpointEvent = 161
200-
eMariaGTIDEvent = 162
201-
eMariaGTIDListEvent = 163
202-
eMariaStartEncryptionEvent = 164
211+
eMariaAnnotateRowsEvent = 160
212+
// Unused
213+
//eMariaBinlogCheckpointEvent = 161
214+
eMariaGTIDEvent = 162
215+
eMariaGTIDListEvent = 163
216+
// Unused
217+
//eMariaStartEncryptionEvent = 164
203218
)
204219

205220
// These constants describe the type of status variables in q Query packet.

go/test/endtoend/keyspace/keyspace_test.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ var (
6060
"column": "keyspace_id",
6161
"name": "hash_index"
6262
}
63-
]
63+
]
6464
}
6565
}
6666
}`
@@ -246,7 +246,7 @@ func TestDeleteKeyspace(t *testing.T) {
246246

247247
// TODO: Fix this test, not running in CI
248248
// tells that in zone2 after deleting shard, there is no shard #264 and in zone1 there is only 1 #269
249-
func RemoveKeyspaceCell(t *testing.T) {
249+
/*func RemoveKeyspaceCell(t *testing.T) {
250250
_ = clusterForKSTest.VtctlclientProcess.ExecuteCommand("CreateKeyspace", "test_delete_keyspace_removekscell")
251251
_ = clusterForKSTest.VtctlclientProcess.ExecuteCommand("CreateShard", "test_delete_keyspace_removekscell/0")
252252
_ = clusterForKSTest.VtctlclientProcess.ExecuteCommand("CreateShard", "test_delete_keyspace_removekscell/1")
@@ -314,7 +314,7 @@ func RemoveKeyspaceCell(t *testing.T) {
314314
315315
// Clean up
316316
_ = clusterForKSTest.VtctlclientProcess.ExecuteCommand("DeleteKeyspace", "-recursive", "test_delete_keyspace_removekscell")
317-
}
317+
} */
318318

319319
func TestShardCountForAllKeyspaces(t *testing.T) {
320320
defer cluster.PanicHandler(t)

go/test/endtoend/vtgate/buffer/buffer_test.go

+31-10
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,10 @@ func updateExecute(c *threadParams, conn *mysql.Conn) error {
142142
attempt := c.i
143143
// Value used in next UPDATE query. Increased after every query.
144144
c.i++
145-
conn.ExecuteFetch("begin", 1000, true)
145+
146+
if _, err := conn.ExecuteFetch("begin", 1000, true); err != nil {
147+
log.Errorf("begin failed:%v", err)
148+
}
146149

147150
result, err := conn.ExecuteFetch(fmt.Sprintf("UPDATE buffer SET msg='update %d' WHERE id = %d", attempt, updateRowID), 1000, true)
148151

@@ -269,9 +272,11 @@ func testBufferBase(t *testing.T, isExternalParent bool) {
269272
externalReparenting(ctx, t, clusterInstance)
270273
} else {
271274
//reparent call
272-
clusterInstance.VtctlclientProcess.ExecuteCommand("PlannedReparentShard", "-keyspace_shard",
275+
if err := clusterInstance.VtctlclientProcess.ExecuteCommand("PlannedReparentShard", "-keyspace_shard",
273276
fmt.Sprintf("%s/%s", keyspaceUnshardedName, "0"),
274-
"-new_master", clusterInstance.Keyspaces[0].Shards[0].Vttablets[1].Alias)
277+
"-new_master", clusterInstance.Keyspaces[0].Shards[0].Vttablets[1].Alias); err != nil {
278+
log.Errorf("clusterInstance.VtctlclientProcess.ExecuteCommand(\"PlannedRepare... caused an error : %v", err)
279+
}
275280
}
276281

277282
<-readThreadInstance.waitForNotification
@@ -354,7 +359,12 @@ func externalReparenting(ctx context.Context, t *testing.T, clusterInstance *clu
354359
newMaster := replica
355360
master.VttabletProcess.QueryTablet(demoteMasterQuery, keyspaceUnshardedName, true)
356361
if master.VttabletProcess.EnableSemiSync {
357-
master.VttabletProcess.QueryTablet(disableSemiSyncMasterQuery, keyspaceUnshardedName, true)
362+
363+
//log error
364+
if _, err := master.VttabletProcess.QueryTablet(disableSemiSyncMasterQuery, keyspaceUnshardedName, true); err != nil {
365+
log.Errorf("master.VttabletProcess.QueryTablet(disableSemi... caused an error : %v", err)
366+
}
367+
358368
}
359369

360370
// Wait for replica to catch up to master.
@@ -368,11 +378,16 @@ func externalReparenting(ctx context.Context, t *testing.T, clusterInstance *clu
368378
time.Sleep(time.Duration(w) * time.Second)
369379
}
370380

371-
// Promote replica to new master.
372-
replica.VttabletProcess.QueryTablet(promoteSlaveQuery, keyspaceUnshardedName, true)
381+
//Promote replica to new master and log error
382+
if _, err := replica.VttabletProcess.QueryTablet(promoteSlaveQuery, keyspaceUnshardedName, true); err != nil {
383+
log.Errorf("replica.VttabletProcess.QueryTablet(promoteSlaveQuery... caused an error : %v", err)
384+
}
373385

374386
if replica.VttabletProcess.EnableSemiSync {
375-
replica.VttabletProcess.QueryTablet(enableSemiSyncMasterQuery, keyspaceUnshardedName, true)
387+
//Log error
388+
if _, err := replica.VttabletProcess.QueryTablet(enableSemiSyncMasterQuery, keyspaceUnshardedName, true); err != nil {
389+
log.Errorf("replica.VttabletProcess.QueryTablet caused an error : %v", err)
390+
}
376391
}
377392

378393
// Configure old master to replicate from new master.
@@ -382,8 +397,14 @@ func externalReparenting(ctx context.Context, t *testing.T, clusterInstance *clu
382397
// Use 'localhost' as hostname because Travis CI worker hostnames
383398
// are too long for MySQL replication.
384399
changeMasterCommands := fmt.Sprintf("RESET SLAVE;SET GLOBAL gtid_slave_pos = '%s';CHANGE MASTER TO MASTER_HOST='%s', MASTER_PORT=%d ,MASTER_USER='vt_repl', MASTER_USE_GTID = slave_pos;START SLAVE;", gtID, "localhost", newMaster.MySQLPort)
385-
oldMaster.VttabletProcess.QueryTablet(changeMasterCommands, keyspaceUnshardedName, true)
386400

387-
// Notify the new vttablet master about the reparent.
388-
clusterInstance.VtctlclientProcess.ExecuteCommand("TabletExternallyReparented", newMaster.Alias)
401+
//Log error
402+
if _, err := oldMaster.VttabletProcess.QueryTablet(changeMasterCommands, keyspaceUnshardedName, true); err != nil {
403+
log.Errorf("oldMaster.VttabletProcess.QueryTablet caused an error : %v", err)
404+
}
405+
406+
//Notify the new vttablet master about the reparent and Log error
407+
if err := clusterInstance.VtctlclientProcess.ExecuteCommand("TabletExternallyReparented", newMaster.Alias); err != nil {
408+
log.Errorf("clusterInstance.VtctlclientProcess.ExecuteCommand caused an error : %v", err)
409+
}
389410
}

go/vt/binlog/binlogplayer/framework_test.go

+7-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ import (
2121
"reflect"
2222
"testing"
2323

24+
"vitess.io/vitess/go/vt/log"
25+
2426
"github.com/golang/protobuf/proto"
2527
"golang.org/x/net/context"
2628

@@ -116,5 +118,9 @@ var globalFBC *fakeBinlogClient
116118

117119
func init() {
118120
RegisterClientFactory("test", func() Client { return globalFBC })
119-
flag.Set("binlog_player_protocol", "test")
121+
122+
//log error
123+
if err := flag.Set("binlog_player_protocol", "test"); err != nil {
124+
log.Errorf("failed to set flag \"binlog_player_protocol\" to \"test\":%v", err)
125+
}
120126
}

go/vt/discovery/healthcheck.go

+10-2
Original file line numberDiff line numberDiff line change
@@ -715,13 +715,21 @@ func (hc *HealthCheckImpl) ServeHTTP(w http.ResponseWriter, _ *http.Request) {
715715
status := hc.CacheStatus()
716716
b, err := json.MarshalIndent(status, "", " ")
717717
if err != nil {
718-
w.Write([]byte(err.Error()))
718+
//Error logged
719+
if _, err := w.Write([]byte(err.Error())); err != nil {
720+
log.Errorf("write to buffer error failed: %v", err)
721+
}
722+
719723
return
720724
}
721725

722726
buf := bytes.NewBuffer(nil)
723727
json.HTMLEscape(buf, b)
724-
w.Write(buf.Bytes())
728+
729+
//Error logged
730+
if _, err := w.Write(buf.Bytes()); err != nil {
731+
log.Errorf("write to buffer bytes failed: %v", err)
732+
}
725733
}
726734

727735
// servingConnStats returns the number of serving tablets per keyspace/shard/tablet type.

go/vt/discovery/healthcheck_test.go

+12-2
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ import (
2727
"testing"
2828
"time"
2929

30+
"vitess.io/vitess/go/vt/log"
31+
3032
"vitess.io/vitess/go/test/utils"
3133
"vitess.io/vitess/go/vt/vttablet/queryservice/fakes"
3234

@@ -48,7 +50,11 @@ import (
4850

4951
func init() {
5052
tabletconn.RegisterDialer("fake_gateway", tabletDialer)
51-
flag.Set("tablet_protocol", "fake_gateway")
53+
54+
//log error
55+
if err := flag.Set("tablet_protocol", "fake_gateway"); err != nil {
56+
log.Errorf("failed to set flag \"tablet_protocol\" to \"fake_gateway\":%v", err)
57+
}
5258
}
5359

5460
func TestHealthCheck(t *testing.T) {
@@ -730,7 +736,11 @@ func TestTemplate(t *testing.T) {
730736
}
731737

732738
func TestDebugURLFormatting(t *testing.T) {
733-
flag.Set("tablet_url_template", "https://{{.GetHostNameLevel 0}}.bastion.{{.Tablet.Alias.Cell}}.corp")
739+
740+
//log error
741+
if err2 := flag.Set("tablet_url_template", "https://{{.GetHostNameLevel 0}}.bastion.{{.Tablet.Alias.Cell}}.corp"); err2 != nil {
742+
log.Errorf("flag.Set(\"tablet_url_template\", \"https://{{.GetHostNameLevel 0}}.bastion.{{.Tablet.Alias.Cell}}.corp\") failed : %v", err2)
743+
}
734744
ParseTabletURLTemplateFromFlag()
735745

736746
tablet := topo.NewTablet(0, "cell", "host.dc.domain")

go/vt/discovery/legacy_healthcheck.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,11 @@ func (e LegacyTabletStats) NamedStatusURL() string {
222222
// {{.NamedStatusURL}} -> test-0000000001/debug/status
223223
func (e LegacyTabletStats) getTabletDebugURL() string {
224224
var buffer bytes.Buffer
225-
tabletURLTemplate.Execute(&buffer, e)
225+
226+
//Error logged
227+
if err := tabletURLTemplate.Execute(&buffer, e); err != nil {
228+
log.Errorf("tabletURLTemplate.Execute(&buffer, e) failed: %v", err)
229+
}
226230
return buffer.String()
227231
}
228232

go/vt/discovery/legacy_healthcheck_flaky_test.go

+7-1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ import (
2626
"testing"
2727
"time"
2828

29+
"vitess.io/vitess/go/vt/log"
30+
2931
"golang.org/x/net/context"
3032
"vitess.io/vitess/go/vt/grpcclient"
3133
"vitess.io/vitess/go/vt/status"
@@ -42,7 +44,11 @@ var connMap map[string]*fakeConn
4244

4345
func init() {
4446
tabletconn.RegisterDialer("fake_discovery", discoveryDialer)
45-
flag.Set("tablet_protocol", "fake_discovery")
47+
48+
//log error
49+
if err := flag.Set("tablet_protocol", "fake_discovery"); err != nil {
50+
log.Errorf("flag.Set(\"tablet_protocol\", \"fake_discovery\") failed : %v", err)
51+
}
4652
connMap = make(map[string]*fakeConn)
4753
}
4854

0 commit comments

Comments
 (0)