ngrinder script validation error 해결을 어떻게 하나요?

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

ngrinder script validation error 해결을 어떻게 하나요?

joonseolee
아래 링크를 통해 controller, agent 를 다운받아 실행을 하는데 에러가 발생합니다.  
script 탭에서 groovy 스크립트로 추가를 하고 validate 체크를 하면 제목과 같이 에러가 발생합니다.  
"script validation error"
문법상 틀린게 없어서 ngrinder 깃헙에서 제공해주는 샘플 스크립트를 추가해줘도 유효성 에러가 발생합니다.  
근데 이상하게도 3.5.5-p1 까지는 유효성이 정상적으로 작동되고 스트레스 테스트도 성공했고
그 이상 버전 즉 3.5.6 이상은 어떤것을 도커로 띄워도 유효성 에러가 발생하는데 혹시 제 환경에서만 발생한건지 알수있을까요?

https://hub.docker.com/r/ngrinder/controller
Reply | Threaded
Open this post in threaded view
|

Re: ngrinder script validation error 해결을 어떻게 하나요?

junoyoon
Administrator
에러 메시지를 좀 자세히 써 주실 수 있을까요?
Reply | Threaded
Open this post in threaded view
|

Re: ngrinder script validation error 해결을 어떻게 하나요?

joonseolee
도커내 로그를 확인하면 아래와 같이 특별한 메시지가 나오고있진않습니다.

```
2023-01-17 05:05:46,751 INFO  LocalScriptTestDriveService.java:115 : grinder.jvm.classpath : /opt/ngrinder-controller/lib/ngrinder-controller-3.5.8.war-spring-boot-libs-e7fc14d0-6b4a-4d0a-8ea4-2b445dda3137/ngrinder-runtime-3.5.8.jar::/opt/ngrinder-controller/lib/ngrinder-controller-3.5.8.war-spring-boot-libs-e7fc14d0-6b4a-4d0a-8ea4-2b445dda3137/grinder-3.9.1-patch.jar::/opt/ngrinder-controller/script/admin
```

브라우저에서 개발자 도구를 확인했을때 웹소켓쪽 이슈로 확인되는 메시지가 나왔습니다.

```
{
  "message" : "Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.ngrinder.common.util.SystemInfoUtils",
  "success" : false,
  "stackTrace" : "org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.ngrinder.common.util.SystemInfoUtils\n\tat org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\n\tat org.ngrinder.security.PluggablePreAuthFilter.doFilter(PluggablePreAuthFilter.java:52)\n\tat org.ngrinder.infra.servlet.PluggableServletFilter.doFilter(PluggableServletFilter.java:61)\n\tat org.ngrinder.security.PluggablePreAuthFilter.doFilter(PluggablePreAuthFilter.java:52)\n\tat org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1589)\n\tat org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n\tat org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\nCaused by: java.lang.NoClassDefFoundError: Could not initialize class org.ngrinder.common.util.SystemInfoUtils\n\tat net.grinder.engine.agent.PropertyBuilder.buildJVMArgumentWithoutMemory(PropertyBuilder.java:208)\n\tat net.grinder.engine.agent.LocalScriptTestDriveService.doValidate(LocalScriptTestDriveService.java:131)\n\tat org.ngrinder.script.service.ScriptValidationService.validate(ScriptValidationService.java:117)\n\tat org.ngrinder.script.controller.FileEntryApiController.validate(FileEntryApiController.java:392)\n\t... 7 more\n"
}
```
Reply | Threaded
Open this post in threaded view
|

Re: ngrinder script validation error 해결을 어떻게 하나요?

junoyoon
Administrator
현재 사용하시는 os 가 무엇일까요? SystemInfoUtils 라는 클래스인데, 이게 지원 못하는 os 가 있기도 하고, 저 클래스를 로딩하는데 있어 필요한 파일이 주기적으로 os 에 의해 지워지기도 합니다.
Reply | Threaded
Open this post in threaded view
|

Re: ngrinder script validation error 해결을 어떻게 하나요?

joonseolee
현재 사용하는 os 는 다음과 같습니다.
아무래도 말씀해주신것에 따르면 amazonlinux 를 쓰다보니 그런것같네요..ㅠ
확인해보니 3.5.6 버전이 나온게 3개월전이였고 말씀해주신 SystemInfoUtils 클래스 생성일이 거의 6개월전이니 맞는듯합니다..
자세히 보니 이전에 ngrinder github discussions 에 등록되어있는 이슈랑 동일한걸로 보입니다.
해당 이슈는 아래에 추가해두었습니다.

```
test:~/environment $ cat /etc/*release*
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"
Amazon Linux release 2 (Karoo)
cpe:2.3:o:amazon:amazon_linux:2
```

https://github.com/naver/ngrinder/discussions/942