Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bugfix: JOB_NAMESPACE变量无法使用,值为空 #1222

Closed
wangyu096 opened this issue Aug 24, 2022 · 1 comment
Closed

bugfix: JOB_NAMESPACE变量无法使用,值为空 #1222

wangyu096 opened this issue Aug 24, 2022 · 1 comment
Assignees
Labels
done 已上线到正式环境并验收通过 kind/bug 程序故障Bug,漏洞 stage/prod Production environment in tencent has been deploy stage/test Test environment in tencent has been deploy

Comments

@wangyu096
Copy link
Collaborator

Version / Branch / tag
3.6.x

出了什么问题?(What Happened?)
使用JOB_NAMESPACE_{var_name}魔法变量,没有值。脚本如下:

# job_import {{JOB_NAMESPACE_log_dir}}
echo ${JOB_NAMESPACE_log_dir} 

如何复现?(How to reproduce?)
见问题描述

预期结果(What you expect?)
正确输出命名空间变量的值

@wangyu096 wangyu096 added the kind/bug 程序故障Bug,漏洞 label Aug 24, 2022
@wangyu096 wangyu096 self-assigned this Aug 24, 2022
@wangyu096
Copy link
Collaborator Author

wangyu096 commented Aug 24, 2022

问题原因:
上一步骤输出的变量值不包含ip,导致当前步骤解析变量值的时候出现异常。

2022-08-24 16:02:03.623]  WARN [,c42318c5bc50b068,9b4ca41363362818] 29745 --- [gse.task.service.job.execute-22] c.t.bk.job.common.util.json.JsonMapper   : Write to json string error:{null=job-3}

com.fasterxml.jackson.databind.JsonMappingException: Null key for a Map not allowed in JSON (use a converting NullKeySerializer?) (through reference chain: java.util.HashMap["null"])
        at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:288)
        at com.fasterxml.jackson.databind.SerializerProvider.mappingException(SerializerProvider.java:1337)
        at com.fasterxml.jackson.databind.SerializerProvider.reportMappingProblem(SerializerProvider.java:1231)
        at com.fasterxml.jackson.databind.ser.impl.FailingSerializer.serialize(FailingSerializer.java:35)
        at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:709)
        at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeWithoutTypeInfo(MapSerializer.java:681)
        at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:637)
        at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:33)
        at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)
        at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)
        at com.fasterxml.jackson.databind.ObjectMapper._writeValueAndClose(ObjectMapper.java:4409)
        at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:3663)
        at com.tencent.bk.job.common.util.json.JsonMapper.toJson(JsonMapper.java:80)
        at com.tencent.bk.job.common.util.json.JsonUtils.toJson(JsonUtils.java:125)
        at com.tencent.bk.job.execute.engine.variable.JobNamespaceVariableResolver.resolve(JobNamespaceVariableResolver.java:86)
        at com.tencent.bk.job.execute.engine.variable.JobBuildInVariableResolver.resolve(JobBuildInVariableResolver.java:60)
        at com.tencent.bk.job.execute.engine.executor.ScriptGseTaskStartCommand.appendImportVariablesDeclareScript(ScriptGseTaskStartCommand.java:401)
        at com.tencent.bk.job.execute.engine.executor.ScriptGseTaskStartCommand.buildChangeableVarDeclareScript(ScriptGseTaskStartCommand.java:514)
        at com.tencent.bk.job.execute.engine.executor.ScriptGseTaskStartCommand.buildRequestWithChangeableParam(ScriptGseTaskStartCommand.java:464)
        at com.tencent.bk.job.execute.engine.executor.ScriptGseTaskStartCommand.buildShellScriptRequestForPlan(ScriptGseTaskStartCommand.java:246)
        at com.tencent.bk.job.execute.engine.executor.ScriptGseTaskStartCommand.buildShellScriptRequest(ScriptGseTaskStartCommand.java:219)

DB 存储的变量值如下:
image

jsonwan added a commit that referenced this issue Aug 25, 2022
bugfix: JOB_NAMESPACE变量无法使用,值为空 #1222
@bkjob-bot bkjob-bot added the stage/prod Production environment in tencent has been deploy label Aug 26, 2022
@bkjob-bot bkjob-bot added the stage/test Test environment in tencent has been deploy label Aug 29, 2022
@bkjob-bot bkjob-bot added the done 已上线到正式环境并验收通过 label May 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
done 已上线到正式环境并验收通过 kind/bug 程序故障Bug,漏洞 stage/prod Production environment in tencent has been deploy stage/test Test environment in tencent has been deploy
Projects
None yet
Development

No branches or pull requests

2 participants