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: 特性开关的配置如果是错误的,会导致依赖该特性的请求报错 #1798

Closed
wangyu096 opened this issue Mar 3, 2023 · 0 comments
Assignees
Labels
done 已上线到正式环境并验收通过 kind/bug 程序故障Bug,漏洞

Comments

@wangyu096
Copy link
Collaborator

Version / Branch / tag

3.7.x
出了什么问题?(What Happened?)

image

首次初始化的时候报错:

Caused by: java.lang.ExceptionInInitializerError: null
        at com.tencent.bk.job.common.util.feature.FeatureToggle.getInstance(FeatureToggle.java:59)
        at com.tencent.bk.job.execute.service.impl.TaskExecuteServiceImpl.isUsingGseV2(TaskExecuteServiceImpl.java:752)
        at com.tencent.bk.job.execute.service.impl.TaskExecuteServiceImpl.fillHostAgent(TaskExecuteServiceImpl.java:923)
        at com.tencent.bk.job.execute.service.impl.TaskExecuteServiceImpl.fillTaskInstanceHostDetail(TaskExecuteServiceImpl.java:887)
        at com.tencent.bk.job.execute.service.impl.TaskExecuteServiceImpl.acquireAndSetHosts(TaskExecuteServiceImpl.java:706)
        at com.tencent.bk.job.execute.service.impl.TaskExecuteServiceImpl.executeJobPlan(TaskExecuteServiceImpl.java:1211)
        at com.tencent.bk.job.execute.api.inner.ServiceExecuteTaskResourceImpl.executeTask(ServiceExecuteTaskResourceImpl.java:84)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071)
        ... 55 common frames omitted
Caused by: java.lang.IllegalArgumentException: Parameter resource_scope is required for this ToggleStrategy
        at com.tencent.bk.job.common.util.feature.strategy.AbstractToggleStrategy.assertRequiredParameter(AbstractToggleStrategy.java:47)
        at com.tencent.bk.job.common.util.feature.strategy.ResourceScopeToggleStrategy.<init>(ResourceScopeToggleStrategy.java:32)
        at com.tencent.bk.job.common.util.feature.FeatureToggle.lambda$reload$0(FeatureToggle.java:82)
        at java.util.LinkedHashMap.forEach(LinkedHashMap.java:684)
        at com.tencent.bk.job.common.util.feature.FeatureToggle.reload(FeatureToggle.java:71)
        at com.tencent.bk.job.common.util.feature.FeatureToggle.<init>(FeatureToggle.java:55)
        at com.tencent.bk.job.common.util.feature.FeatureToggle.<init>(FeatureToggle.java:43)
        at com.tencent.bk.job.common.util.feature.FeatureToggle$FeatureToggleHolder.<clinit>(FeatureToggle.java:51)
        ... 73 common frames omitted

后续请求报错:

Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.tencent.bk.job.common.util.feature.FeatureToggle$FeatureToggleHolder
        at com.tencent.bk.job.common.util.feature.FeatureToggle.getInstance(FeatureToggle.java:59)
        at com.tencent.bk.job.execute.service.impl.TaskExecuteServiceImpl.isUsingGseV2(TaskExecuteServiceImpl.java:752)
        at com.tencent.bk.job.execute.service.impl.TaskExecuteServiceImpl.fillHostAgent(TaskExecuteServiceImpl.java:923)
        at com.tencent.bk.job.execute.service.impl.TaskExecuteServiceImpl.fillTaskInstanceHostDetail(TaskExecuteServiceImpl.java:887)
        at com.tencent.bk.job.execute.service.impl.TaskExecuteServiceImpl.acquireAndSetHosts(TaskExecuteServiceImpl.java:706)
        at com.tencent.bk.job.execute.service.impl.TaskExecuteServiceImpl.executeJobPlan(TaskExecuteServiceImpl.java:1211)
        at com.tencent.bk.job.execute.api.inner.ServiceExecuteTaskResourceImpl.executeTask(ServiceExecuteTaskResourceImpl.java:84)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071)

如何复现?(How to reproduce?)

预期结果(What you expect?)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
done 已上线到正式环境并验收通过 kind/bug 程序故障Bug,漏洞
Projects
None yet
Development

No branches or pull requests

2 participants