OpenLiberty / open-liberty

Open Liberty is a highly composable, fast to start, dynamic application server runtime environment
https://openliberty.io
Eclipse Public License 2.0
1.15k stars 591 forks source link

FeatureManager failed to install versionless features from server.xml #29868

Open gkwan-ibm opened 3 hours ago

gkwan-ibm commented 3 hours ago

Describe the bug
Failed to install features by server.xml with versionless features

CWWKF0004E: An unknown exception occurred while installing or removing features. Exception: java.lang.NullPointerException: Cannot invoke "com.ibm.ws.kernel.feature.provisioning.ProvisioningFeatureDefinition.getVisibility()" because "versionedFeatureDef" is null

Steps to Reproduce

[INFO] Resolving features: [mphealth, jsonb, restfulws, messagingserver, enterprisebeanslite, cdi, mdb, mpconfig, messagingclient, messaging] using platforms: [microprofile-6.1, jakartaee-10.0] [INFO] Downloading public key(s) for signature verification [INFO] Verifying features <---------------------> 0.00% All features were successfully verified. [INFO] Installing features: [mphealth, jsonb, restfulws, messagingserver, enterprisebeanslite, cdi, mdb, mpconfig, messagingclient, messaging] [INFO] Product validation completed successfully. [INFO] The following features have been installed: mdb-4.0 jndi-1.0 mpConfig connectors-2.1 mdb messaging-3.1 jsonb json-1.0 mpConfig-3.1 jsonp-2.1 mpHealth messaging cdi enterpriseBeansLite enterpriseBeansLite-4.0 mpHealth-4.0 messagingClient messagingServer messagingClient-3.0 messagingServer-3.0 restfulWS restfulWSClient-3.1 restfulWS-3.1 jsonb-3.0 cdi-4.0 [INFO] Running liberty:deploy [INFO] Copying 1 file to /Users/gkwan/tasks/CNAI/guides/working/jms-intro/versionless/draft-guide-jms-intro/finish/inventory/target/liberty/wlp/usr/servers/defaultServer [INFO] CWWKM2144I: Update server configuration file server.xml from /Users/gkwan/tasks/CNAI/guides/working/jms-intro/versionless/draft-guide-jms-intro/finish/inventory/src/main/liberty/config/server.xml. [INFO] CWWKM2185I: The liberty-maven-plugin configuration parameter "appsDirectory" value defaults to "apps". [INFO] Application configuration is found in server.xml : guide-jms-intro-inventory.war [INFO] CWWKM2160I: Installing application guide-jms-intro-inventory.war.xml. [INFO] Copying 1 file to /Users/gkwan/tasks/CNAI/guides/working/jms-intro/versionless/draft-guide-jms-intro/finish/inventory/target/liberty/wlp/usr/servers/defaultServer [INFO] CWWKM2144I: Update server configuration file server.xml from /Users/gkwan/tasks/CNAI/guides/working/jms-intro/versionless/draft-guide-jms-intro/finish/inventory/src/main/liberty/config/server.xml. [INFO] CWWKM2185I: The liberty-maven-plugin configuration parameter "appsDirectory" value defaults to "apps". [INFO] CWWKM2001I: Invoke command is [/Users/gkwan/tasks/CNAI/guides/working/jms-intro/versionless/draft-guide-jms-intro/finish/inventory/target/liberty/wlp/bin/server, debug, defaultServer]. [INFO] [INFO] Listening for transport dt_socket at address: 7777 [INFO] Launching defaultServer (Open Liberty 24.0.0.10/wlp-1.0.94.cl241020240923-1638) on Eclipse OpenJ9 VM, version 21.0.2+13-LTS (en_CA) [INFO] [AUDIT ] CWWKE0001I: The server defaultServer has been launched. [INFO] CWWKM2010I: Searching for CWWKF0011I: in /Users/gkwan/tasks/CNAI/guides/working/jms-intro/versionless/draft-guide-jms-intro/finish/inventory/target/liberty/wlp/usr/servers/defaultServer/logs/messages.log. This search will timeout after 90 seconds. [INFO] [AUDIT ] CWWKG0093A: Processing configuration drop-ins resource: /Users/gkwan/tasks/CNAI/guides/working/jms-intro/versionless/draft-guide-jms-intro/finish/inventory/target/liberty/wlp/usr/servers/defaultServer/configDropins/overrides/liberty-plugin-variable-config.xml [INFO] [INFO ] CWWKE0002I: The kernel started after 1.161 seconds [INFO] [INFO ] CWWKF0007I: Feature update started. [INFO] [ERROR ] CWWKF0004E: An unknown exception occurred while installing or removing features. Exception: java.lang.NullPointerException: Cannot invoke "com.ibm.ws.kernel.feature.provisioning.ProvisioningFeatureDefinition.getVisibility()" because "versionedFeatureDef" is null [INFO] at com.ibm.ws.kernel.feature.internal.FeatureResolverImpl.finalizeVersionlessResults(FeatureResolverImpl.java:1002) [INFO] at [internal classes] [INFO] [INFO] [INFO ] FFDC1015I: An FFDC Incident has been created: "java.lang.NullPointerException: Cannot invoke "com.ibm.ws.kernel.feature.provisioning.ProvisioningFeatureDefinition.getVisibility()" because "versionedFeatureDef" is null com.ibm.ws.kernel.feature.internal.FeatureManager checkInstallStatus" at ffdc_24.10.16_13.28.11.0.log [INFO] [AUDIT ] CWWKF0012I: The server installed the following features: [].


