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

fix(clouddriver): Return a call stack for better error handling #5584

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -550,7 +550,9 @@ class ClusterCachingAgent implements CachingAgent, OnDemandAgent, AccountAware,
cacheTargetGroups(data, targetGroups)
cacheLaunchTemplate(data, launchTemplates)
} catch (Exception ex) {
log.warn("Failed to cache ${asg.autoScalingGroupName} in ${account.name}/${region}", ex)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm surprised this log statement doesn't print a stack trace already.

Copy link
Member

@mattgogerly mattgogerly Dec 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was going to comment the same but figured I must be missing something obvious.

Wonder if it's something like this? https://stackoverflow.com/a/9387598

Copy link
Contributor Author

@wattdave wattdave Dec 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here's the log it provides, unfortunately: message: Failed to cache fuzzed-metric-name-Metrics fuzzed_asg in fuzzed-location/us-west-2 stack_trace: java.lang.NullPointerException: null (copied from our Splunk.)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For what it's worth, we find lots of other useful stack traces in other locations in the logs. Not sure why this one is special, but it very much is.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wonder if the fact that this is groovy is causing grief here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Erm, well - I would have to deploy it onto our local Spinnaker servers to be able to answer that, and I don't have access to do that.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I presume we're on a later slf4j than 1.6.0? This link smells like what we're seeing: https://stackoverflow.com/questions/5951209/how-to-log-exception-and-message-with-placeholders-with-slf4j

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let me put together a quick sample app to tinker with this...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI:
spinnaker/spinnaker#5473
i think is also relevant ;) I'm watching this & other thread ;) Was rather confused to why stack traces aren't working myself.

StringWriter sw = new StringWriter()
ex.printStackTrace(sw)
log.warn("Failed to cache ${asg.autoScalingGroupName} in ${account.name}/${region}: ${sw.toString()}", ex)
}
}
}
Expand Down