前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jenkins 您的存储中有无法读取或者旧的数据格式-分析

Jenkins 您的存储中有无法读取或者旧的数据格式-分析

作者头像
zinyan.com
发布2022-12-07 18:19:03
1.9K0
发布2022-12-07 18:19:03
举报
文章被收录于专栏:zinyanzinyan

1. 介绍

最近登录Jenkins之后,消息提示中反馈说:您的存储中有无法读取或者旧的数据格式。通过Jenkins的系统管理中的管理旧数据可以看到详细说明。

那么,问题来了。这些存储中有无法读取或者旧的数据格式是什么原因造成的呢?

2. 问题分析

Jenkins的所有功能,几乎可以说都是通过插件来实现的。而提示的这个错误原因,就是老版本插件安装过程中产生的配置文件中定义的变量在新版本插件中已经失效,无法读取了。

Jenkins就会提示出这个错误信息。

整个功能模块分两块:旧数据不可读数据

2.1 管理旧数据

当数据存储在磁盘上的方式发生变化时,Jenkins使用以下策略:数据在加载时迁移到新结构,但项/记录不会以新格式重新保存。这允许在必要时降级詹金斯。但是,它也可以将数据无限期地保留在磁盘上。这个功能会列出了包含此类数据的项/记录,以及更改数据结构的Jenkins版本。

也就是说,我们可以通过这个界面看到哪些数据已经属于旧数据了。

类型 ↓

名称

版本

Error

ps:我的项目中还没有产生旧数据,这里就不做展示了。

2.2 不可读数据

有时读取数据时会发生错误(如果一个插件添加了一些数据,但该插件后来被禁用了,如果迁移代码没有为结构更改编写,或者在Jenkins已经写入了旧版本不可读的数据后降级)。这些错误会被记录下来,但不可读的数据会被跳过,从而允许Jenkins启动并正常工作。

在这些项/记录中留下不可读的数据是可以的,因为Jenkins会简单地忽略它。为了避免Jenkins启动时的日志消息,您可以使用列表下面的按钮保存这些项目/记录,从而永久删除不可读的数据。

类型 ↓

名称

Error

hudson.model.FreeStyleProject

Demo-Android

CannotResolveClassException: buildName, CannotResolveClassException: qrcodePath, CannotResolveClassException: envVarsPath

例如,我因为插件升级,造成buildName,qrcodePath,envVarsPath 配置的全局变量不可读取了。

我们有两个选择:

  1. 丢弃掉不可读数据。
  2. 不管他。

因为Jenkins在构造过程中, 碰见不可读数据会自动忽略的。包括旧数据也是一样的。而这两个数据存在的主要原因就是,Jenkins为了保留插件降级功能。我们降级插件之后有些旧配置项就会生效了。

这里就是一个提醒功能。

PS:当我们整个配置全部稳定。构造任务都正常,不建议经常升级插件。原先我说建议插件用最新的,那只限于新版本安装,或者插件的确有比较大的功能更新,可以提高大家的效率的情况下。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-11-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 zinyan 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 介绍
  • 2. 问题分析
    • 2.1 管理旧数据
      • 2.2 不可读数据
      相关产品与服务
      对象存储
      对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档