uber / tchannel-go

Go implementation of a multiplexing and framing protocol for RPC calls
http://uber.github.io/tchannel/
MIT License
483 stars 81 forks source link

1.19.0 doesn't work in Windows #780

Closed MuzhiWang closed 4 years ago

MuzhiWang commented 4 years ago

When i try to get yab go get -u github.com/yarpc/yab, it failed with error:

# github.com/uber/tchannel-go/thrift/gen-go/meta
..\..\pkg\mod\github.com\uber\tchannel-go@v1.19.0\thrift\gen-go\meta\meta.go:79:20: not enough arguments in call to oprot.Flush
        have ()
        want (context.Context)
..\..\pkg\mod\github.com\uber\tchannel-go@v1.19.0\thrift\gen-go\meta\meta.go:103:15: assignment mismatch: 2 variables but error2.Read returns 1 values
..\..\pkg\mod\github.com\uber\tchannel-go@v1.19.0\thrift\gen-go\meta\meta.go:152:20: not enough arguments in call to oprot.Flush
        have ()
        want (context.Context)
..\..\pkg\mod\github.com\uber\tchannel-go@v1.19.0\thrift\gen-go\meta\meta.go:176:15: assignment mismatch: 2 variables but error4.Read returns 1 values
..\..\pkg\mod\github.com\uber\tchannel-go@v1.19.0\thrift\gen-go\meta\meta.go:225:20: not enough arguments in call to oprot.Flush
        have ()
        want (context.Context)
..\..\pkg\mod\github.com\uber\tchannel-go@v1.19.0\thrift\gen-go\meta\meta.go:249:15: assignment mismatch: 2 variables but error6.Read returns 1 values
..\..\pkg\mod\github.com\uber\tchannel-go@v1.19.0\thrift\gen-go\meta\meta.go:295:31: cannot use &metaProcessorHealth literal (type *metaProcessorHealth) as type thrift.TProcessorFunction in assignment:
        *metaProcessorHealth does not implement thrift.TProcessorFunction (wrong type for Process method)
                have Process(int32, thrift.TProtocol, thrift.TProtocol) (bool, thrift.TException)
                want Process(context.Context, int32, thrift.TProtocol, thrift.TProtocol) (bool, thrift.TException)
..\..\pkg\mod\github.com\uber\tchannel-go@v1.19.0\thrift\gen-go\meta\meta.go:296:34: cannot use &metaProcessorThriftIDL literal (type *metaProcessorThriftIDL) as type thrift.TProcessorFunction in assignment:
        *metaProcessorThriftIDL does not implement thrift.TProcessorFunction (wrong type for Process method)
                have Process(int32, thrift.TProtocol, thrift.TProtocol) (bool, thrift.TException)
                want Process(context.Context, int32, thrift.TProtocol, thrift.TProtocol) (bool, thrift.TException)
..\..\pkg\mod\github.com\uber\tchannel-go@v1.19.0\thrift\gen-go\meta\meta.go:297:36: cannot use &metaProcessorVersionInfo literal (type *metaProcessorVersionInfo) as type thrift.TProcessorFunction in assignment:
        *metaProcessorVersionInfo does not implement thrift.TProcessorFunction (wrong type for Process method)
                have Process(int32, thrift.TProtocol, thrift.TProtocol) (bool, thrift.TException)
                want Process(context.Context, int32, thrift.TProtocol, thrift.TProtocol) (bool, thrift.TException)
..\..\pkg\mod\github.com\uber\tchannel-go@v1.19.0\thrift\gen-go\meta\meta.go:307:27: not enough arguments in call to processor.Process
        have (int32, thrift.TProtocol, thrift.TProtocol)
        want (context.Context, int32, thrift.TProtocol, thrift.TProtocol)
..\..\pkg\mod\github.com\uber\tchannel-go@v1.19.0\thrift\gen-go\meta\meta.go:307:27: too many errors
# github.com/uber/tchannel-go
..\..\pkg\mod\github.com\uber\tchannel-go@v1.19.0\connection.go:931:33: undefined: getSendQueueLen
..\..\pkg\mod\github.com\uber\tchannel-go@v1.19.0\connection.go:932:32: undefined: unix.GetsockoptInt
..\..\pkg\mod\github.com\uber\tchannel-go@v1.19.0\connection.go:932:60: undefined: unix.SOL_SOCKET
..\..\pkg\mod\github.com\uber\tchannel-go@v1.19.0\connection.go:932:77: undefined: unix.SO_SNDBUF

It works with tchannel-go@1.17.0

prashantv commented 4 years ago

There's a couple of issues here:

  1. go get tries to use the latest versions of libraries, and tchannel-go is not compatible with the latest Thrift, see https://github.com/uber/tchannel-go/blob/dev/glide.yaml#L11

You'll need to use glide to use the correct versions.

  1. tchannel-go does not officially support nor do we test for Windows builds.
MuzhiWang commented 4 years ago

There's a couple of issues here:

  1. go get tries to use the latest versions of libraries, and tchannel-go is not compatible with the latest Thrift, see https://github.com/uber/tchannel-go/blob/dev/glide.yaml#L11

You'll need to use glide to use the correct versions.

  1. tchannel-go does not officially support nor do we test for Windows builds.

Thanks @prashantv for your info! It works for me @1.17.0