From 99c58fc561948784d4c328ba6d64c6550dc7e240 Mon Sep 17 00:00:00 2001 From: Anton Kaliaev Date: Fri, 15 Dec 2017 16:14:44 -0600 Subject: [PATCH 1/3] enable logging for wal_generator and set timeout to 1 min Refs #977 --- consensus/wal_generator.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/consensus/wal_generator.go b/consensus/wal_generator.go index b1ea268e3..00da98f71 100644 --- a/consensus/wal_generator.go +++ b/consensus/wal_generator.go @@ -32,7 +32,7 @@ func WALWithNBlocks(numBlocks int) (data []byte, err error) { app := dummy.NewPersistentDummyApplication(filepath.Join(config.DBDir(), "wal_generator")) - logger := log.NewNopLogger() // log.TestingLogger().With("wal_generator", "wal_generator") + logger := log.TestingLogger().With("wal_generator", "wal_generator") ///////////////////////////////////////////////////////////////////////////// // COPY PASTE FROM node.go WITH A FEW MODIFICATIONS @@ -91,8 +91,8 @@ func WALWithNBlocks(numBlocks int) (data []byte, err error) { case <-numBlocksWritten: wr.Flush() return b.Bytes(), nil - case <-time.After(time.Duration(5*numBlocks) * time.Second): - return b.Bytes(), fmt.Errorf("waited too long for tendermint to produce %d blocks", numBlocks) + case <-time.After(1 * time.Minute): + return b.Bytes(), fmt.Errorf("waited too long for tendermint to produce %d blocks (grep logs for `wal_generator`)", numBlocks) } } From 3f02ab0eada9ac83fe81343f1a863c5f7e3c97b6 Mon Sep 17 00:00:00 2001 From: Anton Kaliaev Date: Sat, 16 Dec 2017 22:20:07 -0600 Subject: [PATCH 2/3] unidirectional channel --- consensus/wal_generator.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/consensus/wal_generator.go b/consensus/wal_generator.go index 00da98f71..d7825c0a1 100644 --- a/consensus/wal_generator.go +++ b/consensus/wal_generator.go @@ -92,6 +92,7 @@ func WALWithNBlocks(numBlocks int) (data []byte, err error) { wr.Flush() return b.Bytes(), nil case <-time.After(1 * time.Minute): + wr.Flush() return b.Bytes(), fmt.Errorf("waited too long for tendermint to produce %d blocks (grep logs for `wal_generator`)", numBlocks) } } @@ -141,13 +142,13 @@ type byteBufferWAL struct { enc *WALEncoder stopped bool heightToStop int64 - signalWhenStopsTo chan struct{} + signalWhenStopsTo chan<- struct{} } // needed for determinism var fixedTime, _ = time.Parse(time.RFC3339, "2017-01-02T15:04:05Z") -func newByteBufferWAL(enc *WALEncoder, nBlocks int64, signalStop chan struct{}) *byteBufferWAL { +func newByteBufferWAL(enc *WALEncoder, nBlocks int64, signalStop chan<- struct{}) *byteBufferWAL { return &byteBufferWAL{ enc: enc, heightToStop: nBlocks, From 5a83e584287c17c901f1f6d3d31444ff5396ec3b Mon Sep 17 00:00:00 2001 From: Anton Kaliaev Date: Sun, 17 Dec 2017 20:16:02 -0600 Subject: [PATCH 3/3] stop eventBus --- consensus/wal_generator.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/consensus/wal_generator.go b/consensus/wal_generator.go index d7825c0a1..f477e5dc0 100644 --- a/consensus/wal_generator.go +++ b/consensus/wal_generator.go @@ -33,6 +33,7 @@ func WALWithNBlocks(numBlocks int) (data []byte, err error) { app := dummy.NewPersistentDummyApplication(filepath.Join(config.DBDir(), "wal_generator")) logger := log.TestingLogger().With("wal_generator", "wal_generator") + logger.Info("generating WAL (last height msg excluded)", "numBlocks", numBlocks) ///////////////////////////////////////////////////////////////////////////// // COPY PASTE FROM node.go WITH A FEW MODIFICATIONS @@ -63,6 +64,7 @@ func WALWithNBlocks(numBlocks int) (data []byte, err error) { if err := eventBus.Start(); err != nil { return nil, errors.Wrap(err, "failed to start event bus") } + defer eventBus.Stop() mempool := types.MockMempool{} consensusState := NewConsensusState(config.Consensus, state.Copy(), proxyApp.Consensus(), blockStore, mempool) consensusState.SetLogger(logger)