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

Variables are printing 'null' with New Relic 8.9.0 enabled on Mulesoft Runtime 4.5.x & 4.6.x version #20

Open
sbhakta99 opened this issue Feb 16, 2024 · 5 comments
Labels
bug Something isn't working

Comments

@sbhakta99
Copy link

sbhakta99 commented Feb 16, 2024

New Relic Support Case #00187431

Description

After upgrading to Mule 4.5.x & 4.6.x Runtime version and adding New Relic to the Wrapper.conf file, we encountered an issue where our application variables were becoming null.
Upon contacting Mule support, we were advised to comment out the New Relic Jar, after which the application variables started working normally again.
It appears that there is some interaction between New Relic and MuleSoft Runtime which is causing instability in our applications.

It New Relic Enabled works fine with 4.4.x Mulesoft Versions

Steps to Reproduce

Example of NULL

{"customerNumber":vars.lw9399res.customerNumber default 0,
"divisionNumber":vars.lw9399res.divisionNumber default 0,
"responseCode":payload.responseCode,
"productListCount":vars.lwreq.productListCount default 0,
"consumerId":vars.lwPriceReqHeader.consumerId,
"subConsumerId":vars.lwPriceReqHeader.subConsumerId,
"roundedProductCount":(ceil((vars.lwReq.productListCount default 0)/'${roundedProductCount}')) * 50,
"allVariables": vars,
"lw9399res": vars.lw9399res

}

Response:
{
"customerNumber": 0,
"divisionNumber": 0,
"responseCode": 9398,
"productListCount": 0,
"consumerId": null,
"subConsumerId": null,
"roundedProductCount": 0,
"allVariables": {
"exceptionFlag": "true"
},
"lw9399res": null
}

Expected Behavior

Example when New Relic is DISABLED on 4.5.x & 4.6.x

{
"customerNumber": 14374680,
"divisionNumber": 1933,
"responseCode": null,
"productListCount": 1,
"consumerId": "mule-test",
"subConsumerId": "mule-test",
"roundedProductCount": 50,
"allVariables": {
"lw9399res": {
"divisionNumber": 1933,
"customerNumber": 14374680,
"priceSourceFlag": "Y",
"priceRecommendationFlag": "Y",
"gaurdrailsFlag": "Y",
"costBasisDetailsFlag": "Y",
"lastWeekPriceFlag": "Y",
"pricingDateTime": "2024-02-15T15:21:00",
"lastWeekPriceDateTime": "2023-12-18T07:03:00",
"productListCount": 1,
"productList": [
{
"productNumber": 9449588,
"sequenceNumber": 1
}
]
},
"lwPriceReqHeader": {
"consumerId": "mule-test",
"subConsumerId": "mule-test",
"transactionId": "Mule-fdc45378-dfb1-448f-ae39-b48af3eebf42",
"correlationId": "1234444",
"timeZone": "America/Chicago"
},
"reqCheck": {
"levsLWFlag": "Y",
"lwDuration": "N",
"levsFlag": "N",
"reqDuration": "N"
},
"outboundHeaders": {
},
"lwReq": {
"divisionNumber": 1933,
"customerNumber": 14374680,
"priceSourceFlag": "Y",
"priceRecommendationFlag": "Y",
"gaurdrailsFlag": "Y",
"costBasisDetailsFlag": "Y",
"lastWeekPriceFlag": "Y",
"pricingDateTime": "2024-02-15T15:21:00",
"lastWeekPriceDateTime": "2023-12-18T07:03:00",
"productListCount": 1,
"productList": [
{
"productNumber": 9449588,
"sequenceNumber": 1
}
]
},
"apiStartTime": "2024-02-16T11:09:36.129-06:00"
},
"lw9399res": {
"divisionNumber": 1933,
"customerNumber": 14374680,
"priceSourceFlag": "Y",
"priceRecommendationFlag": "Y",
"gaurdrailsFlag": "Y",
"costBasisDetailsFlag": "Y",
"lastWeekPriceFlag": "Y",
"pricingDateTime": "2024-02-15T15:21:00",
"lastWeekPriceDateTime": "2023-12-18T07:03:00",
"productListCount": 1,
"productList": [
{
"productNumber": 9449588,
"sequenceNumber": 1
}
]
}
}

Relevant Logs / Console output

Your Environment

ALL ENVIRONMENTS

  • ex: Browser name and version:
  • ex: Operating System and version:

Additional context

Logs from newrelic_agent.log

