Skip to content

Commit

Permalink
Include error type
Browse files Browse the repository at this point in the history
  • Loading branch information
Nishnha committed Aug 28, 2023
1 parent ad79b06 commit fc67509
Show file tree
Hide file tree
Showing 6 changed files with 21 additions and 17 deletions.
5 changes: 3 additions & 2 deletions updater/lib/dependabot/api_client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -88,11 +88,12 @@ def record_update_job_error(error_type:, error_details:)
sleep(rand(3.0..10.0)) && retry
end

def record_unknown_error(error_details:)
def record_unknown_error(error_type: "unknown", error_details:)
api_url = "#{base_url}/update_jobs/#{job_id}/record_unknown_error"
body = {
data: {
"error-details": error_details
"error-type": error_type,
"error-details": error_details,
}
}
response = http_client.post(api_url, json: body)
Expand Down
2 changes: 1 addition & 1 deletion updater/lib/dependabot/base_command.rb
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ def handle_exception(err)
err.backtrace.each { |line| Dependabot.logger.error(line) }

service.capture_exception(error: err, job: job)
service.record_unknown_error(error_details: error_details)
service.record_unknown_error(error_type: "updater_error", error_details: error_details)
service.increment_metric("updater.unknown_error", tags: {
package_manager: job.package_manager,
class_name: err.class.name
Expand Down
2 changes: 1 addition & 1 deletion updater/lib/dependabot/file_fetcher_command.rb
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ def handle_file_fetcher_error(error)
Dependabot.logger.error(error.message)
error.backtrace.each { |line| Dependabot.logger.error line }

service.record_unknown_error(error_details: { error: error })
service.record_unknown_error(error_type: "file_fetcher_error", error_details: { error: error })
service.capture_exception(error: error, job: job)
{ "error-type": "unknown_error" }
end
Expand Down
6 changes: 3 additions & 3 deletions updater/lib/dependabot/service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,9 @@ def record_update_job_error(error_type:, error_details:, dependency: nil)
client.record_update_job_error(error_type: error_type, error_details: error_details)
end

def record_unknown_error(error_details:, dependency: nil)
@errors << ["unknown_error", dependency]
client.record_unknown_error(error_details: error_details)
def record_unknown_error(error_type:, error_details:, dependency: nil)
@errors << [error_type.to_s, dependency]
client.record_unknown_error(error_type: error_type, error_details: error_details)
end

def update_dependency_list(dependency_snapshot:)
Expand Down
17 changes: 10 additions & 7 deletions updater/lib/dependabot/update_files_command.rb
Original file line number Diff line number Diff line change
Expand Up @@ -132,13 +132,16 @@ def handle_parser_error(error)
Dependabot.logger.error error.message
error.backtrace.each { |line| Dependabot.logger.error line }

service.record_unknown_error(error_details: {
error: error,
"error-class": error.class.to_s,
"error-backtrace": error.backtrace,
"package-manager": job.package_manager,
message: error.message
})
service.record_unknown_error(
error_type: "update_files_error",
error_details: {
error: error,
"error-class": error.class.to_s,
"error-backtrace": error.backtrace,
"package-manager": job.package_manager,
message: error.message
}
)
service.capture_exception(error: error, job: job)

# Set an unknown error type to be added to the job
Expand Down
6 changes: 3 additions & 3 deletions updater/lib/dependabot/updater/error_handler.rb
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ def handle_dependency_error(error:, dependency:, dependency_group: nil)

# Provides logging for errors that occur when processing a dependency
def log_dependency_error(dependency:, error:, error_type:, error_detail: nil)
if error_type == "unknown_error"
if error_type == "unknown_error" && !Dependabot.enterprise?
Dependabot.logger.error "Error processing #{dependency.name} (#{error.class.name})"
log_unknown_error_with_backtrace(error, error_detail, dependency)
else
Expand Down Expand Up @@ -90,7 +90,7 @@ def handle_job_error(error:, dependency_group: nil)

# Provides logging for errors that occur outside of a dependency context
def log_job_error(error:, error_type:, error_detail: nil)
if error_type == "unknown_error"
if error_type == "unknown_error" && !Dependabot.enterprise?
Dependabot.logger.error "Error processing job (#{error.class.name})"
log_unknown_error_with_backtrace(error, error_detail)
else
Expand Down Expand Up @@ -215,7 +215,7 @@ def log_unknown_error_with_backtrace(error, error_detail, dependency = nil)
dependency: dependency
}.compact

service.record_unknown_error(error_details: details, dependency: dependency)
service.record_unknown_error(error_type: "unknown_error", error_details: details, dependency: dependency)
service.increment_metric("updater.unknown_error", tags: {
package_manager: job.package_manager,
class_name: error.class.name
Expand Down

0 comments on commit fc67509

Please sign in to comment.