**Expected behavior**  
Liberty runtime should be started successfully with the required features from server.xml

**Diagnostic information:**  
 - OpenLiberty Version: 24.0.0.10
 - Affected feature(s): versionless or featureManager
 - Java Version: 17.0.12 or 21.0.2
 - server.xml configuration
    - https://github.com/OpenLiberty/draft-guide-jms-intro/blob/versionless/finish/inventory/src/main/liberty/config/server.xml - 
 - If it would be useful, upload the messages.log file found in `$WLP_OUTPUT_DIR/messages.log`
   - [messages.log](https://github.com/user-attachments/files/17400501/messages.log)
   - [ffdc_24.10.16_13.28.11.0.log](https://github.com/user-attachments/files/17400503/ffdc_24.10.16_13.28.11.0.log)

[2024-10-16, 13:28:11:244 EDT] 00000038 com.ibm.ws.kernel.feature.internal.FeatureManager E CWWKF0004E: An unknown exception occurred while installing or removing features. Exception: java.lang.NullPointerException: Cannot invoke "com.ibm.ws.kernel.feature.provisioning.ProvisioningFeatureDefinition.getVisibility()" because "versionedFeatureDef" is null at com.ibm.ws.kernel.feature.internal.FeatureResolverImpl.finalizeVersionlessResults(FeatureResolverImpl.java:1002) at com.ibm.ws.kernel.feature.internal.FeatureResolverImpl.doResolve(FeatureResolverImpl.java:642) at com.ibm.ws.kernel.feature.internal.FeatureResolverImpl.resolve(FeatureResolverImpl.java:559) at com.ibm.ws.kernel.feature.internal.FeatureResolverImpl.resolve(FeatureResolverImpl.java:515) at com.ibm.ws.kernel.feature.internal.FeatureManager.callFeatureResolver(FeatureManager.java:1430) at com.ibm.ws.kernel.feature.internal.FeatureManager.resolveFeatures(FeatureManager.java:1412) at com.ibm.ws.kernel.feature.internal.FeatureManager.updateFeatures(FeatureManager.java:1569) at com.ibm.ws.kernel.feature.internal.FeatureManager.update(FeatureManager.java:816) at com.ibm.ws.kernel.feature.internal.FeatureManager.processFeatureChanges(FeatureManager.java:931) at com.ibm.ws.kernel.feature.internal.FeatureManager$1.run(FeatureManager.java:714) at com.ibm.ws.threading.internal.ExecutorServiceImpl$RunnableWrapper.run(ExecutorServiceImpl.java:298) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1595) [2024-10-16, 13:28:11:443 EDT] 00000038 com.ibm.ws.logging.internal.impl.IncidentImpl I FFDC1015I: An FFDC Incident has been created: "java.lang.NullPointerException: Cannot invoke "com.ibm.ws.kernel.feature.provisioning.ProvisioningFeatureDefinition.getVisibility()" because "versionedFeatureDef" is null com.ibm.ws.kernel.feature.internal.FeatureManager checkInstallStatus" at ffdc_24.10.16_13.28.11.0.log



**Additional context**  
- none
gkwan-ibm commented 2 hours ago

hi @cbridgha, I guess you should know the FeatureResolverImpl.finalizeVersionlessResults()

gkwan-ibm commented 2 hours ago

The server.xml of the guide-bean-validation has the same problem.

    <featureManager>
        <platform>jakartaee-10.0</platform>
        <platform>microprofile-6.1</platform>
        <feature>beanValidation</feature>
        <feature>cdi</feature>
        <feature>restfulWS</feature>
        <feature>jsonb</feature>
        <feature>mpOpenAPI</feature>
    </featureManager>