2024-02-15T15:09:35,242-0600 [30379 133] com.newrelic INFO: Using default collector host: collector.newrelic.com
2024-02-15T15:09:35,242-0600 [30379 133] com.newrelic INFO: Using default metric ingest URI: https://metric-api.newrelic.com/metric/v1
2024-02-15T15:09:35,242-0600 [30379 133] com.newrelic INFO: Using default event ingest URI: https://insights-collector.newrelic.com/v1/accounts/events
2024-02-15T15:09:35,244-0600 [30379 133] com.newrelic INFO: Using default collector host: collector.newrelic.com
2024-02-15T15:09:35,244-0600 [30379 133] com.newrelic INFO: Using default metric ingest URI: https://metric-api.newrelic.com/metric/v1
2024-02-15T15:09:35,244-0600 [30379 133] com.newrelic INFO: Using default event ingest URI: https://insights-collector.newrelic.com/v1/accounts/events
2024-02-15T15:12:37,477-0600 [30379 193] com.newrelic INFO: Setting audit_mode to false
2024-02-15T15:12:37,478-0600 [30379 34] com.newrelic INFO: Host name is 1plsrmulas08.main.usfood.com, display host 1plsrmulas08.main.usfood.com for application null-sample
2024-02-15T15:12:37,478-0600 [30379 34] com.newrelic INFO: New Relic JFR Monitor is disabled: JFR config has not been enabled in the Java agent.
2024-02-15T15:12:38,077-0600 [30379 34] com.newrelic INFO: Collector redirection to collector.newrelic.com:443
2024-02-15T15:12:38,353-0600 [30379 34] com.newrelic INFO: Max payload size is 1,000,000 bytes
2024-02-15T15:12:38,353-0600 [30379 34] com.newrelic INFO: Agent run id: BclUHQHn2d5KAAb_qSEaP_Zlzn6YAAIBAAAnIQEAAHarAgQhGiq5AwAFOC45LjAAHDFwbHNybXVsYXMwOC5tYWluLnVzZm9vZC5jb20AC251bGwtc2FtcGxl
2024-02-15T15:12:38,353-0600 [30379 34] com.newrelic INFO: Agent [email protected]/null-sample connected to collector.newrelic.com:443
2024-02-15T15:12:38,353-0600 [30379 34] com.newrelic INFO: Reporting to: https://rpm.newrelic.com/accounts/458665/applications/555363001
2024-02-15T15:12:38,354-0600 [30379 34] com.newrelic INFO: Using default collector host: collector.newrelic.com
2024-02-15T15:12:38,354-0600 [30379 34] com.newrelic INFO: Using default metric ingest URI: https://metric-api.newrelic.com/metric/v1
2024-02-15T15:12:38,354-0600 [30379 34] com.newrelic INFO: Using default event ingest URI: https://insights-collector.newrelic.com/v1/accounts/events
2024-02-15T15:12:38,355-0600 [30379 34] com.newrelic INFO: Using default collector host: collector.newrelic.com
2024-02-15T15:12:38,355-0600 [30379 34] com.newrelic INFO: Using default metric ingest URI: https://metric-api.newrelic.com/metric/v1
2024-02-15T15:12:38,355-0600 [30379 34] com.newrelic INFO: Using default event ingest URI: https://insights-collector.newrelic.com/v1/accounts/events
2024-02-15T15:12:38,357-0600 [30379 34] com.newrelic INFO: Real user monitoring is enabled for application null-sample. Auto instrumentation is enabled.
2024-02-15T15:15:35,347-0600 [30379 194] com.newrelic INFO: Remote get_agent_commands call failed : javax.net.ssl.SSLException: Connection reset.
2024-02-15T15:16:08,371-0600 [30379 194] com.newrelic INFO: Remote get_agent_commands call failed : javax.net.ssl.SSLException: Connection reset.
2024-02-15T15:20:08,370-0600 [30379 194] com.newrelic INFO: Remote get_agent_commands call failed : javax.net.ssl.SSLException: Connection reset.
2024-02-15T15:29:02,150-0600 [30379 195] com.newrelic INFO: Remote span_event_data call failed : javax.net.ssl.SSLException: Connection reset.
2024-02-15T15:29:35,348-0600 [30379 194] com.newrelic INFO: Remote get_agent_commands call failed : javax.net.ssl.SSLException: Connection reset.
2024-02-15T15:44:32,150-0600 [30379 194] com.newrelic INFO: Remote get_agent_commands call failed : javax.net.ssl.SSLException: Connection reset.
2024-02-15T15:44:57,282-0600 [30379 195] com.newrelic INFO: Remote analytic_event_data call failed : javax.net.ssl.SSLException: Connection reset.
2024-02-15T15:45:52,281-0600 [30379 195] com.newrelic INFO: Remote analytic_event_data call failed : javax.net.ssl.SSLException: Connection reset.
2024-02-15T15:48:32,368-0600 [30379 194] com.newrelic INFO: Remote metric_data call failed : com.newrelic.agent.ForceRestartException: .
2024-02-15T15:48:32,368-0600 [30379 194] com.newrelic WARN: Received a ForceRestartException: com.newrelic.agent.ForceRestartException: . The agent will attempt to reconnect for data reporting. If this message continues, please contact support via https://support.newrelic.com/.
2024-02-15T15:48:32,643-0600 [30379 194] com.newrelic INFO: Host name is 1plsrmulas08.main.usfood.com, display host 1plsrmulas08.main.usfood.com for application mule-sit
2024-02-15T15:48:32,644-0600 [30379 194] com.newrelic INFO: New Relic JFR Monitor is disabled: JFR config has not been enabled in the Java agent.
2024-02-15T15:48:33,224-0600 [30379 194] com.newrelic INFO: Collector redirection to collector.newrelic.com:443
2024-02-15T15:48:33,458-0600 [30379 194] com.newrelic INFO: Max payload size is 1,000,000 bytes
2024-02-15T15:48:33,458-0600 [30379 194] com.newrelic INFO: Agent run id: BXaRTJnZrSuEAAb_qSDgeGtlzocIAAIBAAAnIQEAAHarAgQg4BXpAwAFOC45LjAAHDFwbHNybXVsYXMwOC5tYWluLnVzZm9vZC5jb20ACG11bGUtc2l0
2024-02-15T15:48:33,458-0600 [30379 194] com.newrelic INFO: Agent [email protected]/mule-sit connected to collector.newrelic.com:443
2024-02-15T15:48:33,458-0600 [30379 194] com.newrelic INFO: Reporting to: https://rpm.newrelic.com/accounts/458665/applications/551556585
2024-02-15T15:48:33,459-0600 [30379 194] com.newrelic INFO: Using default collector host: collector.newrelic.com
2024-02-15T15:48:33,459-0600 [30379 194] com.newrelic INFO: Using default metric ingest URI: https://metric-api.newrelic.com/metric/v1
2024-02-15T15:48:33,459-0600 [30379 194] com.newrelic INFO: Using default event ingest URI: https://insights-collector.newrelic.com/v1/accounts/events
2024-02-15T15:48:33,461-0600 [30379 194] com.newrelic INFO: Using default collector host: collector.newrelic.com
2024-02-15T15:48:33,461-0600 [30379 194] com.newrelic INFO: Using default metric ingest URI: https://metric-api.newrelic.com/metric/v1
2024-02-15T15:48:33,461-0600 [30379 194] com.newrelic INFO: Using default event ingest URI: https://insights-collector.newrelic.com/v1/accounts/events
2024-02-15T15:48:33,464-0600 [30379 194] com.newrelic INFO: Real user monitoring is enabled for application mule-sit. Auto instrumentation is enabled.
2024-02-15T16:01:28,479-0600 [30379 195] com.newrelic INFO: Remote analytic_event_data call failed : javax.net.ssl.SSLException: Connection reset.

