Bright Chen
Bright Chen
Issue Type: - [x] Bug - [ ] Feature - [ ] Help Version & Environment: angular: 6.1.2 element-angular: ^0.7.6 Description: table组件的cell-mouse-enter、cell-click事件触发不了。 [在线例子](https://stackblitz.com/edit/angular-wfnvul?file=app%2Fdevice%2Fdevice.component.html)
**Describe the bug (描述bug)** 是否考虑在优雅退出时,stop and join 一些框架的常驻线程(worker线程、timer线程、bvar相关线程)?因为在退出的时候,全局变量或者静态变量析构后,常驻线程有几率访问到这些变量,存在coredump风险。相关issue:https://github.com/apache/incubator-brpc/issues/1594 、https://github.com/apache/incubator-brpc/issues/1726 、https://github.com/apache/incubator-brpc/issues/1634 **To Reproduce (复现方法)** 1. 通过graceful_quit_on_sigterm开启优雅退出功能; 2. 程序启动的时候,创建一个协程,协程的主要逻辑是`while(true) { /* 访问全局变量 */ }`; 3. 发送SIGTERM或者SIGINT给进程,让其优雅退出。 4. 这样,协程的循环里有几率访问到析构的全局变量,导致程序coredump。 **Expected behavior (期望行为)** 规避常驻线程在进程优雅退出时的coredump风险。...
背景:一些使用到的第三方库甚至标准库,都会有抛异常的情况。目前除了thrift,其他协议都没有捕获服务回调方法抛出的异常。这样使用的时候,只能等服务因抛异常而crash后,经过排查修复后,重新上线才能解决问题,相当于需要一次试错的成本。 期望:很多时候,异常case才会触发抛异常的逻辑,不需要让服务crash。其他协议的处理方式可以和thrift一样(http协议支持持续发送,需要特殊处理),捕获异常,返回错误给上游,并打印异常信息,使用方根据异常信息排查修复问题后,升级服务即可。
**Is your feature request related to a problem? Please describe.** kitex支持扩展[brpc协议](https://github.com/apache/brpc/blob/master/docs/cn/baidu_std.md)吗? **Describe the solution you'd like** 根据[文档](https://www.cloudwego.io/zh/docs/kitex/tutorials/framework-exten/codec/)描述,实现对应整体的 Codec 和 PayloadCodec,应该就能支持brpc协议了。 **Describe alternatives you've considered** A clear and concise description of...
### What problem does this PR solve? Issue Number: Problem Summary: 目前直接使用client Socket,存在两个问题: 1. 不能先连接对端,只能在第一次写入的时候连接。 2. 虽然可以先通过tcp connect获取一个fd,再通过SocketOptions.fd创建一个Socket对象。但是这种方式不支持ssl。 ### What is changed and the side effects? Changed: 支持在Socket::Create中连接对端,同时支持ssl。 Side effects:...
### What problem does this PR solve? Issue Number: resolve #2381 Problem Summary: ### What is changed and the side effects? Changed: 1. 将SocketId的功能抽象到VersionedRefWithId,满足类似SocketId的需求。只要实现OnCreate、OnFailed、OnRecycle接口即可。 2. EventDispatcher支持多种IO类型。在EventDispatcher和具体IO对象之间加入一层EventData对象(包含IO对象id、读事件回调函数、写事件回调函数)。在1的基础上,实现EventDataId,代替EventDispatcher中的SocketId。IO对象创建自己的EventData并持有EventDataId,将其注册到EventDispatcher。当有事件触发时,EventDispatcher通过EventDataId找到EventData,执行对应的回调函数。 Side effects: - Performance...
### What problem does this PR solve? Issue Number: resolve #2575 Problem Summary: 目前bRPC处理cookie和set-cookie这两个header的逻辑有问题: 1. [RFC 9114](https://datatracker.ietf.org/doc/html/rfc9114#section-4.2.1)规定: 多个cookie不能用`,`分隔,应该要用`; `; > If a decompressed field section contains multiple cookie field lines,...
### What problem does this PR solve? Issue Number: Problem Summary: ### What is changed and the side effects? Changed: 1. 支持半关闭:无需SetFailed,关闭写入端,但不影响读数据。 2. 支持在数据写入socket写入成功后调用id_wait回调函数:对于一些请求和响应不是一一对应的场景,例如WebSocket、TCP Stream客户端、Streaming rpc等,只需要关注数据是否写入成功。数据写入socket写入成功后调用id_wait回调函数,可以统计成功率、耗时等。#2545 Side effects: - Performance...
### What problem does this PR solve? Issue Number: Problem Summary: 此前遇到过IOBuf泄漏的情况,从heap profiler看到泄漏的位置是Socket读包的位置,实际上是因为IOBuf的tls缓存复用机制,掩盖了业务代码中存在IOBuf泄漏的问题。 ### What is changed and the side effects? Changed: 受Contention Profiler启发,开发一个IOBuf Profiler,将未释放的IOBuf::Block的引用计数操作的调用栈及其操作数量(整数表示持有引用计数,负数表示释放引用计数)展示位调用图。通过可视化的方式,可快速定位到一些可能存在泄漏的模块,缩小排查的范围。 因为数据上报有一定的顺序要求,所以没有使用Contention Profiler的方案(Collector)来上报数据,而是使用 #2492 封装的无锁队列来上报。 该工具可以扩展到其他引用计数相关的数据结构。...