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

Regression (3.12) : Cannot debug server chassis (-Ddebug) #6994

Closed
1 task done
planetf1 opened this issue Oct 13, 2022 · 1 comment
Closed
1 task done

Regression (3.12) : Cannot debug server chassis (-Ddebug) #6994

planetf1 opened this issue Oct 13, 2022 · 1 comment
Assignees
Labels
bug Something isn't working logging logging, auditing regression Regression - ie gone backward

Comments

@planetf1
Copy link
Member

planetf1 commented Oct 13, 2022

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

No debug is enabled by passing -Ddebug or setting LOGGING_LEVEL_ROOT=debug etc - these techniques are essential to debugging non-egeria issues such as kafka client, class loading, jackson parsing errors etc, often with refinements ie:

➜  egeria-3.12-distribution.tar.gz git:(egeria-release-3.12) java -Ddebug -jar  server/server-chassis-spring-3.12.jar| head -20
SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#noProviders for further details.
SLF4J: Class path contains SLF4J bindings targeting slf4j-api versions prior to 1.8.
SLF4J: Ignoring binding found at [jar:file:/Users/jonesn/IdeaProjects/egeria/release/open-metadata-distribution/open-metadata-assemblies/build/unpacked/egeria-3.12-distribution.tar.gz/server/server-chassis-spring-3.12.jar!/BOOT-INF/lib/logback-classic-1.2.11.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#ignoredBindings for an explanation.
 Project Egeria - Open Metadata and Governance
    ____   __  ___ ___    ______   _____                                 ____   _         _     ___
   / __ \ /  |/  //   |  / ____/  / ___/ ___   ____ _   __ ___   ____   / _  \ / / __    / /  / _ /__   ____ _  _
  / / / // /|_/ // /| | / / __    \__ \ / _ \ / __/| | / // _ \ / __/  / /_/ // //   |  / _\ / /_ /  | /  _// || |
 / /_/ // /  / // ___ |/ /_/ /   ___/ //  __// /   | |/ //  __// /    /  __ // // /  \ / /_ /  _// / // /  / / / /
 \____//_/  /_//_/  |_|\____/   /____/ \___//_/    |___/ \___//_/    /_/    /_/ \__/\//___//_/   \__//_/  /_/ /_/

 :: Powered by Spring Boot (v2.7.3) ::

Thu Oct 13 17:54:53 BST 2022 No OMAG servers listed in startup configuration
Thu Oct 13 17:54:53 BST 2022 OMAG server platform ready for more configuration
^C

Expected Behavior

In the 3.11 release & previously, when the -Ddebug flag is passed, or other logging options like -Dlogging.level.root, we get extra info which can be useful to debug spring/jackson./classloader issues ie:

➜  egeria-3.11-distribution.tar.gz git:(egeria-release-3.11) java -Ddebug -jar  server/server-chassis-spring-3.11.jar| head -20
 Project Egeria - Open Metadata and Governance
    ____   __  ___ ___    ______   _____                                 ____   _         _     ___
   / __ \ /  |/  //   |  / ____/  / ___/ ___   ____ _   __ ___   ____   / _  \ / / __    / /  / _ /__   ____ _  _
  / / / // /|_/ // /| | / / __    \__ \ / _ \ / __/| | / // _ \ / __/  / /_/ // //   |  / _\ / /_ /  | /  _// || |
 / /_/ // /  / // ___ |/ /_/ /   ___/ //  __// /   | |/ //  __// /    /  __ // // /  \ / /_ /  _// / // /  / / / /
 \____//_/  /_//_/  |_|\____/   /____/ \___//_/    |___/ \___//_/    /_/    /_/ \__/\//___//_/   \__//_/  /_/ /_/

 :: Powered by Spring Boot (v2.7.2) ::

2022-10-13 17:52:59.238  INFO 75101 --- [           main] o.o.o.s.springboot.OMAGServerPlatform    : Starting OMAGServerPlatform using Java 17.0.4.1 on Nigels-MBP-2.fritz.box with PID 75101 (/Users/jonesn/IdeaProjects/egeria/release/open-metadata-distribution/open-metadata-assemblies/build/unpacked/egeria-3.11-distribution.tar.gz/server/server-chassis-spring-3.11.jar started by jonesn in /Users/jonesn/IdeaProjects/egeria/release/open-metadata-distribution/open-metadata-assemblies/build/unpacked/egeria-3.11-distribution.tar.gz)
2022-10-13 17:52:59.241  INFO 75101 --- [           main] o.o.o.s.springboot.OMAGServerPlatform    : No active profile set, falling back to 1 default profile: "default"
2022-10-13 17:52:59.242 DEBUG 75101 --- [           main] o.s.boot.SpringApplication               : Loading source class org.odpi.openmetadata.serverchassis.springboot.OMAGServerPlatform
2022-10-13 17:52:59.303 DEBUG 75101 --- [           main] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@68e5eea7
2022-10-13 17:53:00.725 DEBUG 75101 --- [           main] o.a.catalina.core.AprLifecycleListener   : The Apache Tomcat Native library could not be found using names [tcnative-2, libtcnative-2, tcnative-1, libtcnative-1] on the java.library.path [/Users/jonesn/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.]. The errors reported were [Can't load library: /Users/jonesn/IdeaProjects/egeria/release/open-metadata-distribution/open-metadata-assemblies/build/unpacked/egeria-3.11-distribution.tar.gz/bin/libtcnative-2.dylib, Can't load library: /Users/jonesn/IdeaProjects/egeria/release/open-metadata-distribution/open-metadata-assemblies/build/unpacked/egeria-3.11-distribution.tar.gz/bin/liblibtcnative-2.dylib, Can't load library: /Users/jonesn/IdeaProjects/egeria/release/open-metadata-distribution/open-metadata-assemblies/build/unpacked/egeria-3.11-distribution.tar.gz/bin/libtcnative-1.dylib, Can't load library: /Users/jonesn/IdeaProjects/egeria/release/open-metadata-distribution/open-metadata-assemblies/build/unpacked/egeria-3.11-distribution.tar.gz/bin/liblibtcnative-1.dylib, no tcnative-2 in java.library.path: /Users/jonesn/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:., no libtcnative-2 in java.library.path: /Users/jonesn/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:., no tcnative-1 in java.library.path: /Users/jonesn/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:., no libtcnative-1 in java.library.path: /Users/jonesn/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.]

org.apache.tomcat.jni.LibraryNotFoundError: Can't load library: /Users/jonesn/IdeaProjects/egeria/release/open-metadata-distribution/open-metadata-assemblies/build/unpacked/egeria-3.11-distribution.tar.gz/bin/libtcnative-2.dylib, Can't load library: /Users/jonesn/IdeaProjects/egeria/release/open-metadata-distribution/open-metadata-assemblies/build/unpacked/egeria-3.11-distribution.tar.gz/bin/liblibtcnative-2.dylib, Can't load library: /Users/jonesn/IdeaProjects/egeria/release/open-metadata-distribution/open-metadata-assemblies/build/unpacked/egeria-3.11-distribution.tar.gz/bin/libtcnative-1.dylib, Can't load library: /Users/jonesn/IdeaProjects/egeria/release/open-metadata-distribution/open-metadata-assemblies/build/unpacked/egeria-3.11-distribution.tar.gz/bin/liblibtcnative-1.dylib, no tcnative-2 in java.library.path: /Users/jonesn/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:., no libtcnative-2 in java.library.path: /Users/jonesn/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:., no tcnative-1 in java.library.path: /Users/jonesn/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:., no libtcnative-1 in java.library.path: /Users/jonesn/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
	at org.apache.tomcat.jni.Library.<init>(Library.java:93) ~[tomcat-embed-core-9.0.65.jar!/:na]
	at org.apache.tomcat.jni.Library.initialize(Library.java:234) ~[tomcat-embed-core-9.0.65.jar!/:na]
	at org.apache.catalina.core.AprLifecycleListener.init(AprLifecycleListener.java:201) ~[tomcat-embed-core-9.0.65.jar!/:na]
	at org.apache.catalina.core.AprLifecycleListener.isAprAvailable(AprLifecycleListener.java:112) ~[tomcat-embed-core-9.0.65.jar!/:na]
^C%

With 3.12 and above this does not work

Steps To Reproduce

See above

Environment

- Egeria:
- OS:
- Java:
- Browser (for UI issues):
- Additional connectors and integration:

Any Further Information?

Affects maven and gradle builds

@planetf1 planetf1 added bug Something isn't working triage New bug/issue which needs checking & assigning labels Oct 13, 2022
@planetf1 planetf1 changed the title Cannot debug server chassis (-Ddebug) Regression (3.12) : Cannot debug server chassis (-Ddebug) Oct 13, 2022
@planetf1 planetf1 added regression Regression - ie gone backward logging logging, auditing and removed triage New bug/issue which needs checking & assigning labels Oct 13, 2022
@planetf1 planetf1 self-assigned this Oct 13, 2022
@planetf1
Copy link
Member Author

The breakage appears to be caused by slf4J 2.x

The following change restores the logging

-        slf4jVersion = '2.0.3'
+        slf4jVersion = '1.7.36'

Log entries made by egeria work fine with both versions - this would have been clear from testing. However the controllability of spring logging is broken.

Version 1.7.36 of slf4J is the latest 1.x version, and does not show as containing any known security vulnarabilities.

There is some discussion about spring logging breakage with 2.0 -- given we expect a major spring version change for the next version of egeria, I am going to suggest reverting the logging version for now, and we can review once on the new spring boot version - there may be other subtleties with versions of logback etc, so this is the simplest, reasonable, change to get us back to where things were in 3.11

planetf1 added a commit to planetf1/egeria that referenced this issue Oct 13, 2022
planetf1 added a commit to planetf1/egeria that referenced this issue Oct 13, 2022
planetf1 added a commit to planetf1/egeria that referenced this issue Oct 13, 2022
planetf1 added a commit to planetf1/egeria that referenced this issue Oct 13, 2022
planetf1 added a commit that referenced this issue Oct 13, 2022
#6994 Revert slf4j-api version - 3.12 regression preventing spring de…
@planetf1 planetf1 mentioned this issue Nov 2, 2022
31 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working logging logging, auditing regression Regression - ie gone backward
Projects
None yet
Development

No branches or pull requests

1 participant