@sbhakta99 sbhakta99 added the bug Something isn't working label Feb 16, 2024
@dhilpipre
Copy link
Contributor

Investigating and will update via support case

@sbhakta99
Copy link
Author

Investigating and will update via support case

Thank you appreciate it.

@sbhakta99
Copy link
Author

Investigating and will update via support case

Response from support, did you want me to proceed with this, I would assume that all instrumentation for mule would not work if we disable correct?

It sounds to me like something our agent is doing is interacting negatively with your application. There are only a few places where our agent directly interacts with your application in a way that could potentially break something. We do the following:

  1. We add headers to HTTP requests as part of our Distributed Tracing product.
  2. We inject our Page Load Timing scripts into JSPs compiled with Jasper, as part of our automatic Browser instrumentation.
  3. We wrap various classes in your code base using bytecode injection.

These features of the agent can be selectively disabled.

To disable our Distributed Tracing feature, pass the following in your newrelic.yml file:

distributed_tracing:
enabled: false

To disable our Browser injection feature, pass the following in your newrelic.yml file:

browser_monitoring:
auto_instrument: false

To disable class transformation, pass the following in your newrelic.yml file:

class_transformer:
enabled: false

I would recommend selectively disabling these features to see which one changes the symptoms. This is by way of a troubleshooting step, not a final resolution. If we can narrow down the precise feature of the agent that is triggering this behavior, then I believe we can implement a workaround.

@sbhakta99
Copy link
Author

sbhakta99 commented Feb 16, 2024

I did the additional mentioned on 4.6 Mule Runtime with New Relic Java Agent 8.9.0

-Removed extensions folder from New Relic Install and Mule API works fine, NO NULL ISSUE
-Put the jars that begin with Mule-Core-xxxx.jar back into the extensions directory and restarted works fine, NO NULL ISSUE

So it is something from the addtional Mulesoft New Relic Instrumentation Jars, we also would need 4.6 Core

https://github.com/newrelic-experimental/newrelic-java-mule-4/releases/tag/v3.1.3

@dhilpipre
Copy link
Contributor

dhilpipre commented Feb 16, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants