Fix deadlock

This commit is contained in:
Cody Soyland 2018-06-27 13:50:48 -05:00
parent c042c77499
commit b2ebb4ce06

7
api.go
View file

@ -140,9 +140,9 @@ func (api *API) Query(ctx context.Context, req *QueryRequest) (QueryResponse, er
}
// Translate column attributes, if necessary.
if api.server.translateFile != nil {
if api.server.primaryTranslateStore != nil {
for _, col := range resp.ColumnAttrSets {
v, err := api.server.translateFile.TranslateColumnToString(req.Index, col.ID)
v, err := api.server.primaryTranslateStore.TranslateColumnToString(req.Index, col.ID)
if err != nil {
return resp, err
}
@ -788,7 +788,7 @@ func (api *API) ResizeAbort() error {
// TranslateStoreBufferSize is the buffer size used for streaming data.
const TranslateStoreBufferSize = 65536
func (api *API) GetTranslateData(ctx context.Context, w io.Writer, offset int64) error {
func (api *API) GetTranslateData(ctx context.Context, w io.WriteCloser, offset int64) error {
rc, err := api.server.primaryTranslateStore.Reader(ctx, offset)
if err != nil {
return errors.Wrap(err, "read from translate store")
@ -799,6 +799,7 @@ func (api *API) GetTranslateData(ctx context.Context, w io.Writer, offset int64)
go func() {
defer rc.Close()
defer w.Close()
buf := make([]byte, TranslateStoreBufferSize)