Sourcebrella Pinpoint 2.1.3正式发布

转眼间又迎来了一个圣诞!

Sourcebrella Pinpoint2.1.3 就是我们给大家的提前准备的圣诞礼物!

祝大家在2019的最后十几天里,

给自己今年的代码体个检,过一个没有bug的圣诞节~

让我们再次唱响那个口号,

每天一罐快乐水,代码不被Bug怼!

新增功能:

(1)完善了agent的功能,包括:

  • 能够在上传分析后将结果路径自动转换为源代码所在服务器的路径,路径黑白名单也同样支持自动转换
  • 支持将两次扫描结果上传到同一个报告批次中

(2)能够支持高可用集群部署

(3)可以定时清理老旧数据,可以通过两种配置保留数据,一种是配置保留最新的批次个数,另一种是保留配置时间之后的所以报告批次

(4)pcli run 命令增加了参数--not-upload-src-files可以实现指定不上传源码

(5)增加了对 gcc 4.4.7 的适配

(6)新增了对QT工程的分析引擎

(7)新增了"不匹配的类型转换"检查器

(8)新增了头文件引用分析检查

(9)新增了反向null检查推断的空指针解引用形如(*a; if(a!=null)...; 之前只能报出形如if (a!=null) ...; *a)的错误新增了"不当头文件引用"检查器

(10)新增了可以批量操作用户的项目权限的功能

(11)新增了高级数据竞争、溢出检查以及数据传播分析检查

问题修复:

(1)修复了C++项目报告路径错乱的问题

(2)修复了由于没有发现程序退出点而导致误报的问题

(3)修复了因pthread加锁而导致的部分误报

体验优化:

(1)优化了数据库索引,提高了报告上传的速度

(2)优化了上传方式,可以排队往一个项目中上传多份报告

(3)access-token支持绑定服务器和用户名,命令行使用时支持解析此类token

(4)优化了源代码的存储方式,使得报告较易读

(5)增强了C/C++编译兼容性

(6)完善内存泄漏检查器,降低了检查的漏报率

具体新增功能如下:

1. 完善了Agent的功能

CI Agent 是一个简化Pinpoint任务提交的命令行工具,可以提交、等待任务,可以导出任务的报告等。具体使用步骤如下

1.从Pinpoint平台拉取程序并执行 curl http://example.com:40077/agent.sh | bash -s -- -h

2. 生成并记录访问令牌 curl http://example.com:40077/agent.sh | bash -s -- login -u adminuser -p adminuser

3. 创建远程任务

  • 上传由 Pinpoint 生成的 C/C++ 分析包 curl http://example.com:40077/agent.sh | bash -s -- submit –a path/to/analysis_package.pkg –n test_project
  • 上传Java 源文件与已经过编译的 Java 字节码文件 curl http://example.com:40077/agent.sh | bash -s -- submit –s path/to/source_code –j path/to/jars –n test_project

4. 等待远程任务完成 curl http://sbtest3.sbrella.in:3333/agent.sh | bash -s submit -j ~/pinpoint/pp-platform/tests/test_src_jar/Main.jar -s ~/pinpoint/pp-platform/tests/test_src_jar/src/ -o submit_result.json

5. 导出远程任务的缺陷报告

  • 使用submit_result.json进行报告导出 curl http://sbtest3.sbrella.in:3333/agent.sh | bash -s dump submit_result.json
  • 使用指定的项目ID和报告批次ID curl http://sbtest3.sbrella.in:3333/agent.sh | bash -s dump -p 5ddf94419f45c5fd6dd50a5e -r 5ddf94419f45c5fda27e1a0d

更详细的使用方法在使用手册中有具体介绍!

2. 新增了集群部署方式

  • 支持指定外部的Mongodb,Redis和Ldap服务地址
  • 上传的计算放入后台celery任务中执行,不需要使用内存缓存
  • 能够使用Redis实现项目树操作的锁
  • 可以配置来实现决定是否启动某个服务,以及决定celery worker启动的并发数

如果有集群部署的需求,可以联系我们,我们将会为您部署您所需要的服务!

3. 可以定时清理老旧数据

可以通过两种配置保留数据,一种是配置保留最新的批次个数,另一种是保留配置时间之后的所以报告批次,具体配置如下图:

ci_agent3.png

4. pcli run 命令增加了参数--not-upload-src-files可以实现指定不上传源码

pcli run 命令可以通过添加--not-upload-src-files参数来实现指定不上传源码

ci_agent4.png

5. 新增对QT工程的分析引擎

ci_agent5.png

目前已经能够支持对QT项目进行扫描,只需在页面上选上QT规则即可扫描

6. 新增了头文件引用分析检查

11112.png

7. 新增了可以批量操作用户的项目权限的功能

新增了可以批量操作用户的项目权限的功能,具体如下:

111111.png

8. 新增了高级数据竞争、溢出检查以及数据传播分析检查

newe.png