Bot releases are hidden (Show)
sandbox-api
到1.4.0
整体工程从JDK1.6迁移到JDK1.8,之前的JDK版本将不会再支持。这一点也是充分参考了不同JVM版本的市场份额和基于1.6的代码维护成本过高做了权衡。仍然在使用JDK1.6版本的用户请继续使用之前的沙箱版本。
增强NATIVE方法。因受到沙箱实现方案的限制,对JVM版本也有对应的限制要求。NATIVE方法增强将会在JDK[1.8,12]中启用,其他版本不开放。不排除后续调整NIATVE方法增强方案的改变后重新支持的可能。
需要增强java.lang.System#java.lang.System#currentTimeMillis()
方法的,请务必参考FAQ建议:沙箱如何增强JVM固有函数
GROUP-ID | ARTIFACT-ID | VERSION |
---|---|---|
com.alibaba.jvm.sandbox | sandbox-api | 1.4.0 |
com.alibaba.jvm.sandbox | sandbox-module-starter | 1.4.0 |
Published by dongchenxu over 4 years ago
修改类加载时间,将类加载时机提前到init阶段,同时恢复addTransformer时机
不兼容声明
无
API
GROUP-ID | ARTIFACT-ID | VERSION |
---|---|---|
com.alibaba.jvm.sandbox | sandbox-api | 1.3.1 |
com.alibaba.jvm.sandbox | sandbox-module-starter | 1.3.1 |
Published by dongchenxu over 4 years ago
不兼容声明
无
API
GROUP-ID | ARTIFACT-ID | VERSION |
---|---|---|
com.alibaba.jvm.sandbox | sandbox-api | 1.3.1 |
com.alibaba.jvm.sandbox | sandbox-module-starter | 1.3.1 |
Published by oldmanpushcart almost 5 years ago
功能特性
修复:
whoami
代替不兼容声明
无
API
GROUP-ID | ARTIFACT-ID | VERSION |
---|---|---|
com.alibaba.jvm.sandbox | sandbox-api | 1.3.1 |
com.alibaba.jvm.sandbox | sandbox-module-starter | 1.3.1 |
Published by oldmanpushcart almost 5 years ago
功能特性
优化:
改变Spy调用采用反射的机制,使用SpyHandler的接口调用,提升性能
因为改变了
sandbox-spy
包的行为,所以本次升级必须要重启目标JVM
降低sandbox.sh脚本对环境要求的兼容性,当环境不匹配时更多主动的是报错而不是尝试兼容
修复:
新增:
Module中Command注解的方法入参,新增java.io.OutputStream
类型。
但不能和
java.io.PrintWriter
同时声明,否则运行会报错!
不兼容声明
因为改变了sandbox-spy
包的行为,所以本次升级必须要重启目标JVM
API
GROUP-ID | ARTIFACT-ID | VERSION |
---|---|---|
com.alibaba.jvm.sandbox | sandbox-api | 1.3.0 |
com.alibaba.jvm.sandbox | sandbox-module-starter | 1.3.0 |
Published by dongchenxu about 5 years ago
功能特性
新增:
修复:
修复并发搜索类时导致内存泄漏问题
原有的GaLRUCache采用的是LinkedHashMap实现,会在并发情况下搜索模块出现内存泄漏,导致FG。并发的场景是JVM自己的类加载触发类搜索和module自己增强时主动搜索情况。修复方案是使用Guava的LRU替换自己实现的GaLRUCache。
懒加载化Advice结构部分重量级字段的获取,提升AdviceListener的性能和稳定性
优化类搜索、事件处理等关键路径上使用String.format()导致性能开销过大的问题 #209
修复部分情况下BootstrapClassLoader加载的类无法正确被解析的BUG #168 #189
修复properties配置文件配置的ip/port不生效 #143
优化@Command和@Http的注解,帮助大家规避掉老版本兼容问题 #200
修复查找JVM_HOME一定概率出现问题 #141
不兼容声明
无
API
无
Published by dongchenxu over 5 years ago
Published by dongchenxu over 5 years ago
功能特性
新增: sandbox-api增加ModuleJarUnLoadSpi.java,允许在ModuleJar文件被卸载的时候执行回调,可以在这个回调释放Jar包加载时所申请的资源。(例如:logback的线程池等)
新增: sandbox-api增加Command.java标注,用于替代@Http
标注。@Command
标注的好处在于他可以让你摆脱对javax.servlet的依赖。@Command
标注在方法上,支持三类入参类型
废弃: sandbox-api将废弃一些高危险类、低使用类
WebSocket
、EventListenerFactory
、ThreadSafeEventListener
,使用的人太少,增加复杂度@Http
标注,变更为@Command
标注Sentry
,不规范的使用ThreadLocal容易引起内存泄漏,推荐自己管理或者使用Advice的attach机制EventMonitor
和sandbox.properties
中关于对象池的配置,因为已经废弃了对象池javax.servlet
的依赖,因兼容性的需求所以maven中的依赖尚未废除,但你确定用@Command
标注代替@Http
标注之后,可以在依赖中exclusion掉
<dependency>
<groupId>com.alibaba.jvm.sandbox</groupId>
<artifactId>sandbox-api</artifactId>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>
优化: 废弃对内存、性能影响巨大的对象池的实现
沙箱原本依靠对象池来解决运行过程中产生的大量Event对象问题,希望能通过这样的机制降低新声代的压力。但实际使用过程中我们发现:
所以在这个版本中,我们将全局对象池的实现变更为:给每一个线程分配固定数量的Event
优化: Spy.SelfCallBarrier对象的锁机制 #109
优化: 支持JDK11 #136
修复: 沙箱的类分析机制会在SpringBoot触发java.lang.LinkageError异常 #133
修复: 沙箱在卸载时会引起“空指针”的问题
修复: 沙箱在卸载/重新加载时会引起“对象转换异常”问题 #125
修复: 修复沙箱因使用ThreadLocal不当引起内存泄漏问题 #123 #108
修复: 修复沙箱因堆栈使用不当引起堆栈错位问题 #123 #117
修复: 在OpenJDK8下JIT触发崩溃的问题 #130
其他修复: #126 #128 #121 #118
不兼容声明
无
API
GROUP-ID | ARTIFACT-ID | VERSION |
---|---|---|
com.alibaba.jvm.sandbox | sandbox-api | 1.2.0 |
com.alibaba.jvm.sandbox | sandbox-module-starter | 1.2.0 |
Published by dongchenxu almost 6 years ago
功能特性
在AdviceAdapterListener 中的 before 阶段直接使用 returnImmediately 方法修改返回值导致内存溢出
不兼容声明
无
API
GROUP-ID | ARTIFACT-ID | VERSION |
---|---|---|
com.alibaba.jvm.sandbox | sandbox-api | 1.1.2 |
com.alibaba.jvm.sandbox | sandbox-module-starter | 1.1.2 |
Published by dongchenxu almost 6 years ago
功能特性
增强:ASM框架升级到ASM7,为下一个版本适应JDK8的字节码做准备
修复:校准ClassStructureImplByJDK
和ClassStructureImplByAsm
的实现逻辑,修复
getAccess()
方法返回错误的属性getSignCode()
时返回的结果存在差异 #107getFamilyInterfaceClassStructures()
返回时忘记考虑获取家族接口类结构时忘记考虑自身父类的情况ClassStructure
相关的测试用例修复:修复容器shutdown时没有正确释放所有内存的问题 #108
增强:模块匹配搜索类时,去掉java.lang.Object
的匹配,加速类匹配速度
增强:添加CI集成测试插件
不兼容声明
无
API
GROUP-ID | ARTIFACT-ID | VERSION |
---|---|---|
com.alibaba.jvm.sandbox | sandbox-api | 1.0.16 |
com.alibaba.jvm.sandbox | sandbox-module-starter | 1.0.16 |
Published by dongchenxu almost 6 years ago
功能特性
不兼容声明
兼容功能点 | 兼容情况 |
---|---|
容器热升级兼容性 | 不兼容 |
API
GROUP-ID | ARTIFACT-ID | VERSION |
---|---|---|
com.alibaba.jvm.sandbox | sandbox-api | 1.0.16 |
com.alibaba.jvm.sandbox | sandbox-module-starter | 1.0.16 |
Published by oldmanpushcart about 6 years ago
修复内部测试过程中遇到的BUG
功能特性
sandbox-module-starter
完成工程搭建时会让工程使用到错误的slf4j库版本的问题不兼容声明
无!
API
GROUP-ID | ARTIFACT-ID | VERSION |
---|---|---|
com.alibaba.jvm.sandbox | sandbox-api | 1.0.16 |
com.alibaba.jvm.sandbox | sandbox-module-starter | 1.0.16 |
Published by oldmanpushcart almost 7 years ago
沙箱容器:0.0.1.c
API
GROUP-ID | ARTIFACT-ID | VERSION |
---|---|---|
com.alibaba.jvm.sandbox | sandbox-api | 1.0.9 |
com.alibaba.jvm.sandbox | sandbox-common-api | 1.0.1 |
com.alibaba.jvm.sandbox | sandbox-provider-api | 1.0.1 |