Asim Aslam
158949d0d0
accept Listen option in grpc server ( #1201 )
2020-02-15 14:09:24 +00:00
79ad1e6fe3
various fixes for broker and messaging in server ( #1187 )
...
* provide broker disconnect messages in server
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
* broker/eats: another fix
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2020-02-11 18:41:23 +00:00
7105e4099c
pass micro errors from grpc server to grpc client ( #1167 )
...
* pass micro errors from grpc server to grpc client
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
* wrap micro errors.Error to grpc status
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2020-02-06 10:18:33 +00:00
ben-toogood
d621548120
Auth ( #1147 )
...
Implement the Auth interface, with JWT and service implementations.
* Update Auth Interface
* Define Auth Service Implementation
* Support Service Auth
* Add Auth Service Proto
* Remove erronious files
* Implement Auth Service Package
* Update Auth Interface
* Update Auth Interface. Add Validate, remove Add/Remove roles
* Make Revoke interface more explicit
* Refactor serializing and deserializing service accounts
* Fix srv name & update interface to be more explicit
* Require jwt public key for auth
* Rename Variables (Resource.ID => Resource.Name & ServiceAccount => Account)
* Implement JWT Auth Package
* Remove parent, add ID
* Update auth imports to v2. Add String() to auth interface
2020-02-03 08:16:02 +00:00
efb59d9709
fix map race condition in grpc server
...
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2020-02-01 02:52:53 +03:00
f23638c036
fix import paths for v2 release
...
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2020-01-30 14:44:40 +03:00
Micro
62c067adcd
Refactor debug/trace ready for Jaeger
2020-01-29 15:45:11 +00:00
Asim Aslam
6d636b7ab3
whoa bad commit, bad asim
2020-01-22 17:07:56 +00:00
Asim Aslam
009c598049
Change version to latest
2020-01-22 17:03:38 +00:00
Lars Lehtonen
7a17a221ff
server: remove unused invalidRequest
2020-01-20 10:09:27 -08:00
Asim Aslam
bdd9ec560b
strip sub comments
2020-01-19 13:47:14 +00:00
Asim Aslam
0c03bf064b
only connect broker if there are subscribers
2020-01-19 13:45:28 +00:00
Asim Aslam
fc08a9146c
Add broker comments on server subscribe
2020-01-19 01:16:36 +00:00
Asim Aslam
0a37767127
Fix service registration with registry service
2020-01-18 19:53:51 +00:00
Asim Aslam
13d1d2fa08
hard stop if graceful stop fails after 1 second
2020-01-18 10:18:23 +00:00
Asim Aslam
fd6eb23307
do not wait to stop
2020-01-18 00:58:27 +00:00
Maarten Bezemer
50b20413d3
RPC stream client/server mutex fix ( #884 )
...
* Unlock RPC client while actually receiving a message
As receiving a message might block for a long time, unblocking the client allows to let it send messages in the meanwhile without using 'tricks'
* Unlock RPC server while actually receiving a message
As receiving a message might block for a long time, unblocking the client allows to let it send messages in the meanwhile without using 'tricks'
* Protect Close() against race conditions
* Concurrency and Sequence tests
2020-01-12 09:13:14 +00:00
f4fb923fb2
pass additional context for broker subscribe ( #1105 )
...
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2020-01-10 15:04:15 +00:00
Asim Aslam
0b8ff3a8bb
fix grpc json streaming by setting content sub type ( #1089 )
2020-01-07 18:37:34 +00:00
Asim Aslam
225b17559b
fix log streaming
2020-01-02 18:23:43 +00:00
Asim Aslam
e697912ee5
don't panic on nil
2020-01-01 21:56:29 +00:00
Asim Aslam
c145f355dd
Moving to gRPC by default ( #1069 )
...
* Step 1
* Fix the test panics
2019-12-29 21:07:55 +00:00
943445270f
fix registry check issue ( #1067 )
...
fix #1066
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2019-12-28 11:11:46 +00:00
Eagle Wu
a09b6729cc
Fix missing recover while occur panic in handler ( #1063 )
2019-12-27 10:53:11 +00:00
Asim Aslam
4e02f444fd
Merge pull request #1024 from unistack-org/server
...
add server Context option to pass own context
2019-12-17 08:48:39 +00:00
Astone
caa1bcf9fe
named return value for error defer modify.
2019-12-09 11:08:21 +08:00
Asim Aslam
c445aed6b1
Cleanup and speedup network convergence along with direct messaging for connect and solicit
2019-12-07 19:54:29 +00:00
1c5a4c470f
add server Context option to pass own context
...
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2019-12-05 19:37:03 +03:00
Milos Gajdos
5865e89bed
Fixing dead code and go vet moaning
2019-12-05 16:10:49 +00:00
a1eaf9cc20
linting fixes
...
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2019-12-04 00:22:02 +03:00
Asim Aslam
bb1a1358b7
Merge pull request #1012 from Astone-Chou/lint
...
improve code quality
2019-12-03 13:10:04 +00:00
Astone
29fb58db39
improve code quality
2019-12-03 20:59:02 +08:00
Astone
f9b900b2ca
optimize: a better way for return error
2019-12-03 12:47:29 +08:00
b8e96f45d4
add recovery in case of panics
...
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2019-12-03 02:25:40 +03:00
Asim Aslam
af94899b54
Fix rpc go routine leak
2019-11-27 17:12:07 +00:00
Asim Aslam
5932dd753c
Merge pull request #981 from unistack-org/subscriber
...
subscriber recovery
2019-11-27 10:28:51 +00:00
86a6328254
subscriber recovery
...
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2019-11-27 13:21:20 +03:00
Asim Aslam
8b63df7a98
regenerate the protos
2019-11-26 13:53:33 +00:00
Asim Aslam
080363e8c4
The mega cruft proxy PR ( #974 )
...
* the mega cruft proxy PR
* Rename broker id
* add protocol=grpc
* fix compilation breaks
* Add the tunnel broker to the network
* fix broker id
* continue to be backwards compatible in the protocol
2019-11-25 16:31:43 +00:00
49d73faa5f
return error to caller on grpc server request processing ( #962 )
...
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2019-11-20 10:28:30 +00:00
da6c1be607
dont panic on missing headers in broker event ( #963 )
...
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2019-11-20 07:55:47 +00:00
Asim Aslam
9f481542f3
Fix a codec race by locking the buffers. Include a buffer pool for perf. ( #941 )
...
* Fix a codec race by locking the buffers. Include a buffer pool for perf.
* Read Lock on buffer Read
2019-11-13 11:05:53 +00:00
Asim Aslam
72522a869a
fix endpoint extractor panic
2019-11-11 17:37:48 +00:00
Till Knuesting
5ae3e179b9
preallocated slices ( #934 )
2019-11-11 00:03:51 +00:00
c696a859be
fix data race for server Wait option ( #931 )
...
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2019-11-09 21:52:41 +00:00
Asim Aslam
a9e8fc6039
Don't set stream unless its true
2019-11-09 10:32:52 +00:00
Till Knuesting
f67c5e779f
preallocated slices ( #917 )
2019-11-05 17:43:12 +00:00
Yang Shi
c14bf5dc4e
improve the log of panic recovering ( #906 )
2019-11-02 23:08:54 +00:00
tegk
f88518d994
used gofmt with -s flag on whole project
2019-11-01 15:07:53 +00:00
Richard Lindhout
a725998c0a
Update rpc_server.go
2019-09-27 16:01:16 +02:00
Richard Lindhout
f3b723ca44
Do nog log error when EOS is being written on an EOF socket
2019-09-27 15:02:21 +02:00
Asim Aslam
fa0d020556
Set register ttl and interval by default
2019-09-23 17:59:34 +01:00
Asim Aslam
ac5eb5da47
Remove fmt
2019-09-22 15:31:07 +01:00
Asim Aslam
2434c7b2a7
replace version format
2019-09-22 15:21:22 +01:00
Shu Xian
c1c173dfe5
recover handler if panic
2019-09-11 00:40:40 +08:00
Asim Aslam
6daf4fda72
Full support for grpc server side
2019-08-26 12:33:59 +01:00
Asim Aslam
36623bfe50
Improve stream processing
2019-08-25 19:30:22 +01:00
Asim Aslam
6128d18ee0
checkpoint fixing data race to process h2 and grpc requests
2019-08-24 20:12:04 +01:00
Milos Gajdos
ba99f037fb
Lock started flag when changing it.
2019-08-23 15:07:08 +01:00
Milos Gajdos
80dc0b97a9
Make server starts and stops idempotent
2019-08-23 15:00:57 +01:00
Asim Aslam
c6e15ef2d1
rename server, set version to timestamp
2019-08-21 15:43:46 +01:00
f1d08f251f
fix panic: negative WaitGroup counter
...
avoid double wait group Done()
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2019-08-19 13:58:57 +03:00
Asim Aslam
c44fd63301
Force grpc client/server to use grpc codec for broker
2019-08-18 11:28:21 +01:00
Asim Aslam
991142cd57
No need to set request in the buffer
2019-08-16 14:42:45 +01:00
Asim Aslam
88817dc53f
Strip some dead code
2019-08-15 20:54:00 +01:00
Asim Aslam
ef04331b86
multiplexing cruft
2019-08-15 20:08:49 +01:00
Asim Aslam
f6b8045dd5
send client error if it exists
2019-08-15 15:22:53 +01:00
Asim Aslam
a42de29f67
Do same for host port on deregister
2019-08-15 08:59:50 +01:00
Shu Xian
bf0e46dc0d
fix registry addr error for mq-rpc
2019-08-14 21:32:28 +08:00
Asim Aslam
d0d729a789
fix the tunnel execution
2019-08-11 18:11:33 +01:00
johnson
de34f259ba
update service not found error tooltip
...
fixing test failed issue
change back error type
change registry.ErrNotFound back to selector.ErrNotFound
change back error type
change registry.ErrNotFound back to selector.ErrNotFound
remove the single node tunnel test
Fix read yaml config from memory
package main
import (
"fmt"
"github.com/micro/go-micro/config"
"github.com/micro/go-micro/config/source/memory"
)
var configData = []byte(`
---
a: 1234
`)
func main() {
memorySource := memory.NewSource(
memory.WithYAML(configData),
)
// Create new config
conf := config.NewConfig()
// Load file source
conf.Load(memorySource)
fmt.Println(string(conf.Bytes()))
}
2019-08-11 19:31:22 +08:00
Asim Aslam
3adce58eb2
Add monitor/debug packages
2019-08-06 17:53:14 +01:00
Asim Aslam
bb01b3ed78
Don't extract repeated value
2019-08-06 14:52:15 +01:00
Asim Aslam
c3ea25225c
Don't check value name on extraction
2019-08-06 14:49:42 +01:00
Asim Aslam
beffa625f8
fix broker log line
2019-08-06 12:25:51 +01:00
Asim Aslam
7884e889f4
Don't publish the process rpc call and embed the router handler in the network
2019-07-31 16:36:53 +01:00
Asim Aslam
a63dcda003
Strip the verbosity of the debug handler
2019-07-28 19:43:50 +01:00
Asim Aslam
1db98ee0f0
move all the buffer references to util/buf
2019-07-28 19:33:24 +01:00
1217ca94b1
bunch of other ipv6 fixes
...
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2019-07-18 08:59:53 +03:00
e688ab0a45
fix ipv6 addr parsing and using
...
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2019-07-17 12:20:29 +03:00
a3bddf5839
changes to minimize allocations and provide useful info
...
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2019-07-17 00:21:03 +03:00
Asim Aslam
c5dd737568
Add back in broker address
2019-07-10 19:58:30 +01:00
Asim Aslam
64ec0633a3
Fix breaks and go fmt
2019-07-10 07:47:17 +01:00
Asim Aslam
0bf54c122f
move transport back
2019-07-09 18:41:26 +01:00
Asim Aslam
5cd1e81ba9
Merge pull request #570 from sunfuze/grpc-json-marshal
...
grpc: using jsonpb.Marshaler to do Marshal, map to jsonpb.Unmarsh
2019-07-08 08:44:51 +01:00
Asim Aslam
e0bf1c2283
Remove Port from registry
2019-07-08 08:01:42 +01:00
Joe
b655f7f55a
grpc: using jsonpb.Marshaler to do Marshal, map to jsonpb.Unmarsh
2019-07-08 10:32:10 +08:00
Asim Aslam
4b4ad68eb9
Change Publication to Event
2019-07-07 12:44:09 +01:00
Asim Aslam
777a203f96
gofmt
2019-07-07 12:33:54 +01:00
Asim Aslam
c1097a4509
strip broker address
2019-07-07 12:33:47 +01:00
Asim Aslam
d2d6841f02
Move transport to network/transport
2019-07-07 10:37:34 +01:00
e40307c567
codec grpc: fix extra allocations on message unmarshal
...
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2019-07-04 14:06:29 +03:00
Joe
e88041dc26
if unmarshal target is proto.Message, using jsonpb
2019-07-04 16:43:36 +08:00
Asim Aslam
d8e998ad85
add peer in context
2019-06-27 14:53:01 +01:00
Asim Aslam
9630e153a5
fix grpc proto wrapper
2019-06-27 13:08:06 +01:00
Asim Aslam
8d5d812e32
Fix a streaming bug
2019-06-20 12:44:51 +01:00
Asim Aslam
d3a6297b17
Add working grpc proxy config
2019-06-18 18:51:52 +01:00
Asim Aslam
f65694670e
add cruft
2019-06-17 20:05:58 +01:00
johnson
baaa386e27
a. add default context type when header not found
...
b. return subscribe error after handler finished
2019-06-17 17:54:37 +08:00
johnson
363fb551af
missing nil check for grpc WaitGroup
2019-06-17 17:07:55 +08:00
Asim Aslam
a6e09c9249
Merge branch 'master' into crufting
2019-06-12 12:29:57 +01:00
Asim Aslam
000e25a4b2
use the router
2019-06-12 12:05:34 +01:00
Asim Aslam
ed4bce3285
check in this cruft
2019-06-08 19:40:44 +01:00
Asim Aslam
f5ac238231
Include the decoded body
2019-06-07 15:15:22 +01:00
Asim Aslam
bfdec9e2e3
add the wrappers back into the core router
2019-06-07 15:02:19 +01:00
695c546385
server fix log.Log -> log.Logf
...
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2019-06-05 15:09:26 +03:00
Asim Aslam
953f41aeab
Fix go mod issues
2019-06-05 10:22:28 +01:00
Asim Aslam
44b17b7e4b
strip use of cmd
2019-06-03 19:07:09 +01:00
Asim Aslam
b42b6fa0fc
Further consolidate the libraries
2019-06-03 18:44:43 +01:00
Asim Aslam
f80f0eb38e
fix broken pipe error
2019-06-03 15:55:47 +01:00
Asim Aslam
4035ab5c7b
Change go-log links
2019-05-31 00:38:05 +01:00
Asim Aslam
b4874806df
Add util
2019-05-30 23:52:10 +01:00
Asim Aslam
9f037eafd2
fix waitgroup bug which crashes subscriber
2019-05-29 09:28:04 +01:00
magodo
ebc479ef2c
Wait()
option now accept *sync.WaitGroup
...
The original signature accept a boolean, and it feel like a little
verbose, since when people pass in this option, he/she always want to
pass a `true`.
Now if input `wg` is nil, it has same effect as passing `true` in
original code. Furthermore, if user want's finer grained control during
shutdown, one can pass in a predefined `wg`, so that server will wait
against it during shutdown.
2019-05-27 21:17:57 +08:00
lpxxn
7da6ff1c4b
fix:# #476 need send error info
2019-05-27 13:14:31 +08:00
shu xian
fac42bc1a9
add AutoAck support for Server
2019-05-24 20:06:27 +08:00
a13cdfcc34
add RegisterCheck server option for internal health checks
...
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2019-05-15 15:34:34 +03:00
Asim Aslam
ca77773fbf
fix json tag parsing
2019-03-19 00:21:25 +00:00
Asim Aslam
7db2912d90
add more verbose output
2019-02-15 17:20:09 +00:00
Asim Aslam
6819989195
change default name/version
2019-02-15 16:14:41 +00:00
Asim Aslam
31fc8df2ba
add server request body
2019-02-04 13:13:03 +00:00
Asim Aslam
baf7de76bf
Merge branch 'master' of github.com:micro/go-micro
2019-02-04 10:29:26 +00:00
Asim Aslam
31b6cad47b
make copy before writing
2019-02-04 10:29:10 +00:00
kuangzhiqiang
6be205fd40
client close: rpc: unable to write error response
...
when client close notice: "rpc: unable to write error response..."
2019-02-03 19:12:13 +08:00
Asim Aslam
c03d935ffd
fallback for 0.14.0 and older
2019-02-01 15:57:34 +00:00
Asim Aslam
e22fa01935
fix ticker
2019-01-24 16:08:04 +00:00
Asim Aslam
a5015692e3
Merge pull request #400 from micro/interval
...
Move RegisterInterval into the server
2019-01-24 13:55:05 +00:00
Asim Aslam
539b8c1a3b
Move RegisterInterval into the server
2019-01-24 13:22:17 +00:00
Asim Aslam
67a738b504
Merge pull request #399 from unistack-org/master
...
add context to SubscriberOptions
2019-01-24 13:11:33 +00:00
ac1afea7fc
add context to server.SubscriberOptions and broker.SubscribeOption
...
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2019-01-24 15:36:01 +03:00
Asim Aslam
8090f9968d
Update headers to remove X- prefix
2019-01-24 10:11:02 +00:00
Asim Aslam
8a0d5f0489
log if we can't even respond
2019-01-22 13:55:04 +00:00
Asim Aslam
2ed676acf4
handle errors differently
2019-01-22 13:52:18 +00:00
Asim Aslam
d8ba18deff
change logging
2019-01-22 12:18:33 +00:00
Asim Aslam
6468733d98
Use protocol from node metadata
2019-01-18 12:30:39 +00:00
Asim Aslam
9bd32645be
Account for old target
2019-01-18 10:43:41 +00:00
Asim Aslam
f41be53ff8
Add ability to process legacy requests
2019-01-18 10:23:36 +00:00
Asim Aslam
2cd2258731
For the legacy
2019-01-18 10:12:57 +00:00
Asim Aslam
784a89b488
Allow bytes.Frame to be set to sent just bytes
2019-01-16 15:27:57 +00:00
Asim Aslam
00661f8a99
Clarify log message
2019-01-15 15:17:30 +00:00
Asim Aslam
e362466e8a
use default router
2019-01-14 21:45:43 +00:00
Asim Aslam
c1d0237370
Add client response
2019-01-14 21:30:43 +00:00
Asim Aslam
c17d0fcc0f
grpc request
2019-01-13 19:54:07 +00:00
Asim Aslam
e1bc240a14
Respond with error type
2019-01-13 12:15:35 +00:00
Asim Aslam
bfd341a269
Execute wrappers before router
2019-01-11 15:49:54 +00:00
Asim Aslam
36788487a7
set headers as appropriate
2019-01-11 13:44:47 +00:00
Asim Aslam
9adebfcf1e
rename method to endpoint
2019-01-10 21:25:31 +00:00
Asim Aslam
6e0e4a684c
Further crufting
2019-01-09 19:28:13 +00:00
Asim Aslam
873fc6d663
rewriting a lot
2019-01-09 19:11:47 +00:00
Asim Aslam
d004c9624b
Add router modifications
2019-01-09 16:20:57 +00:00
Asim Aslam
ee380c6b7a
reorder
2019-01-09 09:06:30 +00:00
Asim Aslam
7a1f735825
remove server codec
2019-01-09 09:02:30 +00:00
Asim Aslam
f46828be33
Add Router interface
2019-01-08 20:32:47 +00:00
Asim Aslam
4cb41721f1
further codec changes
2019-01-08 15:38:25 +00:00
Asim Aslam
216dbb771a
rename requestHeader
2019-01-07 18:25:31 +00:00
Asim Aslam
c9963cb870
rename
2019-01-07 18:20:47 +00:00
Asim Aslam
9544058af3
Merge pull request #372 from micro/codec
...
Switch default codec and add default codec for server
2019-01-07 17:54:28 +00:00
Asim Aslam
c717af21ac
Some router changes
2019-01-07 17:17:06 +00:00
Asim Aslam
46ece968d4
rename service to router
2019-01-07 14:44:40 +00:00
Asim Aslam
d179c971af
Switch default codec and add default codec for server
2019-01-07 13:48:38 +00:00
Asim Aslam
5aeb28dfee
Add error header
2019-01-07 09:11:36 +00:00
Asim Aslam
ed580204a8
Add grpc codec
2019-01-02 12:55:06 +00:00
Asim Aslam
e2623d8ef5
Make json/protobuf codecs
2018-12-31 22:01:16 +00:00
Asim Aslam
0d917bbf37
move location of handler
2018-11-26 14:51:42 +00:00
Asim Aslam
34ed5235a3
rename rpc codec
2018-11-23 20:05:31 +00:00
Shulhan
415fb3a730
all: replace "pborman/uuid" with "google/uuid"
...
Internally, "pborman/uuid.NewUUID()" is calling "google/uuid.New()"
that return nil when there is an error [1].
Both package use the same license.
[1] https://github.com/pborman/uuid/blob/master/version1.go#L17
2018-11-21 17:29:21 +07:00
Asim Aslam
172ffee8c3
add rpc package comments
2018-11-20 10:30:53 +00:00
Asim Aslam
e69413b763
add continue
2018-11-15 21:13:33 +00:00
Asim Aslam
45f18042b7
make accept loop
2018-11-15 19:55:13 +00:00
Asim Aslam
0672b051cc
Add Local/Remote ip to metadata
2018-11-14 20:27:58 +00:00
Asim Aslam
c6a2c8de6c
add local/remote to testsocket
2018-11-14 19:45:46 +00:00
Mikhail Grachev
25e6dcc9b6
Fix some linter issues
2018-11-13 11:57:42 +03:00
Asim Aslam
a56e97b47d
Change waitgroup processing
2018-05-26 09:41:41 +01:00
Asim Aslam
c666558f8c
make the broker/transport listen on new addr when stop/started with addr :0
2018-05-25 15:19:25 +01:00
Asim Aslam
b39ec4472c
Return subscriber errors
2018-04-26 10:47:13 +01:00
Asim Aslam
0315b4480f
revert some changes
2018-04-17 11:00:22 +01:00
Asim Aslam
19fdfba0bf
move wrapper files
2018-04-14 19:24:17 +01:00
Asim Aslam
d00d76bf7c
Move publication to message
2018-04-14 18:21:02 +01:00
Asim Aslam
65068e8b82
rename Streamer to Stream
2018-04-14 18:15:09 +01:00
Asim Aslam
e55437698b
misc moved to util
2018-04-08 12:37:45 +01:00
Asim Aslam
c9b40cb33b
switch to stdlib context
2018-03-03 11:53:52 +00:00
Tobias Wellnitz, DH1TW
0dcea05fb8
fix possible deadlock since code can return without unlocking the Mutex
2018-01-01 19:57:13 +01:00
Shannon Wynter
0e696f4907
Fix hashing of the service definition
...
Maps are sorted randomly, order the keys as a slice
2017-08-24 18:25:05 +10:00
Hao Lian
d4b149046f
server/rpc_codec: if c.codec.Write fails, reset write buffer and encode an error message about the encoding failure
...
When developing go-micro services, it is frequently possible to set invalid results in the response pointer. When this happens (as I and @trushton personally experienced), `sendResponse()` returns an error correctly explaining what happened (e.g. protobuf refused to encode a bad struct) but the `call()` function one above it in the stack ignores the returned error object.
Thus, invalid structs go un-encoded and the _client side times out_. @trushton and I first caught this in our CI builds when we left a protobuf.Empty field uninitialized (nil) instead of setting it to `&ptypes.Empty{}`. This resulted in an `proto: oneof field has nil value` error, but it was dropped and became a terribly confusing client timeout instead.
This patch is two independent changes:
* In rpc_codec, when a serialization failure occurs serialize an error message, which will correctly become a 500 for HTTP services, about the encoding failure. This means rpc_codec only returns an `error` when a socket failure occurs, which I believe is the behavior that rpc_service is expecting anyway.
* In rpc_service, log any errors returned by sendResponse instead of dropping the error object. This will make debugging client timeouts less of a hassle.
2017-07-17 14:21:43 -04:00
Asim Aslam
3812cbbcb6
defer wg.Done so it's called even if there's a panic
2017-06-12 14:18:59 +01:00
Asim Aslam
e1a1f1c0f0
add wait option
2017-05-31 19:47:50 +01:00
Asim Aslam
f7a9207c7a
wait for subscribers to complete
2017-05-31 19:47:41 +01:00
Asim Aslam
2ee22f5336
strip init of wg
2017-05-31 19:35:16 +01:00
Asim Aslam
276a0118da
be pedantic
2017-05-31 19:33:11 +01:00
Asim Aslam
726793b6fa
Wait for requests to finish before closing transport
2017-05-31 19:21:41 +01:00
Asim Aslam
a7312f5c7e
log panics
2017-05-16 19:14:00 +01:00
Asim Aslam
5bce20627f
Switch that back to Fatal since we've added the convenience method
2017-05-12 15:14:54 +01:00
Asim Aslam
bab586b71e
make use of micro/go-log
2017-05-11 20:43:42 +01:00
Asim Aslam
238c99d228
rename file to please the OCD gods
2017-01-12 20:38:43 +00:00
Asim Aslam
a9889730d6
move addr extractor to misc
2017-01-12 13:20:34 +00:00
Asim Aslam
d606d00f35
superfluous logging
2016-12-15 20:45:27 +00:00
Asim Aslam
71d717a06d
strip doc.go files
2016-12-14 15:41:48 +00:00
Asim
a36e042983
We don't need numcalls, save us a mutex lock
2016-11-01 19:40:36 +00:00
Asim
15f19b700f
Use struct tags if available
2016-07-30 19:01:42 +01:00
Asim
739b094cd2
Merge branch 'master' into pool
2016-06-06 14:06:03 +01:00